Sql server 视图中的SQL Server引擎优化
我在同一个SQLServer实例中有两个数据库DB1和DB2。这是两个数据库的结构 DB1 表a:Sql server 视图中的SQL Server引擎优化,sql-server,Sql Server,我在同一个SQLServer实例中有两个数据库DB1和DB2。这是两个数据库的结构 DB1 表a: [key] Id int [required] Name nvarchar(50) DB2 表B: [key] Id int [required] Total real [required] IdTableA int // Foreign key 在DB1中,我还有一个视图: 表视图: select * from DB2
[key] Id int
[required] Name nvarchar(50)
DB2
表B:
[key] Id int
[required] Total real
[required] IdTableA int // Foreign key
在DB1中,我还有一个视图:
表视图:
select * from DB2.dbo.TableB
现在我运行以下查询
select Total
from DB1.TableBView
where Total > 100
我想知道SQL引擎是否:
因此,当您运行
视图
时,优化器将转到视图
定义并获取该查询计划
。然后执行查询计划
,然后执行WHERE
子句。所以,要回答问题,将选择所有行,然后应用过滤器。现在,所有这些都可能发生变化,这取决于您是否将视图物化(在视图上放置索引),然后所有行都不会返回。查询将被过滤,然后只处理总数大于100的行。似乎与此重复:或此:@KHeaney感谢链接!它们非常有用。