Повышение производительности Заратустра Спецвыпуск: Хакер, номер #052, стр. 052-050-2 Центральный процессор Как сам процессор, так и материнскую плату (например, ту, которая поддерживает установку дополнительных процессоров) необходимо брать с "запасом". Память Один из наиболее значительных компонентов аппаратного обеспечения, который влияет на производительность сервера базы данных. Памяти мало не бывает, так что можно купить столько памяти, сколько поддержит сервер и сколько потянет кошелек. Подсистема ввода/вывода Эта часть аппаратных средств затрагивает производительность SQL-сервера. Речь идет об аппаратном RAID-контроллере и/или о производительных скоростных дисках. По соотношению скорость/надежность лучше выбирать RAID 0+1 или RAID 0. Другой способ оптимизации дисковых операций - физическое разделение. Его суть в том, что элементы БД сервера, наиболее активно используемые в дисковых операциях, размещаются физически на разных накопителях. Этим разделением ты "отдашь" наиболее загруженным участкам отдельный ресурс, повысив тем самым скорость дисковых операций. К примеру, простое разделение выглядит так: - журнал транзакций; - временная база данных; - файлы базы данных; - таблицы, которые часто обновляются или читаются; - некластерные индексы, которые часто обновляются или читаются. Временная база данных используется для внутренних потребностей: сортировка, группирование и т.д. В сильно "нагруженных" системах под временную базу данных отводят RAID 0 (самый быстрый тип RAID). Причем временная БД менее чувствительна к надежности, а значит, зеркалирование можно не использовать, чего нельзя позволить себе на других участках БД. Другой важный элемент аппаратного комплекса - сетевое оборудование. Его мощность имеет значение, если БД сервер работает в локальной сети и если большинство клиентов находятся в ней же. Если же большинство клиентов имеют небольшую скорость доступа, установка скоростного сетевого оборудования не имеет смысла. SQL-сервер Широко распространено мнение о том что настройка SQL-сервера представляет собой перебор опций в поисках оптимальной конфигурации. На самом деле это можно было сказать только о старых версиях серверов баз данных. Как правило, современные БД умеют настраивать сами себя. Другими словами, сервер следит за выполняемыми на нем операциями и сам вносит нужные корректировки, обеспечивающие оптимально выполнение операций на имеющемся оборудовании. Если ты жестко задаешь настройки, у SQL-сервера остается меньше возможностей для маневров. Изменяй настройки постепенно. Перед любыми изменениями производи тест "с нуля" (то есть для стандартных настроек сервера), чтобы потом можно было сравнить производительность до настройки и после нее. Также желательно изменять настройки по одной, чтобы точно знать, какие из них влияют на производительность. Структура базы данных и Transact-SQL Основные причины резкого снижения производительности заключаются в неправильной или непродуманной структуре базы данных. Первая проблема на пути к разработке базы данных - индексы. Индексы повышают производительность, но необходимо выбрать один из их двух типов (кластерный/некластерный) и определиться со столбцами для индексирования. |