АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Типы подсказок оптимизации

Читайте также:
  1. Алгоритм метода покоординатного спуска, не использующий одномерной оптимизации.
  2. Алгоритм метода сопряжённых направлений Пауэлла для оптимизации квадратичных функций.
  3. Введение допущений для решения задачи оптимизации прибыли
  4. Возможности использования элементов налоговой политики и налогового учета организации для целей оптимизации налоговых потоков
  5. Возможности оптимизации единого социального налога
  6. Вопрос 11. Производственная функция и условия оптимизации производства.
  7. Вопрос 24: Модели оптимизации затрат на качество.
  8. Врезка 13.3. Вывод правила оптимизации коммуникационного бюджета.
  9. Выбор проектов в условиях оптимизации капиталовложений
  10. Выпуклая оптимизация. Условие выпуклости. Субградиентный метод выпуклой оптимизации. Метод растяжения пространства. Метод эллипсоидов.
  11. Глава 3. мероприятиЕ по оптимизации денежных потоков ЗАО «Лидер»
  12. Глава 4 Мероприятия по оптимизации окружающей среды.

Database Engine поддерживает следующие типы подсказок оптимизации:

· подсказки таблицы;

· подсказки соединения;

· подсказки запроса;

· структуры планов.

 

Подсказки таблицы можно применить к одной таблице. Поддерживаются следующие подсказки таблицы:

· index;

· noexpand;

· forceseek (новое в SQL Server 2008).

Подсказка index служит, для указания одного или более индексов, которые затем будут использованы в запросе. Эта подсказка задается в предложении from в запросе. Можно использовать эту подсказку, чтобы осуществить доступ к индексу, если оптимизатор по различным причинам выбрал последовательное сканирование таблицы для данного запроса. Подсказка index также может быть полезной для того, чтобы не позволить оптимизатору использовать другой конкретный индекс.

Пример:

USE sample;

SELECT * FROM new_addresses a WITH (INDEX(i_stateprov))

WHERE a.StateProvinceID = 9

 

Эта подсказка заставляет оптимизатор запросов использовать индекс i_stateprov. Без этой подсказки оптимизатор будет, например, выбирать сканирование таблицы.

 

Другая форма подсказки для запроса index, index (0), требует, чтобы оптимизатор не использовал никаких существующих индексов.

USE AdventureWorks;

SELECT * FROM Person.Address AS a

WITH(INDEX(0))
WHERE a.StateProvinceID = 32

Если кластеризованный индекс существует, то index (0) требует сканирования кластеризованного индекса. Если кластеризованный индекс не существует, то index (0) требует сканирований таблицы.

 

USE AdventureWorks;

SELECT * FROM Person.Address a

WITH(INDEX(0))

WHERE a.StateProvinceID = 32

 

В первом случае оптимизатор использует сканирование кластеризованного индекса по причине задания подсказки index (0).

 

USE AdventureWorks;

SELECT * FROM Person.Address a

WHERE a.StateProvinceID = 32

 

Без этой подсказки оптимизатор запросов выбрал сканирование некластеризованного индекса.

 

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

 

Подсказка таблицы forceseek заставляет оптимизатор запросов выполнять только операцию поиска по индексу в качестве пути доступа к данным в таблице (или представлении), на которую ссылается запрос.

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

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

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.)