102 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Установка и настройка MS SQL Server Express

Установка и настройка MS SQL Server Express

В этой инструкции описан процесс установки MS SQL Server 2017 Express на Windows Server 2012 R2/2016/2019. Следуя ей вы получите готовый инструмент для знакомства с языком программирования SQL, для проверок собственных наработок или запуска небольшого ресурса, не требующего больших объемов хранения баз данных.

Ограничения выпуска SQL Server 2017 Express

Данный выпуск является бесплатным и подходит для коммерческого использования, но имеет ряд ограничений:

  • Максимальное количество ядер процессора: 4;
  • Максимальный размер базы данных: 10 ГБ;
  • Максимальный размер пула буфера на экземпляр базы данных: 1410 МБ.

Если у вас есть необходимость выйти за пределы этих ограничений, советуем приобрести лицензию Microsoft SQL Server Standard.

Требования к операционной системе

SQL Server 2017 Express доступен для установки на следующих операционных системах:

  • Windows 8/8.1/10 и новее;
  • Windows Server 2012, 2012 R2, 2016, 2019 и новее.

Процедура установки

Чтобы установить SQL Server 2017 Express, перейдите по ссылке, выберите язык установки и нажмите Download:

После запуска скачанного файла установщик откроет специальное окно, в котором предложит несколько вариантов установки на выбор. Для контроля за параметрами установки выберите Custom:

Далее выберите место, куда будут скачаны установочные файлы, при необходимости поменяйте его на нужное и нажмите Install:

Дождитесь завершения процесса скачивания установочных файлов:

Далее выберите первый пункт установки New SQL Server stand-alone installation:

Ознакомьтесь с условиями лицензионного соглашения и нажмите Next:

При необходимости получать обновления из Windows Update поставьте галочку и нажмите Next:

Ознакомьтесь с предупреждением о возможных проблемах, а при их отсутствии нажмите Next:

Перейдите на экран выбора функционала, где можно, при необходимости, выбрать или убрать дополнительные возможности для сервера баз данных, оставьте без изменений и нажмите Next:

Выберите имя и идентификатор сервера. Идентификатор сервера будет включен в путь установки. Оставьте по умолчанию и нажмите Next:

На следующем экране можно указать сервисные аккаунты, отличные от стандартных, и предоставить право на выполнение задач обслуживания тома службе ядра СУБД SQL Server, что повысит скорость инициализации файлов, но СУБД может получить доступ к удаленному контенту. На вкладке Collation можно изменить параметры сортировки движка базы данных. На указанном примере мы предоставим привилегии, оставим по умолчанию параметры сортировки и нажмем Next:

На следующем этапе установки необходимо настроить конфигурацию ядра базы данных. Для этого предусмотрены следующие вкладки:

  • Server Configuration — указывается способ авторизации в базу данных: средствами Windows или смешанный режим, включающий в себя авторизацию Windows и собственную авторизацию SQL Server. При выборе второго варианта следует указать пароль администратора SQL Server;
  • Data Directories — указывается расположение исполняемых файлов SQL Server и данных;
  • TempDB — параметры TempDB, используемой внутренними ресурсами SQL Server, временными объектами пользователей и хранилищем версий;
  • User instances — позволяет дать права пользователям, не имеющим прав администратора, запускать отдельные экземпляры баз данных;
  • FILESTREAM — включается при необходимости использовать оптимизированные для памяти (Memory Optimized) таблицы.
Читать еще:  Как придумать сложный пароль - правила, генерация и хранение

Так как при установке по умолчанию был выбран пункт Microsoft R (Machine Learning Services) и Python, следует согласиться с условиями его использования на этом и следующем этапе, последовательно нажав Accept и Next:

Запустится процесс установки, после чего появится окно о завершении работ установщика SQL Server 2017. Нажмите Close:

На этом установка SQL Server 2017 Express завершена.

Некоторые аспекты мониторинга MS SQL Server. Рекомендации по настройке флагов трассировки

Предисловие

Довольно часто пользователи, разработчики и администраторы СУБД MS SQL Server сталкиваются с проблемами производительности БД или СУБД в целом, поэтому весьма актуальным является мониторинг MS SQL Server.

Данная статья является дополнением к статье Использование Zabbix для слежения за базой данных MS SQL Server и в ней будут разобраны некоторые аспекты мониторинга MS SQL Server, в частности: как быстро определить, каких ресурсов не хватает, а также рекомендации по настройке флагов трассировки.

Для работы следующих приведенных скриптов, необходимо создать схему inf в нужной базе данных следующим образом:

Метод выявления нехватки оперативной памяти

Первым показателем нехватки оперативной памяти является тот случай, когда экземпляр MS SQL Server съедает всю выделенную ему ОЗУ.

Для этого создадим следующее представление inf.vRAM:

Тогда определить то, что экземпляр MS SQL Server потребляет всю выделенную ему память можно следующим запросом:

Если показатель SQL_server_physical_memory_in_use_Mb постоянно не меньше SQL_server_committed_target_Mb, то необходимо проверить статистику ожиданий.

Для определения нехватки оперативной памяти через статистику ожиданий создадим представление inf.vWaits:

В этом случае определить нехватку оперативной памяти можно следующим запросом:

Здесь нужно обратить внимание на показатели Percentage и AvgWait_S. Если они существенны по своей совокупности, то есть очень большая вероятность того, что оперативной памяти не хватает экземпляру MS SQL Server. Существенные значения определяются индивидуально для каждой системы. Однако, можно начинать со следующего показателя: Percentage>=1 и AvgWait_S>=0.005.

Для вывода показателей в систему мониторинга (например, Zabbix) можно создать следующие два запроса:

    сколько в процентах занимают типы ожиданий по ОЗУ (сумма по всем таким типам ожиданий):

сколько в миллисекундах занимают типы ожиданий по ОЗУ (максимальное значение из всех средних задержек по всем таким типам ожиданий):

Исходя из динамики полученных значений по этим двум показателям, можно сделать вывод достаточно ли ОЗУ для экземпляра MS SQL Server.

Метод выявления чрезмерной нагрузки на ЦПУ

Для выявления нехватки процессорного времени достаточно воспользоваться системным представлением sys.dm_os_schedulers. Здесь, если показатель runnable_tasks_count постоянно больше 1, то существует большая вероятность того, что количество ядер не хватает экземпляру MS SQL Server.

Для вывода показателя в систему мониторинга (например, Zabbix) можно создать следующий запрос:

Исходя из динамики полученных значений по данному показателю, можно сделать вывод достаточно ли процессорного времени (количества ядер ЦПУ) для экземпляра MS SQL Server.
Однако, важно помнить о том факте, что сами запросы могут запрашивать сразу несколько потоков. И порой оптимизатор не может верно оценить сложность самого запроса. Тогда запросу могут быть выделено слишком много потоков, которые в данный момент времени не могут быть обработаны одновременно. И это тоже вызывает тип ожидания, связанный с нехваткой процессорного времени, и разрастания очереди на планировщики, которые используют конкретные ядра ЦПУ, т е показатель runnable_tasks_count в таких условиях будет расти.

Читать еще:  Как поймать хакера в контакте. Как поймать хакера, или как бы веревочке ни виться. Кто такие хакеры

В таком случае перед тем как увеличивать количество ядер ЦПУ, необходимо правильно настроить свойства параллелизма самого экземпляра MS SQL Server, а с 2016 версии-правильно настроить свойства параллелизма нужных баз данных:

Здесь стоит обратить внимания на следующие параметры:

  1. Max Degree of Parallelism-задает максимальное количество потоков, которые могут быть выделены каждому запросу (по умолчанию стоит 0-ограничение только самой операционной системой и редакцией MS SQL Server)
  2. Cost Threshold for Parallelism-оценочная стоимость параллелизма (по умолчанию стоит 5)
  3. Max DOP-задает максимальное количество потоков, которые могут быть выделены каждому запросу на уровне базы данных (но не более, чем значение свойства «Max Degree of Parallelism») (по умолчанию стоит 0-ограничение только самой операционной системой и редакцией MS SQL Server, а также ограничение по свойству «Max Degree of Parallelism» всего экземпляра MS SQL Server)

Здесь невозможно дать одинаково хороший рецепт для всех случаев, т е нужно анализировать тяжелые запросы.

По собственному опыту рекомендую следующий алгоритм действий для OLTP-систем для настройки свойств параллелизма:

  1. сначала запретить параллелизм, выставив на уровне всего экземпляра Max Degree of Parallelism в 1
  2. проанализировать самые тяжелые запросы и подобрать для них оптимальное количество потоков
  3. выставить Max Degree of Parallelism в подобранное оптимальное количество потоков, полученное из п.2, а также для конкретных баз данных выставить Max DOP значение, полученное из п.2 для каждой базы данных
  4. проанализировать самые тяжелые запросы и выявить негативный эффект от многопоточности. Если он есть, то повышать Cost Threshold for Parallelism.
    Для таких систем как 1С, Microsoft CRM и Microsoft NAV в большинстве случаев подойдет запрет многопоточности

Также если стоит редакция Standard, то в большинстве случаев подойдет запрет многопоточности в виду того факта, что данная редакция ограничена по количеству ядер ЦПУ.

Для OLAP-систем описанный выше алгоритм не подходит.

По собственному опыту рекомендую следующий алгоритм действий для OLAP-систем для настройки свойств параллелизма:

  1. проанализировать самые тяжелые запросы и подобрать для них оптимальное количество потоков
  2. выставить Max Degree of Parallelism в подобранное оптимальное количество потоков, полученное из п.1, а также для конкретных баз данных выставить Max DOP значение, полученное из п.1 для каждой базы данных
  3. проанализировать самые тяжелые запросы и выявить негативный эффект от ограничения параллелизма. Если он есть, то либо понижать значение Cost Threshold for Parallelism, либо повторить шаги 1-2 данного алгоритма

Т е для OLTP-систем идем от однопоточности к многопоточности, а для OLAP-систем наоборот-идем от многопоточности к однопоточности. Таким образом можно подобрать оптимальные настройки параллелизма как для конкретной базы данных, так и для всего экземпляра MS SQL Server.
Также важно понимать, что настройки свойств параллелизма со временем нужно менять, исходя из результатов мониторинга производительности MS SQL Server.

Рекомендации по настройке флагов трассировки

Из собственного опыта и опыта моих коллег для оптимальной работы рекомендую выставлять на уровне запуска службы MS SQL Server для 2008-2016 версий следующие флаги трассировки:

  1. 610 — Уменьшение протоколирования вставок в индексированные таблицы. Может помочь со вставками в таблицы с большим количеством записей и множеством транзакций, при частых долгих ожиданиях WRITELOG по изменению в индексах
  2. 1117 — Если файл в файловой группе удовлетворяет требованиям порога автоматического увеличения, все файлы в файловой группе увеличиваются
  3. 1118 — Заставляет все объекты располагаться в разных экстентах (запрет на смешанные экстенты), что сводит к минимуму необходимость сканирования страницы SGAM, которая и используется для отслеживания смешанных экстентов
  4. 1224 — Отключает укрупнение блокировок на основе количества блокировок. Однако слишком активное использование памяти может включить укрупнение блокировок
  5. 2371 — Изменяет порог фиксированного автоматического обновления статистики на порог динамического автоматического обновления статистики. Важно для обновления планов запросов касательно больших таблиц, где неправильно определение числа записей приводит к ошибочным планам выполнения
  6. 3226 — Подавляет сообщения об успешном выполнении резервного копирования в журнале ошибок
  7. 4199 — Включает изменения в оптимизаторе запросов, выпущенные в накопительных пакетах обновления и пакетах обновления SQL Server
  8. 6532-6534 — Включает улучшение производительности операций запросов с пространственными типами данных
  9. 8048 — Преобразует объекты памяти, секционированные по NUMA, в секционированные по ЦП
  10. 8780 — Включает дополнительное выделение времени для составления плана запроса. Некоторые запросы без этого флага могут быть отклонены, так как у них нет плана запроса (очень редкая ошибка)
  11. 9389 — Включает дополнительный динамический временно предоставляемый буфер памяти для операторов пакетного режима, что дает возможность оператору пакетного режима запросить дополнительную память и избежать переноса данных в tempdb, если дополнительная память доступна
Читать еще:  Удаленный рабочий стол

Также до 2016 версии полезно включать флаг трассировки 2301, который включает оптимизацию расширенной поддержки принятия решений и тем самым помогает в выборе более правильных планов запросов. Однако, начиная с версии 2016, он часто оказывает негативный эффект в достаточно длительном общем времени выполнения запросов.

Также для систем, в которых очень много индексов (например, для баз данных 1С), рекомендую включать флаг трассировки 2330, который отключает сбор об использовании индексов, что в целом положительно сказывается на системе.

Более подробно о флагах трассировки можно узнать здесь.

По приведенной выше ссылке важно также учитывать версии и сборки MS SQL Server, т. к. для более новых версий некоторые флаги трассировки включены по умолчанию или не дают никакого эффекта. Например, в 2017 версии актуально выставлять только следующие 5 флагов трассировки: 1224, 3226, 6534, 8780 и 9389.

Включить и выключить флаг трассировки можно с помощью команд DBCC TRACEON и DBCC TRACEOFF соответственно. Более подробно смотрите здесь.

Получить состояние флагов трассировки можно с помощью команды DBCC TRACESTATUS: подробнее.

Чтобы флаги трассировки были включены в автозапуск службы MS SQL Server, необходимо зайти в SQL Server Configuration Manager и в свойствах службы добавить данные флаги трассировки через -T:

Итоги

В данной статье были разобраны некоторые аспекты мониторинга MS SQL Server, с помощью которых можно оперативно выявить нехватку ОЗУ и свободного времени ЦПУ, а также ряд других менее очевидных проблем. Были рассмотрены наиболее часто используемые флаги трассировки.

Ссылка на основную публикацию
Статьи c упоминанием слов:
Adblock
detector