- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
 - 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
 - 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
 
                        查看更多
                        
                    
                第5章 数据表的管理(二)
                    第5章 数据表的管理 数据库表管理 数据类型 数据表结构的创建 数据表结构的修改与删除 数据表内容的增加与修改 数据表的索引  五、索引 索引提供指针以指向存储在表中指定列的数据值,然后根据指定排序次序排列这些指针。 合理地利用索引,将大大提高数据库的检索速度和数据库的性能。 享受索引带来的好处是有代价的,一是带索引的表在数据库中会占据更多的空间,二是为了维护索引,对数据进行插入、修改、删除等操作的命令所花费的时间会更长些,因此,在设计和创建索引时,要确保对性能的提高程度大于在存储空间和处理资源方面所付出的代价。   索引是依赖数据表建立的,一个数据表的存储包括两个组成部分,一部分是用来存放数据的数据页,一个是用来存放索引的索引页。通常索引页比数据页的数据量要小得多,当进行数据查询时,SQL Server先去搜索索引页,从中找到所需数据指针,再通过指针从数据页中读取数据。  SQL Server 2005中的七种索引: 聚集索引 非聚集索引 唯一索引 包含性列索引 索引视图 全文索引 XML索引 1、聚集索引与非聚集索引 聚集索引(clustered)对表在物理数据页中的数据按列进行排序,然后再重新存储到磁盘上。表的数据行只能以一种排序方式存储在磁盘上,所以一个表只能有一个聚集索引。 非聚集索引(nonclustered)按照索引的字段排列记录,但是排列的结果并不会存储在表中,而是另外存储。非聚集索引具有完全独立于数据行的结构,使用非聚集索引不用将物理数据页中的数据按列排序。非聚集索引的叶节点存储了组成非聚集索引的关键字值和行定位器。  2、唯一索引 唯一索引(unique index)能确保索引无重复,即如果一个唯一索引,则这个字段的值就是唯一的,不同记录中的同一个字段的内容不能相同。无论是聚集索引还是非聚集索引都可以将其设为唯一索引。 唯一索引通常都建立在主键字段上,当数据库中创建了主键之后,数据库会自动将该主键创建成为唯一索引。设置成为唯一索引的字段通常也会将其设置为不能为空(NOT NULL)。即使设置可以为空,在表中,也只能有一条记录的该字段值为NULL,因为NULL值不能重复。 3、包含性列索引 在创建索引时对创建的索引有一定的限制,最多的字段数据不能超过16个,所有字段的长度之和不能超过900个字节。 	例如假设有一个文章表,文章标题字段类型为varchar(20),文章摘要字段类型为nvarchar(450)。由于nvarchar数据类型每个字符要占用2个字节,所以要创建文章标题和文章摘要两个字段的复合索引,这两列的索引将会超过900字节的大小限制,从而导致创建索引失败。 可以用“包含性列索引”来解决这类问题。所谓包含性列索引是在创建索引时,再将其他非索引字段包含到这个索引中,并起到索引的作用。 	例如可以为文章题创建一个索引,再将文章摘要包含到这个索引中,这种索引就是包含性列索引。包含性列索引只能是非聚集索引,在计算索引包含的字段数和索引字段的大小是,系统不考虑这些被包含的字段。  4、索引视图 视图是一个虚拟的数据表,可以像真实的数据表一样使用。视图的本身并不存储数据,数据都存储在视图所引用的数据表中。 如果为视图创建索引,将具体化视图,并将结果集永久存储在视图中,其存储方法与其他带聚集索引的数据表的存储方法完全相同。在创建视图的聚集索引后还可以为视图添加非聚集索引。  5、全文索引 全文索引是一种特殊类型的基于标记的功能性索引,由SQL Server中的全文引擎服务来创建和维护。 全文索引主要是用于在大量文本文字中搜索字符串,此时使用全文索引的效果比使用T-SQL中like语句效率要高很多。 全文索引与普通索引的区别: 普通索引是以B-Tree结构来维护,而全文索引一种特殊类型的基于标记的功能性索引,是由Microsoft SQL Server全文引擎服务创建和维护的。 全文索引的创建之前需要先创建全文目录。 6、XML索引 xml实例是作为二进制大型对象(BLOB)方式存储在XML字段中,这些XML实例最大数据量可以达到2GB,如果在没有索引的XML字段里查询数据,将会是个很耗时的操作。而在XML字段上创建的索引就是XML索引。 系统自动建立的索引 设置了主键字段,SQL Server就会为这个主键字段创建一个聚集索引; 创建了unique字段,系统则为该字段创建一个唯一索引。 例如,我们在前面创建SInfo表时已经设置SID为主键字段,现在我们在Microsoft SQL Server Management Studio的对象资源管理器中可以展开表StuInfo下面的【索引】,可以看到PK_开头的聚集索引。双击这个索引名,可以在相应在索引属性对话框中看到它是一个聚集索引和唯一索引。  (一)创建索引 
                
原创力文档
                        

文档评论(0)