扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:ChinaITLab 来源:天新网 2008年4月30日
关键字: 数据库 Mssql SQL SQL Server
在本页阅读全文(共3页)
查询选择列表中的所有表达式都必须源自于视图选择列表或源自于不包括在视图定义中的表。 查询搜索条件谓词必须是视图定义中搜索条件谓词的超集。视图搜索谓词中的每个合取项都必须以同样的形式出现在查询搜索谓词中。
查询搜索条件谓词中的所有列(属于视图定义中的表)都必须出现在下列一项或多项中:
● 视图定义中的同一个谓词。
● GROUP BY 列表。
● 视图选择列表(若没有 GROUP BY 列表)。
使用 NOEXPAND 选项
|
使用 EXPAND VIEWS 选项
另外,用户可以在查询结束时通过使用 EXPAND VIEWS 选项,明确地将索引视图排除在考虑之外。例如:
|
如果使用该选项,查询优化器在评估低成本的方法(该方法涉及查询中引用的列)时将忽略所有视图索引。
为数据库系统找到适当的索引集是相当复杂的。尽管在设计普通索引时要考虑许多可能性,但将索引视图添加到架构会极大地增加设计和潜在结果的复杂性。例如,索引视图可用于:
● 查询中所引用表的任何子集。
● 查询中条件的任何子集(属于表的上述子集)
● 分组列。
● 聚合函数,如 SUM。
如果存在许多索引视图可供查询优化器考虑用于特定查询,查询优化成本会显著增加。查询优化器可能考虑为查询中表的任意子集定义的所有索引视图。拒绝每一个视图之前,必须对它进行语法分析,然后研究其是否可能成为潜在的替换体。这可能需要一些时间,尤其是在有数百个此类的视图用于给定的查询时。
视图必须符合几项要求,您才能为其创建唯一的群集索引。在设计阶段,请考虑以下要求:
● 索引视图无需包含要供优化器使用的查询中引用的所有表。
● 必须先为视图创建唯一群集索引,然后才可以创建其它索引。
创建基表、视图和索引以及修改基表和视图中的数据时,必须正确设置某些 SET 选项。另外,如果这些 SET 选项正确,查询优化器将不考虑索引视图。
视图必须使用架构绑定创建,视图中引用的任何用户定义的函数必须使用 SCHEMABINDING 选项创建。另外,还要求有一定的磁盘空间来存放由索引视图定义的数据。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。