【发布时间】:2020-04-06 18:18:57
【问题描述】:
我正在设置一些 SQL 视图以用作 Power BI 数据源。但是,其中一个查询经常需要很长时间才能运行,我想弄清楚解决这个问题的最佳方法是什么。我在雇主的财务部门工作,所以 SQL 查询调优并不是我每天都在做的事情,但我正在努力学习。
执行计划在这里:
https://www.brentozar.com/pastetheplan/?id=BJGHe1W0H
我可以看到执行计划要求我添加一些索引,但我不确定是否应该这样做。我已经读过不要盲目地遵循 SQL 提示,因为它可能会导致其他问题
查询是:
select ansapbicalls.*
from ansapbicalls
inner join
ANSAPBIStatus
on ansapbicalls.[Call Status]=ansapbistatus.[Status ID]
inner join ansapbifault on ansapbicalls.Fault=ANSAPBIFault.[Fault ID]
where ANSAPBIStatus.[Status Type]='Operations' and ANSAPBIFault.[Job Type]='RR'
而缺少索引的警告是:
Missing Index (Impact 39.0531):
CREATE NONCLUSTERED INDEX [<Name of Missing Index, sysname,>]
ON [dbo].[MXMSERVCALLAUDIT] ([TYPE],[DATAAREAID]) INCLUDE ([JOBID],[RECID])
Missing Index (Impact 51.6627):
CREATE NONCLUSTERED INDEX [<Name of Missing Index, sysname,>]
ON [dbo].[MXMSERVCALLAUDIT] ([DATAAREAID],[RECID]) INCLUDE ([JOBID],[USERID],[DATE])
【问题讨论】:
-
您没有发布实际的表格(甚至是查询)。执行计划提到了任何地方都没有包含的表和列,因此无法知道是否需要它们。
标签: sql sql-server performance sql-server-2012