sys.fn_stmt_sql_handle_from_sql_stmt (Transact-SQL)
Область применения: SQL Server 2016 (13.x) и более поздних версий База данных SQL Azure Управляемый экземпляр SQL Azure
Возвращает stmt_sql_handle инструкции Transact-SQL в соответствии с заданным типом параметризации (простым или принудительным). Это позволяет ссылаться на запросы, хранящиеся в хранилище запросов, используя их stmt_sql_handle, когда вы знаете свой текст.
Соглашения о синтаксисе Transact-SQL
Синтаксис
sys.fn_stmt_sql_handle_from_sql_stmt
(
'query_sql_text' ,
[ query_param_type
) [;]
Аргументы
query_sql_text
Текст запроса в хранилище запросов, для которого требуется дескриптор. query_sql_text — это nvarchar(max), без значения по умолчанию.
query_param_type
Тип параметра запроса. query_param_type это крошечный. Возможны следующие значения:
NULL — по умолчанию — значение 0
0 — нет;
1 — пользователь
2 — простой
3 — принудительно
Возвращаемые столбцы
В следующей таблице перечислены возвращаемые sys.fn_stmt_sql_handle_from_sql_stmt
столбцы.
Имя столбца | Тип | Описание |
---|---|---|
statement_sql_handle | varbinary(64) | Дескриптор SQL. |
query_sql_text | nvarchar(max) | Текст инструкции Transact-SQL. |
query_parameterization_type | tinyint | Тип параметризации запроса. |
Значения кода возврата
0 (успешное завершение) или 1 (неуспешное завершение)
Замечания
Разрешения
Требуется разрешение EXECUTE для базы данных и разрешение DELETE для представлений каталога хранилища запросов.
Примеры
В следующем примере выполняется инструкция, а затем используется sys.fn_stmt_sql_handle_from_sql_stmt
для возврата дескриптора SQL этой инструкции.
SELECT * FROM sys.databases;
SELECT * FROM sys.fn_stmt_sql_handle_from_sql_stmt('SELECT * FROM sys.databases', NULL);
Используйте функцию для сопоставления хранилище запросов данных с другими динамическими административными представлениями. Следующий пример:
SELECT qt.query_text_id, q.query_id, qt.query_sql_text, qt.statement_sql_handle,
q.context_settings_id, qs.statement_context_id
FROM sys.query_store_query_text AS qt
JOIN sys.query_store_query AS q
ON qt.query_text_id = q.query_id
CROSS APPLY sys.fn_stmt_sql_handle_from_sql_stmt (qt.query_sql_text, null) AS fn_handle_from_stmt
JOIN sys.dm_exec_query_stats AS qs
ON fn_handle_from_stmt.statement_sql_handle = qs.statement_sql_handle;
См. также
- sp_query_store_force_plan (Transact-SQL)
- sp_query_store_remove_plan (Transact-SQL)
- sp_query_store_unforce_plan (Transact-SQL)
- sp_query_store_reset_exec_stats (Transact-SQL)
- sp_query_store_flush_db (Transact-SQL)
- sp_query_store_remove_query (Transact-SQL)
- Представления каталога хранилища запросов (Transact-SQL)
- Мониторинг производительности с использованием хранилища запросов