SQL Server 何时计算视图中的 where 子句



我有一个视图,其中包含一个可以返回大量数据的查询。然后,在我的 Delphi 应用程序中,我使用 WHERE 子句调用此视图来过滤我想要的结果。

所以我的问题是:SQL服务器什么时候会评估这个where子句?我的意思是,如果我有一个名为 getSales 的下一个视图(这只是一个例子(:

select * from sales

并且查询具有:

select * from getSales where customer = :id

SQL 服务器将做什么?

  1. 它是否会直接搜索具有提供的 ID 客户的销售?
  2. 还是会在获得结果搜索所有销售并按ID客户进行过滤?

谢谢的

它将使用任何可用的适当索引将 where 子句应用于基本数据 - 即,一旦客户 ID 上有索引,它将是有效的,并直接搜索具有客户 ID 的销售。 如果没有索引,它可能会执行表扫描。

最新更新