如何查看在Azure上托管的数据库上执行的查询历史记录(所有OR长期)?

use*_*743 5 indexing logging azure database-tuning azure-sql-database

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

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

目前,我必须多次刷新页面并记录每次刷新的所有查询.即使这样,我在这个艰难的过程之后获得的日志只反映了执行的一小部分查询.有没有选择查看较长时期的历史记录?

谢谢.

kie*_*wic 14

我发现以下查询对于查看 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
Run Code Online (Sandbox Code Playgroud)

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


Fer*_*eia 5

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中查询,疯狂三月- SQL Azure的- sys.dm_exec_query_stats.

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

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