Как создать сценарий метаданных базы данных, необходимые для создания только Статистика базы данных в SQL Server

Применимо к: SQL Server 2014 DeveloperSQL Server 2014 DeveloperSQL Server 2014 Enterprise

ВВЕДЕНИЕ


Для определения оптимального плана запроса оптимизатор запросов в Microsoft SQL Server использует следующие сведения:
  • Метаданные базы данных
  • Аппаратная среда
  • Состояние сеанса базы данных
Как правило должен имитировать эти же типы данных, если необходимо воспроизвести поведение оптимизатора запросов в тестовой системе.

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

Дополнительные сведения


При использовании SQL Server 2005, перед выполнением действий для создания сценария, убедитесь, что среда SQL Server Management Studio версии SQL Server 2005 Пакет обновления 2 или более поздней версии. При использовании более ранних версий SQL Server Management Studio SQL Server 2005, мастера сценариев не содержит все необходимые параметры для действия, описанные в данной статье для правильной работы.

Сценарий всей базы данных

При создании базы данных только для статистики клон, возможно, проще и надежнее сценарий всей базы данных, а не отдельные объекты сценария. Когда сценарий всей базы данных, получают следующие преимущества:
  • Чтобы избежать проблем с отсутствующими зависимые объекты, которые требуется воспроизвести проблему.
  • Требуется значительно меньше шагов для выделения необходимых объектов.
Примечание. Если создать сценарий для базы данных и метаданных для базы данных содержит тысячи объектов, процесс написания сценариев требуются значительные ресурсы Процессора. Корпорация Майкрософт рекомендует создать скрипт часы наименьшей нагрузки. Или можно использовать второй вариант для создания сценария для отдельных объектов.

Для каждой базы данных, на которую ссылается запрос сценария, выполните следующие действия:
  1. Откройте среду SQL Server Management Studio.
  2. В Обозревателе объектовразверните узел базы данныхи найдите базу данных, нужно создать сценарий.
  3. Щелкните правой кнопкой мыши базу данных, выберите задачии щелкните Сформировать сценарии.
  4. Убедитесь, что выбрана необходимая база данных в мастере сценариев. Установите флажок сценарий все объекты выбранной базы данных и нажмите кнопку Далее.
  5. В диалоговом окне Выбор параметров сценария измените следующие параметры из значения по умолчанию для значения, перечисленные в следующей таблице.
    Параметр сценарияЗначение для выбора
    Заполнение ANSIЗначение true
    Продолжить выполнение сценария при ошибкеЗначение true
    Сформировать сценарий для зависимых объектовЗначение true
    Включить имена системных ограниченийЗначение true
    Параметры сортировки для сценарияЗначение true
    Создание скрипта базы данныхЗначение true
    Сценарий входаЗначение true
    Внести в сценарий разрешения уровня объектовЗначение true
    Внести в сценарий статистикуВнести в сценарий статистику и гистограммы
    Внести в сценарий индексыЗначение true
    Внести в сценарий триггерыЗначение true
    Примечание. Параметр Сценария входа и параметр Внести в сценарий разрешения уровня объектов может не требоваться, если схема содержит объекты, которыми владеет имена входа, отличные от dbo.
  6. Нажмите кнопку Далее.
  7. Выберите вариант сценарий в файл , а затем введите имя файла.
  8. Нажмите кнопку Готово.

Отдельные объекты сценария

Вы можете только отдельные объекты сценария, на которые ссылается определенный запрос вместо создания сценариев для всей базы данных. Однако если все объекты базы данных, созданные с помощью предложения WITH SCHEMABINDING, сведений о зависимостях в системной таблице sys.depends может всегда оказаться неточным. Эта неточность может привести к одной из следующих проблем:
  • Процесс создания сценариев не сценарий зависимого объекта.
  • Процесс написания сценариев может внести в сценарий объекты в неверном порядке. Для успешного выполнения сценария необходимо вручную изменить созданный сценарий.
Таким образом мы не рекомендуем сценарий отдельных объектов, если база данных состоит из большого числа объектов и сценариев в противном случае потребуется слишком много времени. Если необходимо использовать отдельные объекты сценария, выполните следующие действия.
  1. В среде SQL Server Management Studio разверните узел базы данныхи найдите базу данных, нужно создать сценарий.
  2. Щелкните правой кнопкой мыши базу данных, выберите команду Сценария базы данных как, выберите команду Создать, чтобыи выберите файл.
  3. Введите имя файла и нажмите кнопку Сохранить.

    Ядро базы данных контейнера будут внесены в сценарий. Этот контейнер включает файлы, группы файлов, баз данных и свойства.
  4. Щелкните правой кнопкой мыши базу данных, выберите задачии щелкните Сформировать сценарии.
  5. Убедитесь, что выбрана необходимая база данных, а затем нажмите кнопку Далее.
  6. В диалоговом окне Выбор параметров сценария измените следующие параметры из значения по умолчанию для значения, перечисленные в следующей таблице.
    Параметр сценарияЗначение для выбора
    Заполнение ANSIЗначение true
    Продолжить выполнение сценария при ошибкеЗначение true
    Включить имена системных ограниченийЗначение true
    Сформировать сценарий для зависимых объектовЗначение true
    Параметры сортировки для сценарияЗначение true
    Сценарий входаЗначение true
    Внести в сценарий разрешения уровня объектовЗначение true
    Внести в сценарий статистикуВнести в сценарий статистику и гистограммы
    Сценарий использования базы данныхЗначение true
    Внести в сценарий индексыЗначение true
    Внести в сценарий триггерыЗначение true
    Примечание. Параметр Сценария входа и параметр Внести в сценарий разрешения уровня объектов может не требоваться, если схема содержит объекты, которыми владеет имена входа, отличные от dbo.
  7. В диалоговом окне Выбор типов объектов выберите всех типов объектов базы данных, которые ссылается проблемных запросов.

    Например если запрос ссылается только на таблицы, выберите таблицы. Если запрос ссылается на представление, выберите таблицы и представления. Если проблемных запросов использует пользовательскую функцию, выберите функции.
  8. После выбора всех типов объектов, на которые ссылается запрос, нажмите кнопку Далее.
  9. Диалоговое окно для каждого типа объектов базы данных, выбранное на шаге 7. В каждом диалоговом окне выберите конкретные таблицы, представления, функции или другие объекты базы данных и нажмите кнопку Далее.
  10. Выберите вариант сценарий в файл , а затем укажите же имя файла, введенное на шаге 3.
  11. Нажмите кнопку Готово для запуска сценариев.
После завершения сценария отправки файла сценария специалист службы поддержки Майкрософт. Специалист службы поддержки Майкрософт могут также запросить следующую информацию:
  • Конфигурации оборудования, в том числе количество процессоров и объем физической памяти существует
  • Параметры SET, которая была активна при запуске запроса
Примечание. Вы уже предоставили эту информацию путем отправки отчета SQLDiag или трассировки профайлера SQL. Возможно также использовался другой метод для предоставления этой информации.

Использование данных

Следующие таблицы помогают объяснить, как оптимизатор запросов использует эти сведения для выбора плана запроса.

Метаданные

ОграниченияОптимизатор запросов использует часто ограничения для выявления противоречия между базовой схемы и запроса. Например, если запрос содержит «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 .