假设我有一个名为AllUsers的视图,它返回系统中所有用户的数据结果集。让我们说基础查询有点复杂。
让我们说我需要能够通过ID获取用户。应该为单个用户返回所有属性,如为完整用户集返回的那样。
我假设SQL Server足够聪明,可以在将where子句应用于视图时优化性能,以便将查询优化为单个记录查询,而不是选择所有记录,然后基于过滤记录在where子句中提供的单个ID上。你能证实一下吗?
答案 0 :(得分:0)
您必须在Select语句的末尾插入Where子句。例如:
Select id, name, department
from AllUsers
Where id = 1
优化取决于AllUsers表是否具有使用id列内部定义的索引。
如果未在索引中定义Id列,SQL Server将尝试在整个表中扫描以寻找您的记录。