ГЛАВНАЯ СТРАНИЦА

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

10.1

История переиздания
15.06.2022

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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