首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何防止SSMS在保存视图时重写代码?

如何防止SSMS在保存视图时重写代码?
EN

Database Administration用户
提问于 2012-10-31 17:38:10
回答 1查看 201关注 0票数 8

我正在创建一个视图,该视图使用带有类似于以下内容的WHERE子句的语句:

代码语言:javascript
运行
复制
WHERE
    (
        col1 IS NOT NULL
        OR
        col2 IS NOT NULL
    )
    AND
    NOT EXISTS (SELECT ...)

平均运行时间为10秒。但是,当我尝试将此查询保存为视图时,SQL Server (或客户端)“优化”查询以使用此结构,相反:

代码语言:javascript
运行
复制
WHERE
    (col1 IS NOT NULL AND NOT EXISTS (SELECT ...))
    OR
    (col2 IS NOT NULL AND NOT EXISTS (SELECT ...))

将查询速度减慢到6+分钟。是否有任何方法禁用此行为,以便视图完全使用我提供的SQL查询?

EN

回答 1

Database Administration用户

回答已采纳

发布于 2012-10-31 17:48:49

不要使用SSMS向导。

只需在一个新的查询窗口中键入CREATE VIEW dbo.Foo AS SELECT ...语句并执行它。

这将停止将查询语法重新安排为语义等效但执行更糟的替代方案。

票数 14
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/27970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档