子选择查询是不是基于它之外的 WHERE 子句进行了优化? [关闭]

Posted

技术标签:

【中文标题】子选择查询是不是基于它之外的 WHERE 子句进行了优化? [关闭]【英文标题】:Is subselect query optimized based on WHERE clause outside of it? [closed]子选择查询是否基于它之外的 WHERE 子句进行了优化? [关闭] 【发布时间】:2012-01-13 06:20:20 【问题描述】:

SQL Server 是否使用其外部 WHERE 子句中的过滤器来优化子选择?

举个例子:

SELECT * FROM BIGTABLE // 耗时 10 秒

SELECT * FROM (SELECT * FROM BIGASSTABLE) a WHERE column1 = 2 //small subset 耗时 2 秒

我的测试表明确实如此......

【问题讨论】:

google.com.au/… 【参考方案1】:

是的,优化器默认对查询进行规范化,这将打开您的括号并简化查询

【讨论】:

以上是关于子选择查询是不是基于它之外的 WHERE 子句进行了优化? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Oracle 查询优化器是不是将*** where 子句应用于子查询或视图?

where条件放在子SQL语句中是否查询速度更快?

在 WHERE 子句中重用选择表达式的子查询

SQL 选择除最近日期之外的所有内容

WHERE 子句中的 SQL 查询子选择优化 (SQL Server)

用户为 where in 子句提供的子查询是不是存在注入攻击?