我在视图上有一个使用多个联接的 SQL 查询,该查询偶尔运行得非常慢 - 比正常情况慢很多,使得查询几乎无法使用。
我将查询复制到视图之外并进行了实验,并在https://dba.stackexchange.com/a/60180/52607找到了解决方案 - 如果我添加
OPTION (MERGE JOIN, HASH JOIN)
到查询结束时,它的运行速度快了约 6 倍。
我现在尝试使选项适应原始视图,但 SQL Server/SSMS 告诉我
Incorrect syntax near the keyword 'OPTION'.
如何将此选项添加到视图中,以便视图的结果查询同样快?
(将选项添加到视图上的查询并没有带来任何加速。看起来像这样:
select * from vMyView
where SomeDate >= CONVERT(Datetime, '2017.09.20')
OPTION (MERGE JOIN, HASH JOIN)
我想我必须直接为 vMyView 使用此选项 - 如果可能的话。)
您可以在视图的连接中添加本地提示
select X, Y from tab1 inner merge JOIN tab1 on tab1.id = tab2.id