0

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

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

select * from sales

并且查询有:

select * from getSales where customer = :id

SQL 服务器会做什么?

  1. 它会直接搜索具有提供的 id customer 的销售吗?
  2. 还是会在得到结果搜索所有销售并按ID客户过滤?

谢谢

4

1 回答 1

1

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

于 2013-10-11T09:03:59.597 回答