Use ANALYTICS
Go
SELECT NWPFFS AS HUB,
LCRGN AS REG,
LCDST AS DIST,
ILLCN AS LOC,
LCNAM AS [LOC NAME],
LXLTYP AS LOCTYPE,
IXPBSN AS B,
IXPGRP AS G,
IXPDPT AS D,
ITITMN AS ITEM,
ITMFGN AS MFG#,
ITDSC1 AS DESC1,
ITDSC2 AS DESC2,
ITINVM AS [STK CD],
ITVND AS VEND#,
ITHGT AS VENDOR,
ILOHNQ AS [ON HAND],
ILCMTP AS COMPURCH,
ILCMTC AS COMSALE,
ILYSLQ AS [SLS YTD QTY],
ILLYSQ AS [SLS LY QTY],
ILINVV AS [INV VAL]
FROM (dbo.Item_Location_Master
INNER JOIN dbo.Item_Master
ON ILITMN=ITITMN)
INNER JOIN dbo.Location_Master
ON ILLCN = LCLCN
WHERE ((LXLTYP='R') OR (LXLTYP='T'))
AND ((ITBOMT <> 'T') AND (ITBOMT <> 'S'))
AND ((ILOHNQ<>0) OR (ILCMTP<>0))
AND (IXPBSN <> 9)
AND ((ILITMN<>21542) OR (ILITMN<>21750))
AND (NWPFFS<>9900)
答案 0 :(得分:1)
您可以做的最好的事情是在LXLTYP和其他一些字段上提供索引。 如何为我们提供更多信息,如表格的当前索引等?那些列名真的令人困惑。
这是一篇关于SQLTeam.com索引的好文章:http://www.sqlteam.com/article/sql-server-indexes-the-basics
答案 1 :(得分:0)
检查你的表索引,如果你没有任何索引,现在是了解它们的好时机。
答案 2 :(得分:0)
我能提供的唯一建议是确保您需要索引,并可能考虑创建两个表的持久非规范化版本。
您可以在SQL Server中使用索引视图或使用所需数据加载的表来执行此操作。
如果您提供更多信息(执行计划将是一个好的起点),我们可以提供更详细的帮助。
答案 3 :(得分:0)
如果没有在表格上看到查询计划或索引,我就无法进行任何具体的诊断。但是,这里有一些建议:
检查查询计划以查看正在花费时间的操作。如果计划错了,可能会有99%的时间进行一次操作。
将OR转换为s-argable子句。看看这是否会改变查询计划。
将索引放在联接中使用的列上。看看这是否会改变查询计划。
检查表格的统计信息是否是最新的。虽然这不应该在SQL Server上真正发生,但如果统计信息过时,则优化器可以选择次优计划。