Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 找出在SQL Azure中增加DTU的查询_Sql Server_Performance_Azure_Azure Sql Database_Database Performance - Fatal编程技术网

Sql server 找出在SQL Azure中增加DTU的查询

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: 找出

我正在为我的应用程序使用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:完全相同,但不需要启用查询存储