查看查询性能方案

时间:2018-03-13 19:39:15

标签: sql sql-server

假设我有一个名为AllUsers的视图,它返回系统中所有用户的数据结果集。让我们说基础查询有点复杂。

让我们说我需要能够通过ID获取用户。应该为单个用户返回所有属性,如为完整用户集返回的那样。

我假设SQL Server足够聪明,可以在将where子句应用于视图时优化性能,以便将查询优化为单个记录查询,而不是选择所有记录,然后基于过滤记录在where子句中提供的单个ID上。你能证实一下吗?

1 个答案:

答案 0 :(得分:0)

您必须在Select语句的末尾插入Where子句。例如:

Select id, name, department
from AllUsers
Where id = 1

优化取决于AllUsers表是否具有使用id列内部定义的索引。

here

如果未在索引中定义Id列,SQL Server将尝试在整个表中扫描以寻找您的记录。