Инструкции Showplan XML

В Microsoft SQL Server выходные данные плана выполнения «Showplan» могут быть созданы в формате XML различными способами. Выходные данные инструкции Showplan в формате XML могут передаваться с одного компьютера на другой, даже если на нем не установлен экземпляр SQL Server. Кроме того, их можно обрабатывать программным путем, используя XML-технологии, например XPath, XQuery, XSLT, SAX, DOM и другие. SQL Server поддерживает обработку инструкций Showplan XML, поскольку имеет встроенный механизм вычисления запросов XPath и XQuery.

Выходные данные инструкции Showplan XML могут быть сформированы следующими методами:

  • с помощью функций Показать предполагаемый план выполнения или Включить действительный план выполнения панели инструментов редактора запросов среды Среда SQL Server Management Studio;

  • используя параметры SHOWPLAN_XML и STATISTICS XML инструкции Transact-SQL Showplan SET;

  • выбрав для трассировки следующие классы событий приложения Приложение SQL Server Profiler: Showplan XML, Showplan XML for Query Compile и Showplan XML Statistics Profile;

  • с помощью функции динамического управления sys.dm_exec_query_plan.

Результат выполнения инструкций Showplan XML имеет тип данных nvarchar(max) для всех методов, за исключением метода, использующего динамическое представление sys.dm_exec_query_plan. При использовании этого представления результат работы инструкции Showplan XML возвращается в виде типа данных xml.

XML-схему инструкции Showplan можно получить вместе с установочными файлами SQL Server по адресу:

C:\Program Files\Microsoft SQL Server\100\Tools\Binn\schemas\sqlserver\2004\07\showplan\showplanxml.xsd

ПримечаниеПримечание

Если оптимизатор запросов преждевременно завершает оптимизацию запроса, для элемента StmtSimple выходных данных инструкции Showplan XML возвращается значение атрибута StatementOptmEarlyAbortReason. Этот атрибут может принимать значения TimeOut, GoodEnoughPlanFound и MemoryLimitExceeded. Если возвращается значение TimeOut или GoodEnoughPlanFound, то нет необходимости предпринимать какие-либо действия. Результаты выполнения инструкции Showplan верны.

Если для атрибута StatementOptmEarlyAbortReason возвращено значение MemoryLimitExceeded, то это означает, что результаты выполнения инструкции Showplan XML верны, но могут быть неоптимальными. Чтобы увеличить объем доступной памяти, воспользуйтесь одним из следующих методов: 1) снизьте загрузку сервера; 2) увеличьте объем памяти, выделяемой для SQL Server. Дополнительные сведения см. в разделе Управление памятью для больших баз данных; 3) проверьте значение параметра max server memory, которое устанавливается при помощи хранимой процедуры sp_configure, и увеличьте его, если оно слишком мало. Дополнительные сведения см. в разделе Параметры памяти сервера.

Сведения о XML-схеме инструкции Showplan

Обозначение версии XML-схемы инструкции Showplan состоит из двух частей и выглядит следующим образом: m.n, где m — основной номер версии, а n — дополнительный номер версии, например «Версия 2.5». Указанный номер версии отображается в корневом элементе документа XML-схемы инструкции Showplan. Например: version="0.5"

Обратная совместимость XML-схем инструкции Showplan

При выпуске новой основной версии XML-схемы инструкции Showplan формат ее выходных данных может не совпадать с форматом, использовавшимся в более ранней версии. При выпуске дополнительного номера версии схемы преемственность используемых форматов данных сохраняется. Например, форматы выходных данных инструкции Showplan XML для схем версий 0.5 и 0.6 совпадают.

Кодировка инструкций Showplan XML

В SQL Server выходные данные инструкции «Showplan XML» отправляются клиенту в Юникоде, при этом на каждый символ выделяется два байта. Используются следующие правила кодирования.

  • Если (char >= 0x0020 && char <= 0xD7FF) или (char == 0x0009) или 

    (char == 0x000A) или (char == 0x000D) или (char >= 0xE000 && char <= 0xFFFD)

    then send the char as 2 bytes, else send '?'

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

    • \t кодируется как '&#x9;'

    • \n кодируется как '&#xa;'

    • \r кодируется как '&#xd;'

Сохранение выходных данных инструкции Showplan XML в файл

После формирования выходных данных инструкции Showplan с помощью инструкции Transact-SQL SET SHOWPLAN_XML или STATISTICS XML их можно сохранить в файл с расширением SQLPLAN, например MyXMLShowplan.sqlplan. Файлы с расширением SQLPLAN можно открывать и просматривать в среде Среда SQL Server Management Studio. Дополнительные сведения см. в разделе Как сохранить план выполнения в формате XML.