6

对于托管在 Azure 上的数据库,我可以查看在其上执行的查询的最近历史记录。这是通过Azure 门户 > 数据库 > 管理 > 管理 > 查询性能

不幸的是,在那里发现的历史只涵盖了一个很小的时间范围(几分钟)。我打算在我的数据库上创建非聚集索引,为此,需要获取一个典型的一天对数据运行的真实查询的日志,而不是过去几分钟。

目前,我必须多次刷新页面并记录每次刷新的所有查询,即使如此,我在这个艰苦的过程之后获得的日志也只反映了执行查询的一小部分。是否有任何选项可以查看更长时间的历史记录?

谢谢。

4

2 回答 2

8

这是一个查询,我发现它有助于查看我的 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

资料来源:疯狂三月 - SQL Azure - sys.dm_exec_query_plan | SQLRockstar | 托马斯·拉洛克

于 2018-01-23T08:52:25.903 回答
6

Windows Azure SQL 数据库提供动态管理视图 (DMV),它返回服务器状态信息,可用于监视服务器实例的运行状况、诊断问题和调整性能。

有关可用视图的列表,请参阅系统视图(Windows Azure SQL 数据库)

有关如何查找 CPU 密集型查询、长时间运行查询和 I/O 密集型查询的示例,请参阅调优 SQL Azure 数据库,第 2 部分

有关其他故障排除提示,请参阅使用 Windows Azure SQL 数据库排除和优化查询提高 I/O 性能深入了解 Windows Azure SQL 数据库的性能、排除 Windows Azure SQL 数据库故障查找 SQL Azure 中的阻塞查询March Madness – SQL Azure – sys.dm_exec_query_stats

还要考虑在应用程序级别进行分析,例如,在使用实体框架或 Linq-to-SQL 时在实体框架中分析数据库活动查询分析 SQL Azure 中进行了说明。

对于高级监控,请考虑为 System Center 2012 部署Windows Azure SQL 数据库管理包

于 2013-07-29T14:17:33.713 回答