【发布时间】:2015-06-08 06:37:18
【问题描述】:
我被另一个程序员留下的这个查询卡住了。我找了又找,但还是没有头绪。如果有人能指导我,我将不胜感激。
查询说
SELECT ...
FROM dbo.DPAGODOCUMENTO AS T2 (INDEX=PK_DPAGODOCUMENTO)
RIGHT OUTER JOIN dbo.MDOCUMENTO ... WHERE ...
其中PK_DPAGODOCUMENTO 是桌子上的CONSTRAINT [PK_DPAGODOCUMENTO] PRIMARY KEY CLUSTERED [DPAGODOCUMENTO]。
(INDEX=PK_DPAGODOCUMENTO) 的真正含义是什么,它有什么作用?我们使用的是 MSSQL 2005。
【问题讨论】:
-
这是一个索引提示。通常是个坏主意(见这里brentozar.com/archive/2013/10/index-hints-helpful-or-harmful)。看起来它在
INDEX=中不太常见。现在告诉我们,您试图用这个查询解决的实际问题是什么?你只是想理解它吗? -
非常感谢您的回答,我之前发现了一些关于提示的信息,但在文档中使用了“WITH ...”这个词,这种情况没有,实际上显示了不使用它的错误;我们正在替换一个在过程中调用此查询的程序,是一个旧程序,如果我评论查询优化器为它自己运行的提示,对吗?我会得到同样的结果吗?再次感谢!
-
如下所述,删除提示不会影响结果。它可能会改变性能(更快或更慢或根本没有变化)。
标签: sql-server tsql sql-server-2005