SQL SERVER 2012数据库应用与开发教程 第七章 创建和使用索引_by liu.pptVIP

SQL SERVER 2012数据库应用与开发教程 第七章 创建和使用索引_by liu.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
当在一个包含数据的表上创建索引的时候,SQL Server会创建分布数据页来存放有关索引的两种统计信息:分布表和密度表。优化器利用这个页来判断该索引对某个特定查询是否有用。当表的数据改变之后,统计信息有可能是过时的,从而影响优化器追求最有工作的目标。因此,需要对索引统计信息进行更新。 索引统计信息的更新 其语法格式如下: UPDATE STATISTICS table_or_indexed_view_name [ { { index_or_statistics__name } | ( { index_or_statistics_name } [ ,...n ] ) } ] [ WITH [ [ FULLSCAN ] | SAMPLE number { PERCENT | ROWS } ] | RESAMPLE | update_stats_stream_option [ ,...n ] ] [ [ , ] [ ALL | COLUMNS | INDEX ] [ [ , ] NORECOMPUTE ] ] ; 参数说明如下。 table_or_indexed_view_name:要更新其统计信息的表或索引视图的名称。 index_or_statistics_name:要更新其统计信息的索引的名称,或要更新的统计信息的名称。 FULLSCAN:通过扫描表或索引视图中的所有行来计算统计信息。 SAMPLE number { PERCENT | ROWS }:当查询优化器更新统计信息时要使用的表或索引视图中近似的百分比或行数。 RESAMPLE:使用最近的采样速率更新每个统计信息。 ALL | COLUMNS | INDEX:指定 UPDATE STATISTICS 语句是否影响列统计信息、索引统计信息或所有现有统计信息。 NORECOMPUTE:指定不自动重新计算过期统计信息。 【例7-8】更新student数据库中stu_info表中全部索引的统计信息。 UPDATE STATISTICS stu_info 包含列索引 在 SQL Server 2012 中,可以通过将非键列添加到非聚集索引的叶级别来扩展非聚集索引的功能。通过包含非键列,可以创建覆盖更多查询的非聚集索引。 这是因为非键列具有下列优点: * 它们可以是不允许作为索引键列的数据类型。 * 在计算索引键列数或索引键大小时,数据库引擎不考虑它们。   * 带有包含性非键列的索引可以显著提高查询性能。   说明: 第一:只能是针对非聚集索引; 第二:比起复合索引是有性能上的提升的,因为索引的大小变小了; 【例7-1】使用CREATE INDEX语句为表stu_info创建一个非聚集索引,索引字段为name,索引名为idx_name。 CREATE INDEX idx_name ON stu_info ( name ) 例1:根据student表的学号和姓名列创建索引idx_xhxm。 Use xskc Create Index idx_xhxm on student(sno,sname) 例2:根据sc表的学号列创建唯一聚集索引。如果输入重复键值,将忽略该insert或update语句。 Create unique clustered Index idx_sno_unique on sc (sno) with ignore_dup_key IGNORE_DUP_KEY 的作用是在向表中插入数据的时候,如果遇到表中已经存在索引列的值,insert语句就会失败,并且回滚整个insert语句。 例3:根据sc表的学号创建索引,使用降序排列,填满率为60%。 Create Index idx_sno on sc(sno desc) with fillfacter = 60 向一个已满的索引页添加某个新行时,SQLServer 把大约一半的行移到新页中以便为新行腾出空间。这种重组称为页拆分。页拆分会降低性能并使表中的数据存储产生碎片。 创建索引时,可以指定一个填充因子,以便在索引的每个叶级页上留出额外的间隙和保留一定百分比的空间,供将来表的数据存储容量进行扩充和减少页拆分的可能性。 索引的分页 Index Pages Non-Leaf Level INSERT member (last name) VALUES lastname = ‘Jac

文档评论(0)

1243595614 + 关注
实名认证
文档贡献者

文档有任何问题,请私信留言,会第一时间解决。

版权声明书
用户编号:7043023136000000

1亿VIP精品文档

相关文档