最大限度地减少大型数据中SQL查询的时间消耗
在这里,我正在Azure SQL中运行以下查询,使用BI工具从大量卷中获取数据。BI工具显示以下错误最大限度地减少大型数据中SQL查询的时间消耗,sql,sql-server,azure,Sql,Sql Server,Azure,在这里,我正在Azure SQL中运行以下查询,使用BI工具从大量卷中获取数据。BI工具显示以下错误查询超出了以下查询允许的最大执行时间10秒: SELECT M + ' ' +Convert(varchar,CY) TimeSpan, ISNULL(SUM([Australia]), 0) AS [Australia], ISNULL(SUM([India]), 0) AS [India], ISNULL(SUM([America]), 0) AS [
查询超出了以下查询允许的最大执行时间10秒:
SELECT M + ' ' +Convert(varchar,CY) TimeSpan,
ISNULL(SUM([Australia]), 0) AS [Australia],
ISNULL(SUM([India]), 0) AS [India],
ISNULL(SUM([America]), 0) AS [America]
FROM (
select Distinct DeviceID,RegionName, Month(LastCommunicated) CM, Year(LastCommunicated) CY, 1 Cnt
,LEFT(DATENAME(MONTH,LastCommunicated),3) M
from Region
WHERE LastCommunicated BETWEEN DATEADD(year,-1,GETDATE()) and dateadd(day,datediff(day,0,GETDATE()),0)
) a
PIVOT (Sum(Cnt) FOR RegionName IN ([Australia],[India],[America])) AS Result
GROUP BY CY,CM,M + ' ' +Convert(varchar,CY)
ORDER BY CY,CM
除了在BI中增加执行时间外,是否还有其他方法可以解决此问题?我们需要查看查询的执行计划。子查询表“a”是否会更好地按月份分组,而不是按不同的左边(DATENAME(Month,LastCommunicationed),3)通信次数与通信长度或总分钟数之间的差异可能对您很重要,这可能是您选择“a”的原因以这种方式或另一种方式进行子查询。