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

Распределенная статистика хранится для столбцов и индексов. Она указывает селективность значений в определенном индексе или столбце

Читайте также:
  1. I. Случайные величины с дискретным законом распределения (т.е. у случайных величин конечное или счетное число значений)
  2. LU – алгоритм нахождения собственных значений для несимметричных задач
  3. QR- алгоритм нахождения собственных значений
  4. Алгоритм 2. Визуальный анализ диаграммы рассеяния, выявление и фиксация аномальных значений признаков, их удаление из первичных данных
  5. Балла). Введение импортных пошлин повысило цены ввозимых потребительских товаров. Как это отразится на индексе цен?
  6. Банковская статистика
  7. Бозе-Эйнштейн статистикасы
  8. Бухгалтерський облік призначений,
  9. Влияние отклонения параметров производственного микроклимата от нормативных значений на производительность труда и состояния здоровья, профессиональные заболевания.
  10. Вопрос 5. Статистика специальной педагогики
  11. Восстановление маркировочных обозначений на металлических изделиях
  12. Восстановление маркировочных обозначений на полимерных изделиях

 

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

 

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

 

Основные шаги, описанные для обработки инструкции SELECT, применимы к другим инструкциям SQL, таким как INSERT, UPDATE и DELETE.

Инструкции UPDATE и DELETE имеют адресатом набор строк, которые будут изменены или удалены. Процесс идентификации этих строк является тем же процессом, что и процесс, используемый для идентификации исходных строк, определяющих результирующий набор инструкции SELECT. Инструкции UPDATE и INSERT могут обе содержать встроенные инструкции SELECT, предоставляющие значения данных, которые будут обновлены или вставлены.

Механизмы использования планов выполнения.

В SQL Server 2005 планы выполнения состоят из следующих основных компонентов.

· План запроса

Тело плана выполнения является реентерабельной[1] структурой данных только для чтения, которая предназначена для использования любым числом пользователей. Оно называется планом запроса. План запроса не содержит контекста пользователя. В памяти не может находиться более одной или двух копий плана запроса: одна — для всех последовательных выполнений, а другая — для всех параллельных выполнений. Одна параллельная копия обслуживает все параллельные выполнения независимо от степени параллелизма.

· Контекст выполнения

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

 

 

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

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

Алгоритмы поиска соответствия инструкции SQL существующему неиспользуемому плану выполнения в кэше требуют, чтобы все ссылки на объекты были полностью квалифицированы. Например, для инструкции SELECT (SELECT * FROM Contact) соответствие существующему плану не будет найдено, а для для инструкции SELECT (SELECT * FROM Person.Contact)- будет.

 

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

Каждый раз, когда соединение ссылается на объект, поле возраста увеличивается на коэффициент стоимости. Например, если план запроса имеет коэффициент стоимости 8 и на него ссылались дважды, его возраст становится равным 16. Процесс отложенной записи периодически просматривает список объектов, находящихся в кэше процедур. При каждом просмотре поле возраста уменьшается на единицу. В нашем примере возраст плана запроса в кэше будет уменьшен до нуля за 16 проходов, если ни один из пользователей им не воспользуется.

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

· Диспетчеру памяти требуется память, а вся доступная память уже занята.

· Поле возраста объекта равно 0.

· На объект в настоящий момент нет ссылок из соединений.

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

 

План может стать недействительным при выполнении следующих действий:

· Изменены таблица или представления, на которые ссылается запрос (ALTER TABLE или ALTER VIEW).

· Изменены индексы, используемые планом выполнения.

· Обновлена статистика, используемая планом выполнения, сформированная либо явным образом по UPDATE STATISTICS, либо автоматически.

· Удалены индексы, используемые планом выполнения.

· и др.

 


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

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



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