我正在对我的表("用户")使用视图("UsersActive").该视图只有一个过滤器,它检查DateTime Users.DeletedOn是否为NULL; 它基本上包含所有未删除的用户.
如果我现在对视图而不是表执行Linq查询,它们是否仍然使用表索引或者我是否需要为视图创建特殊索引?在我的理解中,View只不过是一个预定义的查询,应该就像我直接查询它一样:
SELECT*FROM Users WHERE DeletedON = NULL
我的假设是基础表的索引仍然会被正确使用吗?
大多数情况下,SQL Server查询优化器足够智能,可以使用基表上的索引.您可以通过查看查询计划来查看此信息.
如果您拥有SQL Server的企业版,则还可以使用索引视图.