ВВЕДЕНИЕ
Для определения оптимального плана запроса оптимизатор запросов в Microsoft SQL Server использует следующие сведения:
Службу поддержки пользователей Майкрософт может потребоваться создать сценарий метаданных базы данных. Службу поддержки пользователей Майкрософт для изучения проблемы оптимизатор использует этот сценарий метаданных базы данных. В данной статье описываются шаги для создания скрипта статистики. В статье также описывается, как оптимизатор запросов использует.
- Метаданные базы данных
- Аппаратная среда
- Состояние сеанса базы данных
Службу поддержки пользователей Майкрософт может потребоваться создать сценарий метаданных базы данных. Службу поддержки пользователей Майкрософт для изучения проблемы оптимизатор использует этот сценарий метаданных базы данных. В данной статье описываются шаги для создания скрипта статистики. В статье также описывается, как оптимизатор запросов использует.
Дополнительные сведения
При использовании SQL Server 2005, перед выполнением действий для создания сценария, убедитесь, что среда SQL Server Management Studio версии SQL Server 2005 Пакет обновления 2 или более поздней версии. При использовании более ранних версий SQL Server Management Studio SQL Server 2005, мастера сценариев не содержит все необходимые параметры для действия, описанные в данной статье для правильной работы.
Для каждой базы данных, на которую ссылается запрос сценария, выполните следующие действия:
Сценарий всей базы данных
При создании базы данных только для статистики клон, возможно, проще и надежнее сценарий всей базы данных, а не отдельные объекты сценария. Когда сценарий всей базы данных, получают следующие преимущества:- Чтобы избежать проблем с отсутствующими зависимые объекты, которые требуется воспроизвести проблему.
- Требуется значительно меньше шагов для выделения необходимых объектов.
Для каждой базы данных, на которую ссылается запрос сценария, выполните следующие действия:
- Откройте среду SQL Server Management Studio.
- В Обозревателе объектовразверните узел базы данныхи найдите базу данных, нужно создать сценарий.
- Щелкните правой кнопкой мыши базу данных, выберите задачии щелкните Сформировать сценарии.
- Убедитесь, что выбрана необходимая база данных в мастере сценариев. Установите флажок сценарий все объекты выбранной базы данных и нажмите кнопку Далее.
- В диалоговом окне Выбор параметров сценария измените следующие параметры из значения по умолчанию для значения, перечисленные в следующей таблице.Примечание. Параметр Сценария входа и параметр Внести в сценарий разрешения уровня объектов может не требоваться, если схема содержит объекты, которыми владеет имена входа, отличные от dbo.
Параметр сценария Значение для выбора Заполнение ANSI Значение true Продолжить выполнение сценария при ошибке Значение true Сформировать сценарий для зависимых объектов Значение true Включить имена системных ограничений Значение true Параметры сортировки для сценария Значение true Создание скрипта базы данных Значение true Сценарий входа Значение true Внести в сценарий разрешения уровня объектов Значение true Внести в сценарий статистику Внести в сценарий статистику и гистограммы Внести в сценарий индексы Значение true Внести в сценарий триггеры Значение true - Нажмите кнопку Далее.
- Выберите вариант сценарий в файл , а затем введите имя файла.
- Нажмите кнопку Готово.
Отдельные объекты сценария
Вы можете только отдельные объекты сценария, на которые ссылается определенный запрос вместо создания сценариев для всей базы данных. Однако если все объекты базы данных, созданные с помощью предложения WITH SCHEMABINDING, сведений о зависимостях в системной таблице sys.depends может всегда оказаться неточным. Эта неточность может привести к одной из следующих проблем:- Процесс создания сценариев не сценарий зависимого объекта.
- Процесс написания сценариев может внести в сценарий объекты в неверном порядке. Для успешного выполнения сценария необходимо вручную изменить созданный сценарий.
- В среде SQL Server Management Studio разверните узел базы данныхи найдите базу данных, нужно создать сценарий.
- Щелкните правой кнопкой мыши базу данных, выберите команду Сценария базы данных как, выберите команду Создать, чтобыи выберите файл.
- Введите имя файла и нажмите кнопку Сохранить.
Ядро базы данных контейнера будут внесены в сценарий. Этот контейнер включает файлы, группы файлов, баз данных и свойства. - Щелкните правой кнопкой мыши базу данных, выберите задачии щелкните Сформировать сценарии.
- Убедитесь, что выбрана необходимая база данных, а затем нажмите кнопку Далее.
- В диалоговом окне Выбор параметров сценария измените следующие параметры из значения по умолчанию для значения, перечисленные в следующей таблице.Примечание. Параметр Сценария входа и параметр Внести в сценарий разрешения уровня объектов может не требоваться, если схема содержит объекты, которыми владеет имена входа, отличные от dbo.
Параметр сценария Значение для выбора Заполнение ANSI Значение true Продолжить выполнение сценария при ошибке Значение true Включить имена системных ограничений Значение true Сформировать сценарий для зависимых объектов Значение true Параметры сортировки для сценария Значение true Сценарий входа Значение true Внести в сценарий разрешения уровня объектов Значение true Внести в сценарий статистику Внести в сценарий статистику и гистограммы Сценарий использования базы данных Значение true Внести в сценарий индексы Значение true Внести в сценарий триггеры Значение true - В диалоговом окне Выбор типов объектов выберите всех типов объектов базы данных, которые ссылается проблемных запросов.
Например если запрос ссылается только на таблицы, выберите таблицы. Если запрос ссылается на представление, выберите таблицы и представления. Если проблемных запросов использует пользовательскую функцию, выберите функции. - После выбора всех типов объектов, на которые ссылается запрос, нажмите кнопку Далее.
- Диалоговое окно для каждого типа объектов базы данных, выбранное на шаге 7. В каждом диалоговом окне выберите конкретные таблицы, представления, функции или другие объекты базы данных и нажмите кнопку Далее.
- Выберите вариант сценарий в файл , а затем укажите же имя файла, введенное на шаге 3.
- Нажмите кнопку Готово для запуска сценариев.
- Конфигурации оборудования, в том числе количество процессоров и объем физической памяти существует
- Параметры SET, которая была активна при запуске запроса
Использование данных
Следующие таблицы помогают объяснить, как оптимизатор запросов использует эти сведения для выбора плана запроса.Метаданные
Ограничения | Оптимизатор запросов использует часто ограничения для выявления противоречия между базовой схемы и запроса. Например, если запрос содержит «col ГДЕ = 5» предложение и проверочное ограничение «ПРОВЕРЬТЕ (col < 5)» существует, оптимизатор запросов знает, что строки не будет соответствовать. Оптимизатор запросов делает сходных типов вычетов о допустимости значений NULL. Например предложение «ГДЕ col является NULL» известен как true или false в зависимости от столбца принимать значение NULL и является ли столбец из внешней таблицы внешнего соединения. Наличие ограничений FOREIGN KEY является полезным для определения мощности и порядок соответствующих соединения. Оптимизатор запросов можно использовать сведения об ограничениях для устранения соединения или упрощения предикатов. Эти изменения могут не требуется обращаться к базовым таблицам. |
Статистика | Плотность и гистограммы, показывающий распределение начального столбца ключа индекса и статистики, содержит статистические данные. В зависимости от характера предикат оптимизатор запросов может использовать плотность и гистограммы для оценки мощности предиката. Обновленные статистические показатели для точного занижена. Оценки мощности используются как входные данные в Оценка затрат на оператора. Таким образом необходимо иметь хорошую занижена для получения оптимальных планов запросов. |
Размер таблицы (число строк и страниц) | Оптимизатор запросов использует гистограмм и плотности для вычисления вероятности того, что заданный предикат true или false. Оценка окончательного мощность вычисляется путем умножения вероятности число строк, возвращаемых оператором дочерних. Количество страниц в таблице или индексе является фактором Оценка затрат на операции ввода-ВЫВОДА. Размер таблицы используется для расчета затрат на сканирование и полезно при оценке число страниц, которые будут доступны во время поиск по индексу. |
Параметры базы данных | Несколько параметров базы данных может повлиять на оптимизации. Влияет на параметры AUTO_CREATE_STATISTICS и AUTO_UPDATE_STATISTICS оптимизатор запросов будет создавать создать статистику или обновление статистики, являются устаревшими. Уровень ПАРАМЕТРИЗАЦИИ влияет, как параметризованный запрос ввода до передачи входного запроса оптимизатор запросов. Параметризация может повлиять на оценки мощности и может также запретить сопоставление для индексированных представлений и другие виды оптимизации. Параметр DATE_CORRELATION_OPTIMIZATION заставляет оптимизатор поиск корреляции между столбцами. Этот параметр влияет на Оценка количества элементов и затрат. |
Среды
Настройка параметров сеанса | ANSI_NULLS ли параметр влияет на «NULL = NULL» выражение принимает значение true. Оценка количества элементов для внешних соединений может изменяться в зависимости от текущей настройки. Кроме того неоднозначные выражения могут изменяться. Например «col = NULL» выражение по-разному в зависимости от параметра. Тем не менее «col IS NULL» всегда выражение таким же образом. |
Аппаратные ресурсы | Стоимость для сортировки и хэш-операторов зависит от относительный объем памяти, доступной SQL Server. Например, если размер данных превышает кэша, оптимизатор запросов знает данные очереди всегда необходимо на диск. Тем не менее если объем данных, намного меньше, чем кэш, операция может быть выполнена в памяти. SQL Server также учитывает разных оптимизаций, если сервер имеет несколько процессоров и параллелизм не была отключена с помощью подсказки «MAXDOP» или параметр конфигурации max degree of parallelism . |