Sql server 找出在SQL Azure中增加DTU的查询
我正在为我的应用程序使用SQL Azure SQL Server。我的应用程序所在的DB层直到最近都工作得很好,平均DTU的使用也在控制之中。但在下班后的高峰时段,DTU会达到100%一致的峰值。升级到下一层是一种选择,但首先我想弄清楚是哪个查询导致了这种情况。在Azure中,哪一个查询使DTU跃升到100%,这是可能的吗?简单地说,DTU是CPU、IO和内存的混合体,您将根据您的服务层获得。如果有一个列显示查询使用的DTU与总DTU相比有多少,那将非常好 我将分两步处理这个问题 步骤1:Sql server 找出在SQL Azure中增加DTU的查询,sql-server,performance,azure,azure-sql-database,database-performance,Sql Server,Performance,Azure,Azure Sql Database,Database Performance,我正在为我的应用程序使用SQL Azure SQL Server。我的应用程序所在的DB层直到最近都工作得很好,平均DTU的使用也在控制之中。但在下班后的高峰时段,DTU会达到100%一致的峰值。升级到下一层是一种选择,但首先我想弄清楚是哪个查询导致了这种情况。在Azure中,哪一个查询使DTU跃升到100%,这是可能的吗?简单地说,DTU是CPU、IO和内存的混合体,您将根据您的服务层获得。如果有一个列显示查询使用的DTU与总DTU相比有多少,那将非常好 我将分两步处理这个问题 步骤1: 找出
找出哪个指标始终超过90% --此DMV每15秒存储一次DTU使用情况,最长可达14天
SELECT
AVG(avg_cpu_percent) AS 'Average CPU Utilization In Percent',
MAX(avg_cpu_percent) AS 'Maximum CPU Utilization In Percent',
AVG(avg_data_io_percent) AS 'Average Data IO In Percent',
MAX(avg_data_io_percent) AS 'Maximum Data IO In Percent',
AVG(avg_log_write_percent) AS 'Average Log Write Utilization In Percent',
MAX(avg_log_write_percent) AS 'Maximum Log Write Utilization In Percent',
AVG(avg_memory_usage_percent) AS 'Average Memory Usage In Percent',
MAX(avg_memory_usage_percent) AS 'Maximum Memory Usage In Percent'
FROM sys.dm_db_resource_stats;
第二步:如果您看到上述指标中的任何一项始终超过90%,您可以调整这些查询 例如,如果cpu超过90%,您可以开始跟踪cpu使用率高的查询并对其进行调优 从20171701起更新:
SQLAzure引入了查询性能洞察,该洞察显示了查询使用的DTU。您必须启用Querystore才能使其工作
正如上面的屏幕截图所示,您可以看到每个查询的确切DTU使用情况如何找出哪个查询占用了超过90%的CPU?谢谢。可以提取此数据的时间段是多少。例如,在监测DTU时,如果我看到3小时前出现峰值。运行此查询对我有帮助吗?@user2561997:如前所述,DMV存储14天的数据此方法与@CtrlDot:完全相同,但不需要启用查询存储