我正在创建一个视图,该视图使用带有类似于以下内容的WHERE
子句的语句:
WHERE
(
col1 IS NOT NULL
OR
col2 IS NOT NULL
)
AND
NOT EXISTS (SELECT ...)
平均运行时间为10秒。但是,当我尝试将此查询保存为视图时,SQL Server (或客户端)“优化”查询以使用此结构,相反:
WHERE
(col1 IS NOT NULL AND NOT EXISTS (SELECT ...))
OR
(col2 IS NOT NULL AND NOT EXISTS (SELECT ...))
将查询速度减慢到6+分钟。是否有任何方法禁用此行为,以便视图完全使用我提供的SQL查询?
发布于 2012-10-31 09:48:49
不要使用SSMS向导。
只需在一个新的查询窗口中键入CREATE VIEW dbo.Foo AS SELECT ...
语句并执行它。
这将停止将查询语法重新安排为语义等效但执行更糟的替代方案。
https://dba.stackexchange.com/questions/27970
复制相似问题