数据库原理与SQL Server教程第9章 索引—提高数据检索速度.ppt

数据库原理与SQL Server教程第9章 索引—提高数据检索速度.ppt

  1. 1、本文档共48页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 9.3.2 使用SQL语言创建索引 在使用FILLFACTOR选项时,考虑以下事实和准则: (1)填充因素的值从1%到100%。 (2)默认的填充因素值为0。该值将页级索引页填充为100%,并且在非页级索引页上为最大的索引条目留下了空间。不能明确指定填充因素=0。只有不会出现INSERT或UPDATE语句时(例如对只读表),才可以使用FILLFACTOR 100。如果FILLFACTOR为100,SQL Server将创建叶级页100%填满的索引。如果在创建FILLFACTOR为100%的索引之后执行INSERT或UPDATE,会对每次INSERT操作以及有可能每次 UPDATE操作进行页拆分。 (3)通过使用sp_configure系统存储过程,可以在服务器级别改变默认的填充因素值。 (4)sysindexes系统表存储最后使用的填充因素值,并带有其他索引的信息。 (5)填充因素值以百分比指定。该百分比决定了叶级如何被填充。例如,填充因素为65%将叶级页填满65%,为新行保留35%的自由空间,行的大小会影响行如何填充或以指定的填充因素比例来填充。 (6)在将插入行的表上使用FILLFACTOR选项,或在簇索引关键字值经常被修改时使用该选项。 * 9.3.2 使用SQL语言创建索引 6.PAD_INDEX选项 PAD_INDEX选项指定填充非叶级索引页的比例。只有在指定FILLFACTOR时才能使用PAD_INDEX选项。因为PAD_INDEX比例值由FILLFACTOR选项指定的比例值决定。 以下示例在DsCrmDB数据库Order表的OrderId列上创建OrderId_ind索引。通过指定带有FILLFACTOR选项的PAD_INDEX选项,SQL Server创建70%满的叶级页。但是,如果不使用PAD_INDEX选项,叶级页为70%满,而非叶级页几乎为全满。 USE DsCrmDB --如果已存在OrderId_ind索引,删除原有索引 IF EXISTS (SELECT name FROM sysindexes WHERE name = OrderId_ind) DROP INDEX Orders.OrderId_ind GO USE DsCrmDB --以70%的填充因素值创建OrderId_ind索引 CREATE INDEX OrderId_ind ON [Order] (OrderId) WITH PAD_INDEX, FILLFACTOR = 70 GO * 9.3.2 使用SQL语言创建索引 7.DROP_EXISTING 指定应除去并重建已命名的先前存在的聚集索引或非聚集索引。指定的索引名必须与现有的索引名相同。因为非聚集索引包含聚集键,所以在除去聚集索引时,必须重建非聚集索引。如果重建聚集索引,则必须重建非聚集索引,以便使用新的键集。 为已经具有非聚集索引的表重建聚集索引时(使用相同或不同的键集),DROP_EXISTING子句可以提高性能。 DROP_EXISTING子句代替了先对旧的聚集索引执行DROP INDEX语句,然后再对新的聚集索引执行CREATE INDEX语句的过程。非聚集索引只需重建一次,而且还只是在键不同的情况下才需要。 提示:如果健没有改变(提供的索引名和列与原索引相同),则DROP_EXISTING子句不会重新对数据进行排序。在必须压缩索引时,这样做会很有用。并且无法使用DROP_EXISTING子句将聚集索引转换成非聚集索引;不过,可以将惟一聚集索引更改为非惟一索引,反之亦然。 * 9.3.2 使用SQL语言创建索引 8.STATISTICS_NORECOMPUTE 指定过期的索引统计不会自动重新计算。若要恢复自动更新统计,可执行没有NORECOMPUTE子句的UPDATE_STATISTICS。 如果禁用分布统计的自动重新计算,可能会妨碍SQL Server查询优化器为涉及该表的查询选取最佳执行计划。 9.SORT_IN_TEMPDB 指定用于生成索引的中间排序结果将存储在tempdb数据库中。如果tempdb与用户数据库不在同一磁盘集,则此选项可能减少创建索引所需的时间,但会增加创建索引时使用的磁盘空间。 * 9.4 查看和删除索引 9.4.1 使用SQL Server Management Studio查看和删除索引 9.4.2 使用SQL语句查看和删除索引 * 9.4.1 使用SQL Server Management St

您可能关注的文档

文档评论(0)

autohhh + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档