- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Oracle视图中建立索引的注意事项
在视图上创建索引需要三个条件:一、视图必须绑定到架构。要做到这点,在?CREATE?VIEW?语句中,必须加上?WITH?SCHEMABINDING,如果是使用企业管理器,则在设计界面的空白处点击右键,属性,选中“绑定到架构”。二、索引必须是唯一索引。要做到这点,在?CREATE?INDEX?中必须指定?UNIQUE。三、索引必须是聚集索引。要做到这点,在?CREATE?INDEX?中必须指定?CLUSTERED。例:CREATE?VIEW?viewFoo?WITH?SCHEMABINDINGAS
在视图上创建聚集索引之前,该视图必须满足下列要求:?????????当执行?CREATE?VIEW?语句时,ANSI_NULLS?和?QUOTED_IDENTIFIER?选项必须设置为?ON。OBJECTPROPERTY?函数通过?ExecIsAnsiNullsOn?或?ExecIsQuotedIdentOn?属性为视图报告此信息。?????????为执行所有?CREATE?TABLE?语句以创建视图引用的表,ANSI_NULLS?选项必须设置为?ON。?????视图不能引用任何其它视图,只能引用基表。?????????视图引用的所有基表必须与视图位于同一个数据库中,并且所有者也与视图相同。?????????必须使用?SCHEMABINDING?选项创建视图。SCHEMABINDING?将视图绑定到基础基表的架构。?????????必须已使用?SCHEMABINDING?选项创建了视图中引用的用户定义的函数。?????????表和用户定义的函数必须由?2?部分的名称引用。不允许使用?1?部分、3?部分和?4?部分的名称。?????????视图中的表达式所引用的所有函数必须是确定性的。OBJECTPROPERTY?函数的?IsDeterministic?属性报告用户定义的函数是否是确定性的。有关更多信息,请参见确定性函数和非确定性函数。?????????视图中的?SELECT?语句不能包含下列?Transact-SQL?语法元素:?????选择列表不能使用?*?或?table_name.*?语法指定列。必须显式给出列名。?????????不能在多个视图列中指定用作简单表达式的表的列名。如果对列的所有(或只有一个例外)引用是复杂表达式的一部分或是函数的一个参数,则可多次引用该列。例如,下列选择列表是非法的:?????SELECT?ColumnA,?ColumnB,?ColumnA?????????下列选择列表是合法的:?????????SELECT?ColumnA,?COUNT(ColumnA),?ColumnA?+?Column?B?AS?AddColAColB?FROM?T1?????????SELECT?SUM(ColumnA),?ColumnA?%?ColumnB?AS?ModuloColAColB,?COUNT_BIG(*)?FROM?T1?GROUP?BY?ColumnA?????????派生表。???行集函数。???UNION?运算符。???子查询。??外联接或自联接。????TOP?子句。???ORDER?BY?子句。??DISTINCT?关键字。???COUNT(*)(允许?COUNT_BIG(*)。)??AVG、MAX、MIN、STDEV、STDEVP、VAR?或?VARP?聚合函数。如果在引用索引视图的查询中指定?AVG、MAX、MIN、STDEV、STDEVP、VAR?或?VARP,如果视图选择列表包含以下替换函数,则优化器会经常计算需要的结果。?复杂聚合函数?替代简单聚合函数?????AVG(X)?????SUM(X),?COUNT_BIG(X)?????STDEV(X)?????SUM(X),?COUNT_BIG(X),?SUM(X**2)?????STDEVP(X)?????SUM(X),?COUNT_BIG(X),?SUM(X**2)?????VAR(X)?????SUM(X),?COUNT_BIG(X),?SUM(X**2)?????VARP(X)?????SUM(X),?COUNT_BIG(X),?SUM(X**2)?????例如,索引视图选择列表不能包含表达式?AVG(SomeColumn)。如果视图选择列表包含表达式?SUM(SomeColumn)?和?COUNT_BIG(SomeColumn),则?SQL?Server?可为引用视图并指定?AVG(SomeColumn)?的查询计算平均数。?????引用可为空的表达式的?SUM?函数。?????
文档评论(0)