Как повысить производительность системы

Чтобы достичь высокой производительности SQL-сервера, на котором установлена база данных Tillypad, необходимо:

  • В панели управления операционной системы сервера выберите план электропитания «Высокая производительность».

    Выбор плана электропитания сервера

    htd highperformance.powersupply

    Чтобы выполнить эту настройку вручную, выберите план «Высокая производительность» в разделе «Электропитание» на панели управления («Пуск» > «Панель управления» > «Система управления и безопасность» > «Электропитание»).

  • Для серверов в панели управления выберите способ распределения ресурсов процессора, позволяющий оптимизировать работу служб, выполняющихся в фоновом режиме.

    Выбор способа распределения ресурсов процессора

    htd highperformance.server

    Чтобы выполнить эту настройку вручную, откройте окно «Свойства системы» («Пуск» > «Панель управления» > «Система» > «Дополнительные параметры системы»). Нажмите на кнопку «Параметры» в группе полей «Быстродействие». В открывшемся окне «Параметры быстродействия» выберите вкладку «Дополнительно». Затем выберите опцию «служб, работающих в фоновом режиме» в группе полей «Распределение времени процессора».

  • Присвойте параметру «Максимальная степень параллелизма» в свойствах экземпляра SQL-сервера значение «1».

    Установка степени параллелизма для экземпляра SQL сервера

    htd highperformance.parallelism

    Это значение можно присвоить вручную на странице «Дополнительно» в группе параметров «Параллелизм» свойств сервера или с помощью хранимой процедуры tpsys_SetSQLServerSettings.

  • Отмените автоматическое сжатие базы данных.

    Сброс параметра автоматического сжатия базы данных

    htd highperformance.autoshrink

    Это значение можно присвоить вручную в свойствах базы данных на странице «Параметры» в группе параметров «Автоматически» или с помощью хранимой процедуры 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) базы данных.

Перед запуском в тексте скрипта необходимо:

  1. Заменить название базы данных Tillypad на имя реальной базы данных.

    select @name_db='Tillypad'
  2. Установить необходимое время запуска задания в формате ЧЧММСС.

    @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 не требуется, так как в процедуре он автоматически запускается после записи всех настроек.