Оптимизиция по индексам. Советы. Часть 2.

Продолжаю тему оптимизации запросов по индексам начатую тут. Кстати синтаксис create можно посмотреть тут для MS SQL http://msdn.microsoft.com/ru-ru/library/ms188783.aspx, и тут для MySQL http://dev.mysql.com/doc/refman/5.0/en/create-index.html.

Продолжаю советы:

4. Если в запросах к таблице часто фигурирует одинаковый набор полей, то старайтесь создать составной индекс из этих полей.

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

6. (MS SQL) При операциях с индексом, таких как создание или перестроение, используйте ключ ONLINE = ON, выполняя эти операции в фоне. Таким образом, пользователи смогут безполезненно делать запросы к таблице, а операция перестроения не будет удерживать монопольных блокировок на данных.

Ключ ONLINE доступен в следующих инструкциях языка

  • CREATE INDEX
  • ALTER INDEX
  • DROP INDEX
  • ALTER TABLE

Например:

ALTER INDEX ALL ON TableName

REBUILD WITH (ONLINE = ON);

7. По возможности создавайте кластерные индексы как можно меньшими, например вместе guid лучше использовать int. Связано это с тем, что некластерные индексы содержат в себе ссылки на кластерный индекс. Таким образом, выбирая большой кластерный индекс, замедляете работу некластерного при обращении к нему. К тому же большие кластерные индексы приводят к увеличению застрат дискового пространства.

Продолжение следует…

VN:F [1.9.13_1145]
Rating: 0.0/10 (0 votes cast)

Читайте также:

  1. Пока что нет комментариев.
  1. Пока что нет уведомлений.