Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вся метода 3 (2).doc
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
1.15 Mб
Скачать

2.8.1. Конфигурация сети

Служба SQL Server настраивается и регулируется автоматически. Хотя ручная на­стройка в некоторых средах может повысить производительность, параметры на­стройки по умолчанию обычно обеспечивают максимальную производительность SQL Server 2000. Чтобы оптимизировать работу службы SQL Server можно настраивать параметры:

  • пользовательских соединений;

  • базы данных;

  • памяти;

  • процессора;

  • сервера.

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

Можно просматривать и изменять большинство параметров с помощью SQL Server Enterprise Manager. Чтобы просмотреть или изменить все настройки, восполь­зуйтесь системной хранимой процедурой sp_configure. При вызове без параметров она возвращает все текущие значения параметров конфигурации. Некоторые параметры настройки можно просмотреть только при помощи параметра Show Advanced Options. Для динамически настраиваемых параметров указываются нулевые значения. Если вы изменили какой-либо параметр с помощью хранимой процедуры sp_configure, выполните оператор RECONFIGURE или перезапустите службу SQL Server, чтобы система начала использовать новое значение параметра. Если вы изменили параметр с помощью SQL Server Enterprise Manager, система выдаст запрос на перезапуск SQL Server, чтобы изменения вступили в силу.

У каждого параметра есть текущее и заданное значение. Если параметр изменен, но не активизирован, текущее и заданное значения будут различаться.

2.8.2. Индексы

Структура индексов ориентирована на быстрый возврат результирующих наборов. SQL Server поддерживает два типа индексов: кластерные и не кластерные. Индексы могут быть созданы для одного или нескольких столбцов таблицы или представления. Индексированные таблицы поддерживаются всеми редакциями SQL Server 2000, а индексированные представления — только SQL Server Enterprise Edition и SQL Server Developer Edition. Интенсивность использования системных ресурсов и производительность при поиске данных зависит от свойств индекса. Оптимизатор запросов использует индекс, если это позволяет повысить производительность запроса. В этом занятии рассказано о различных типах индексов, их структуре и свойствах.

Назначение и структура индексов

В SQL Server индекс помогает механизму БД найти нужную запись; он напоминает по своему назначению предметный указатель книги, по которому читатель быстро отыскивает нужную информацию. Не будь индексов, SQL Server пришлось бы при поиске записей, соответствующих запросу, просматривать все записи таблицы по порядку (выполнять сканирование таблицы). Индекс БД формируется из значений одного или нескольких столбцов таблицы (которые в этом случае называются ключом индекса) и указателей на соответствующие записи таблицы. При исполнении запроса с ключом индекса оптимизатор запросов использует индекс для поиска записей, соответствующих запросу.

Диспетчер индексов (SQL Server Index Manager) структурирует индекс в виде сбалансированного дерева, или В-дерева (Balanced tree, B-tree), которое по виду напоминает перевернутое дерево: его корень располагается сверху, а листовой уровень — внизу; между ними расположен ряд промежуточных уровней. Каждый объект в структуре дерева — это группа отсортированных ключей индекса, которая называется страницей индекса.

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

Для оптимальной производительности запросов следует создавать индексы на тех столбцах таблицы, которые часто применяются в запросах. Например, пользователи могут строить свои запросы к таблице Customers на основе фамилии или идентификатора покупателя. Поэтому для этой таблицы следует создать два индекса: индекс фамилий и индекс идентификаторов. Для эффективного поиска записей оптимизатор запросов использует индекс, соответствующий запросу. При исполнении следующего запроса оптимизатор по всей вероятности воспользуется индексом идентификаторов:

SELECT * FROM Customers WHERE customerid = 798

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

Типы индексов

Существует два типа индексов: кластерные и некластерные. Структура обоих типов — В-дерево. На листовом уровне В-дерева кластерный индекс содержит записи таблицы, а некластерный — указатели на записи. Если на таблице построен кластерный индекс, то некластерный можно использовать при поиске данных как вспомогательный. В большин­стве случаев для таблицы сначала следует создавать кластерный индекс, а затем — один или несколько не кластерных.