Предварительно выделяйте для файлов tempdb место, равное максимальному размеру RAM-диска, и создавайте дополнительные небольшие файлы данных и журналов на диске, чтобы предотвратить нехватку места. SQL Server не будет использовать небольшие файлы на диске, пока RAM-диск не заполнится.
В базе данных tempdb всегда должно быть несколько файлов данных. К сожалению, конфигурация по умолчанию, которая создается во время установки SQL Server, неоптимальна, особенно в старых версиях. В главе 9 я расскажу, как точно настроить количество файлов данных в tempdb, а пока можно опираться на эмпирические правила:
● Если на сервере восемь или меньше ядер ЦП, создайте такое же количество файлов данных, сколько и ядер.
● Если на сервере больше восьми ядер ЦП, создайте либо восемь файлов данных, либо четверть от числа ядер — в зависимости от того, что больше, — округляя до пакетов по четыре файла. Например, на 24-ядерном сервере нужно 8 файлов данных, а на 40-ядерном — 12 файлов.
Наконец, убедитесь, что у всех файлов данных tempdb одинаковый начальный размер и что параметры автоувеличения указаны в мегабайтах, а не в процентах. Это позволит SQL Server сбалансированно использовать файлы данных и уменьшить состязания за использование ресурсов в системе.
SELECT @@VERSION — это первая команда, которую я запускаю во время проверки работоспособности SQL Server. Этому есть две причины. Во-первых, если знать версию, то легче продумывать стратегию отладки системы и предлагать улучшения. Во-вторых, это помогает понять, нет ли в системе уже известных проблем, характерных для этой версии.
Чтобы оптимизировать потребление памяти, можно уменьшить фрагментацию внутреннего индекса (столбец avg_page_space_used_in_percent в представлении sys.dm_db_index_physical_stats) и/или применить сжатие данных. Это уменьшит количество страниц данных и позволит SQL Server кэшировать больше данных в буферном пуле.
Если на сервере больше восьми ядер ЦП, создайте либо восемь файлов данных, либо четверть от числа ядер — в зависимости от того, что больше, — округляя до пакетов по четыре файла. Например, на 24-ядерном сервере нужно 8 файлов данных, а на 40-ядерном — 12 файлов.
Если IFI не включена, то в журнале SQL Server будет написано, что SQL Server обнуляет файл данных .mdf и файл журнала .ldf (рис. 1.2). Когда IFI включена, обнуляется только файл журнала .ldf.