Как повысить производительность системы
Чтобы достичь высокой производительности SQL-сервера, на котором установлена база данных Tillypad, необходимо:
-
В панели управления операционной системы сервера выберите план электропитания «Высокая производительность».
Выбор плана электропитания сервера
Чтобы выполнить эту настройку вручную, выберите план «Высокая производительность» в разделе «Электропитание» на панели управления ().
-
Для серверов в панели управления выберите способ распределения ресурсов процессора, позволяющий оптимизировать работу служб, выполняющихся в фоновом режиме.
Выбор способа распределения ресурсов процессора
Чтобы выполнить эту настройку вручную, откройте окно «Свойства системы» (). Нажмите на кнопку «Параметры» в группе полей «Быстродействие». В открывшемся окне «Параметры быстродействия» выберите вкладку «Дополнительно». Затем выберите опцию «служб, работающих в фоновом режиме» в группе полей «Распределение времени процессора».
-
Присвойте параметру «Максимальная степень параллелизма» в свойствах экземпляра SQL-сервера значение «1».
Установка степени параллелизма для экземпляра SQL сервера
Это значение можно присвоить вручную на странице «Дополнительно» в группе параметров «Параллелизм» свойств сервера или с помощью хранимой процедуры tpsys_SetSQLServerSettings.
-
Отмените автоматическое сжатие базы данных.
Сброс параметра автоматического сжатия базы данных
Это значение можно присвоить вручную в свойствах базы данных на странице «Параметры» в группе параметров «Автоматически» или с помощью хранимой процедуры tpsys_SetSQLServerSettings.
-
Разрешите, если возможно, выполнение сервером быстрой инициализации файлов базы данных.
Чтобы настроить запуск этой службы для экземпляра SQL-сервера, необходимо использовать для регистрации учетную запись из группы «Администраторы».
-
Выполните настройки для базы данных tempdb:
-
Установите модель восстановления базы данных tempdb в значение
SIMPLE. -
Установите шаг увеличения размера файла системной базы данных tempdb:
Размер файла tempdbШаг роста FILEGROWTHот 0 до 100 МБ
10 МБ
от 100 до 200 МБ
20 МБ
200 МБ или больше
10%
-
Создайте столько файлов, сколько требуется, чтобы максимально увеличить пропускную способность диска. Количество этих файлов должно соответствовать количеству логических центральных процессоров на сервере.
Сделайте файлы одинакового размера, чтобы обеспечить оптимальную производительность с пропорциональным заполнением. Значение параметра автоувеличения размера (
FILEGROWTH) должно быть одним и тем же у всех этих файлов.Эти настройки можно выполнить вручную или автоматически, с помощью процедуры tpsys_SetSQLServerSettings.
-
-
Настроить задания для перестроения индексов базы данных и уменьшению размеров базы данных и логов.
Переиндексация базы данных выполняется с помощью процедуры
tpsys_Reindex, а сжатие файлов базы и лога – с помощью процедурыtpsys_ShrinkDB.Если процедура tpsys_ShrinkDBне будет регулярно запускаться, то размер лога базы данных (файл*.LDF) будет постоянно увеличиваться. Это, в свою очередь, вызовет уменьшение производительности и сокращение свободного пространства на жестком диске.Для регулярной переиндексации и сжатия базы данных и ее лога в SQL Agent нужно создать задание, которое будет выполняться ежедневно.
Рекомендуется создать одно общее задание, в котором сжатие базы данных выполнялось бы сразу после завершения ее переиндексации.
Exec tpsys_Reindex Exec tpsys_ShrinkDBДля запуска этого задания требуется выбрать время минимальной нагрузки на сервер, когда никто не работает с базой данной и на ней не выполняются никакие другие задания (чтобы не возникали конфликты).
Наиболее эффективным способом для создания такого задания и настройки расписания его выполнения является использование скрипта
Job_optimization.sql.Пользователь может создать задание, последовательно выполняющее обе процедуры, или два самостоятельно выполняемых задания.
Если для переиндексации и сжатия базы данных и ее логов используются разные задания, в расписании этих заданий необходимо предусмотреть, чтобы:
-
они не запускались одновременно друг с другом и с другими заданиями, нагружающими базу данных (например, одновременно с архивацией базы данных),
-
перед запуском последующего задания было достаточно времени для завершения предыдущего задания,
-
они запускались в то время, когда пользовательская нагрузка на сервер минимальна,
-
они запускались 1 раз в день.
-
После выполнения всех настроек полностью перезагрузите сервер и проанализируйте изменение скорости работы системы.
Скрипт Job_optimization.sql
Скрипт Job_optimization.sql предназначен для создания задания (job), которое будет регулярно выполняться на SQL-сервере. В процессе выполнения здания производится переиндексация базы данных и, затем, сжатие (shrink) базы данных.
Перед запуском в тексте скрипта необходимо:
-
Заменить название базы данных
Tillypadна имя реальной базы данных.select @name_db='Tillypad' -
Установить необходимое время запуска задания в формате
ЧЧММСС.@active_start_time=230000
После запуска скрипта задание будет автоматически запускаться в указанное время ежедневно.
| Для предотвращения возможных конфликтов требуется, чтобы в это время никто не работал с базой данных и на базе данных не выполнялись никакие другие задания. |
Хранимая процедура tpsys_SetSQLServerSettings
Хранимая процедура tpsys_SetSQLServerSettings предназначена для присвоения параметрам SQL-сервера и базы данных значений, позволяющим достичь высокой производительности.
Чтобы создать хранимую процедуру tpsys_SetSQLServerSettings в базе данных сегмента выполните скрипт tpsys_SetSQLServerSettings.sql
| Проверено на Microsoft SQL Server 2008 и Microsoft SQL Server 2012. На более ранних версиях Microsoft SQL Server возможны ошибки выполнения. |
После успешного выполнения скрипта выполните процедуру tpsys_SetSQLServerSettings.
exec tpsys_SetSQLServerSettings
Процедуру tpsys_SetSQLServerSettings нужно выполнить один раз.
В результате выполнения процедуры tpsys_SetSQLServerSettings устанавливаются оптимальные настройки:
-
Для SQL-сервера максимальная степень параллелизма устанавливается равной
1. -
Для системной базы данных отменяется автоматическое сжатие.
-
Для базы данных сегмента:
-
параметру «Модель восстановления» присваивается значение «Простая» («Simple»),
-
параметру «Автоматическое сжатие» присваивается значение «False»,
-
для файлов данных
.mdfустанавливается начальный размер1024 Мб(только если существующий файл меньше этого размера), авторасширение принимается равным100 Мб, -
для файлов данных
.ldfустанавливается начальный размер100 Мб(только если существующий файл меньше этого размера), авторасширение принимается равным10%.
-
Если при выполнении процедуры будет получено сообщение об ошибке: «Невозможно настроить файлы tempdb, так как для этого требуется уменьшение текущего размера файлов данных tempdb», то надо перезапустить SQL сервер и повторно выполнить процедуру.
После успешного выполнения процедуры tpsys_SetSQLServerSettings будут выведены сообщения:
-
Параметр конфигурации "show advanced options" изменен с
0на1. Выполните инструкциюRECONFIGUREдля установки. -
Параметр конфигурации
max degree of parallelismизменен с0на1. Выполните инструкциюRECONFIGUREдля установки.
Выполнять RECONFIGURE не требуется, так как в процедуре он автоматически запускается после записи всех настроек.