【发布时间】:2016-10-18 16:10:33
【问题描述】:
我在 Azure SQL 服务器的可靠性方面遇到了一些问题。
有时会使用如下子查询进行复杂查询:
SELECT DISTINCT [DeviceName] ,name ,data.[Addr] ,[Signal] FROM (SELECT [DeviceName] ,[Signal] ,MAX([Signal]) OVER (PARTITION BY [Addr]) AS 'MaxSignal',[Timestamp] ,[Addr] ,[PartitionId] ,[EventEnqueuedUtcTime] FROM [dbo].[mytable] WHERE CAST([Timestamp] AS DATETIME) > DATEADD(HOUR,+2,(DATEADD(MINUTE, -10, GETDATE()))) ) data LEFT JOIN mytable ON [dbo].[myreftable].[Addr] = data.[Addr] WHERE [Signal] = [MaxSignal];
就像我假设的那样,几乎在瞬间完成,其他时候只需执行SELECT COUNT(*) FROM mytable
花费超过 30 分钟,并显示如下 DTU 使用情况图表:
有人知道这个问题的任何解决方案吗?是我做错了什么吗?还是 Azure 根本不存在?
【问题讨论】: