четверг, 8 мая 2008 г.

SQL Server 2005 Оптимизация

SQL Server 2005 Оптимизация


Содержание

1. Индексы, что это и зачем они нужны
a) Кластерезированые индексы
b) Некластерезированые индексы
2. Статистика, что это и зачем она нужна
3. Инстументы оптимизации
a) SQL Server Profiler
b) Database Engine Tuning Advisor

Индекс

Подобно содержанию в книге, индекс в базе данных позволяет быстро искать конкретные сведения в таблице или индексированном представлении.

Индекс содержит ключи, построенные из одного или нескольких столбцов таблицы или представления, и указатели, которые сопоставляются с местом хранения заданных данных.

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

Индексы сокращают объем данных, которые необходимо считать, чтобы возвратить результирующий набор.

Индексы также обеспечивают уникальность строк таблицы, гарантируя целостность данных таблицы.

Сбалансированное дерево




Кластеризованный индекс

Кластеризованный
Кластеризованные индексы сортируют и хранят строки данных в таблицах или представлениях на основе их ключевых значений. Этими значениями являются столбцы, включенные в определение индекса. Существует только один кластеризованный индекс для каждой таблицы, потому что строки данных могут быть отсортированы только в единственном порядке.
Строки данных в таблице хранятся в порядке сортировки только в том случае, если таблица содержит кластеризованный индекс. Если у таблицы есть кластеризованный индекс, то таблица называется кластеризованной. Если у таблицы нет кластеризованного индекса, то строки данных хранятся в неупорядоченной структуре, которая называется кучей.

Некластеризованный индекс

Некластеризованный
Некластеризованные индексы имеют структуру, отдельную от строк данных. В некластеризованном индексе содержатся значения ключа некластеризованного индекса, и каждая запись значения ключа содержит указатель на строку данных, содержащую значение ключа.
Указатель из строки индекса в некластеризованном индексе, который указывает на строку данных, называется указателем строки. Структура указателя строки зависит от того, хранятся ли страницы данных в куче или в кластеризованной таблице. Для кучи указатель строки является указателем на строку. Для кластеризованной таблицы указатель строки данных является ключом кластеризованного индекса.

Статистика

Microsoft SQL Server 2005 собирает статистику по индексам и полям данных, хранимых в базе. Эта статистика используется оптимизатором запроса SQL Server при выборе оптимального плана исполнения запросов на выборку или обновление данных.

При создании индекса оптимизатор запросов автоматически сохраняет данные статистики о проиндексированых столбцах.

Вкачестве альтернативы можно вручную создавать и обновлять статистику с помощью инструкций Transact-SQL и хранимых процедур

Создание статистики - CREATE STATISTICS

Обновление статистики - sp_updatestats

Автостатистика – AUTO_UPDATE_STATISTICS

Просмотр статистики - sp_helpstats

SQL Server Profiler

Приложение SQL Server Profiler — это средство, позволяющее перехватывать события SQL Server 2005 с сервера. События сохраняются в файле трассировки для дальнейшего анализа или использования с целью повторения определенной серии шагов при диагностике проблемы. Приложение SQL Server Profiler используется для следующих действий:

1. Пошаговое выполнение проблемных запросов для поиска источника проблемы;
2. Выявление и диагностика медленно работающих запросов;
3. Перехват серии инструкций Transact-SQL, ведущих к проблеме. Сохраненную трассировку затем можно использовать для моделирования и диагностики проблемы на тестовом сервере;
4. Контроль производительности SQL Server для настройки рабочих нагрузок.
5. Анализ счётчиков производительности для диагностики проблем.

SQL Server Profiler также поддерживает аудит действий, выполняемых в экземплярах SQL Server. В ходе аудита ведётся запись действий, связанных с безопасностью, для дальнейшего просмотра администратором безопасности.

Database Engine Tuning Advisor

Помощник по настройке ядра СУБД - новое средство в службах Microsoft SQL Server 2005, позволяющий настраивать базы данных для повышения скорости обработки запросов. Помощник по настройке ядра СУБД выявляет, каким образом запросы обрабатываются в указанных пользователем базах данных, а затем выдает рекомендации по повышению скорости обработки запросов путем изменения структур физического проектирования, таких как индексы, индексированные представления и секции.

Комментариев нет: