对于 Azure 上托管的数据库,我可以查看对其执行的查询的最新历史记录。这是通过Azure 门户 > 数据库 > 管理 > 管理 > 查询性能实现的。
不幸的是,那里发现的历史记录只涵盖了很短的时间范围(几分钟)。我打算在数据库上创建非聚集索引,为此,需要获取典型一天(而不是过去几分钟)对数据运行的实际查询的日志。
目前,我必须多次刷新页面并记录每次刷新的所有查询,即使如此,我在这个艰巨的过程之后获得的日志也仅反射(reflect)了所执行查询的一小部分。是否有任何选项可以查看更长时间的历史记录?
谢谢。
最佳答案
我发现以下查询对于查看 Azure SQL Server 数据库上执行次数最多的查询很有用:
SELECT TOP 10 execution_count, statement_text
FROM (
SELECT QS.*,
SUBSTRING(
ST.text,
(QS.statement_start_offset/2) + 1,
((
CASE statement_end_offset
WHEN -1 THEN DATALENGTH(st.text)
ELSE QS.statement_end_offset END
- QS.statement_start_offset
) /2)
+ 1
) AS statement_text
FROM sys.dm_exec_query_stats AS QS
CROSS APPLY sys.dm_exec_sql_text(QS.sql_handle) as ST
) AS query_stats
WHERE statement_text LIKE 'UPDATE%'
ORDER BY execution_count DESC
来源:March Madness - SQL Azure - sys.dm_exec_query_plan | SQLRockstar | Thomas LaRock
关于logging - 如何查看在 Azure 上托管的数据库上执行的查询历史记录(全部或长期)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17920968/