Комментарии SQL не сохраняются при просмотре в деталях запроса Azure - PullRequest
2 голосов
/ 27 марта 2019

Мы используем .NET Entity Framework для связи с базой данных SQL Azure.Мы использовали QueryOriginInterceptor для добавления некоторых комментариев в начало каждой команды SQL, отправляемой на SQL Server, с целью помочь определить местоположение, из которого поступил конкретный запрос в коде.

Проблема в том,при просмотре длительных запросов в пользовательском интерфейсе Azure (и при просмотре sys.dm_exec_query_stats) комментариев там нет.

Например, если мы выполним этот запрос:

-- Stack:
-- Utils.Orders.GetOrders
select * 
from [Order] o 
join OrderItem oi on oi.OrderId = o.ID

ИВ Azure долгосрочный запрос выглядит следующим образом:

enter image description here

Есть ли способ сохранить эти комментарии?

1 Ответ

0 голосов
/ 28 марта 2019

sys.dm_exec_query_stats не включает комментарии, но dm_exec_sql_text включает.

В этой статье объясняется, как использовать эти два параметра для диагностики проблем.

СоответствующиеSQL-запрос из статьи:

SELECT TOP 25
databases.name,
dm_exec_sql_text.text AS TSQL_Text,
CAST(CAST(dm_exec_query_stats.total_worker_time AS DECIMAL)/CAST(dm_exec_query_stats.execution_count AS DECIMAL) AS INT) as cpu_per_execution,
CAST(CAST(dm_exec_query_stats.total_logical_reads AS DECIMAL)/CAST(dm_exec_query_stats.execution_count AS DECIMAL) AS INT) as logical_reads_per_execution,
CAST(CAST(dm_exec_query_stats.total_elapsed_time AS DECIMAL)/CAST(dm_exec_query_stats.execution_count AS DECIMAL) AS INT) as elapsed_time_per_execution,
dm_exec_query_stats.creation_time, 
dm_exec_query_stats.execution_count,
dm_exec_query_stats.total_worker_time AS total_cpu_time,
dm_exec_query_stats.max_worker_time AS max_cpu_time, 
dm_exec_query_stats.total_elapsed_time, 
dm_exec_query_stats.max_elapsed_time, 
dm_exec_query_stats.total_logical_reads, 
dm_exec_query_stats.max_logical_reads,
dm_exec_query_stats.total_physical_reads, 
dm_exec_query_stats.max_physical_reads,
dm_exec_query_plan.query_plan,
dm_exec_cached_plans.cacheobjtype,
dm_exec_cached_plans.objtype,
dm_exec_cached_plans.size_in_bytes
FROM sys.dm_exec_query_stats 
CROSS APPLY sys.dm_exec_sql_text(dm_exec_query_stats.plan_handle)
CROSS APPLY sys.dm_exec_query_plan(dm_exec_query_stats.plan_handle)
INNER JOIN sys.databases
ON dm_exec_sql_text.dbid = databases.database_id
INNER JOIN sys.dm_exec_cached_plans 
ON dm_exec_cached_plans.plan_handle = dm_exec_query_stats.plan_handle
WHERE databases.name = 'AdventureWorks2014'
ORDER BY dm_exec_query_stats.max_logical_reads DESC;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...