Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #52, МАРТ 2005 г.

Повышение производительности

Заратустра

Спецвыпуск: Хакер, номер #052, стр. 052-050-2


Центральный процессор

Как сам процессор, так и материнскую плату (например, ту, которая поддерживает установку дополнительных процессоров) необходимо брать с "запасом".

Память

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

Подсистема ввода/вывода

Эта часть аппаратных средств затрагивает производительность SQL-сервера. Речь идет об аппаратном RAID-контроллере и/или о производительных скоростных дисках. По соотношению скорость/надежность лучше выбирать RAID 0+1 или RAID 0.

Другой способ оптимизации дисковых операций - физическое разделение. Его суть в том, что элементы БД сервера, наиболее активно используемые в дисковых операциях, размещаются физически на разных накопителях. Этим разделением ты "отдашь" наиболее загруженным участкам отдельный ресурс, повысив тем самым скорость дисковых операций. К примеру, простое разделение выглядит так:

- журнал транзакций;

- временная база данных;

- файлы базы данных;

- таблицы, которые часто обновляются или читаются;

- некластерные индексы, которые часто обновляются или читаются.

Временная база данных используется для внутренних потребностей: сортировка, группирование и т.д. В сильно "нагруженных" системах под временную базу данных отводят RAID 0 (самый быстрый тип RAID). Причем временная БД менее чувствительна к надежности, а значит, зеркалирование можно не использовать, чего нельзя позволить себе на других участках БД.

Другой важный элемент аппаратного комплекса - сетевое оборудование. Его мощность имеет значение, если БД сервер работает в локальной сети и если большинство клиентов находятся в ней же. Если же большинство клиентов имеют небольшую скорость доступа, установка скоростного сетевого оборудования не имеет смысла.

SQL-сервер

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

Если ты жестко задаешь настройки, у SQL-сервера остается меньше возможностей для маневров. Изменяй настройки постепенно. Перед любыми изменениями производи тест "с нуля" (то есть для стандартных настроек сервера), чтобы потом можно было сравнить производительность до настройки и после нее. Также желательно изменять настройки по одной, чтобы точно знать, какие из них влияют на производительность.

Структура базы данных и Transact-SQL

Основные причины резкого снижения производительности заключаются в неправильной или непродуманной структуре базы данных. Первая проблема на пути к разработке базы данных - индексы. Индексы повышают производительность, но необходимо выбрать один из их двух типов (кластерный/некластерный) и определиться со столбцами для индексирования.

Назад на стр. 052-050-1  Содержание  Вперед на стр. 052-050-3