欢迎来到天天文库
浏览记录
ID:13080993
大小:66.00 KB
页数:5页
时间:2018-07-20
《索引和视图的区别》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、SQLServer索引和视图Ø索引1、什么是索引索引就是数据表中数据和相应的存储位置的列表,利用索引可以提高在表或视图中的查找数据的速度。2、索引分类数据库中索引主要分为两类:聚集索引和非聚集索引。SQLServer2005还提供了唯一索引、索引视图、全文索引、xml索引等等。聚集索引和非聚集索引是数据库引擎中索引的基本类型,是理解其他类型索引的基础。#聚集索引聚集索引是值表中数据行的物理存储顺序和索引的存储顺序完全相同。聚集索引根据索引顺序物理地重新排列了用户插入到表中的数据,因此,每个表只能创建一个聚集索引。聚集索引经常创建在表中经常被搜索到的列或按顺序访问的列上。在默认情
2、况下,主键约束自动创建聚集索引。#非聚集索引非聚集索引不改变表中数据列的物理存储位置,数据与索引分开存储,通过索引指向的地址与表中的数据发生关系。非聚集索引没有改变表中物理行的位置,索引可以在以下情况下使用非聚集索引:一、如果某个字段的数据唯一性比较高二、如果查询所得到的数据量比较少聚集索引和非聚集索引的区别:聚集索引非聚集索引每个表只允许创建一个聚集索引最多可以有249个非聚集索引物理的重排表中的数据以符合索引约束创建一个键值列表,键值指向数据在数据页中的位置用于经常查找数据的列用于从表中查找单个值的列#其他类型索引除了以上索引,还有以下类型索引:a、唯一索引:如果希望索引键
3、都不同,可以创建唯一索引。聚集索引和非聚集索引都可以是唯一索引。b、包含新列索引:索引列的最大数量是16个,索引列的字节总数的最高值是900。如果当多个列的字节总数大于900,切又想在这些劣种都包含索引是,可以使用包含性列索引c、视图索引:提供视图查询效率,可以视图的索引物理化,也就是说将结果集永久存储在索引中,可以创建视图索引。d、XML索引:是与xml数据关联的索引形式,是XML二进制blob的已拆分持久表示形式e、全文索引:一种特殊类型的基于标记的功能性功能,用于帮助在字符串中搜索赋值的词3、创建索引语法create[unique][clustered
4、nocluster
5、ed]indexindex_nameontable_name(column_name...)[withfillfactor=x]unique唯一索引clustered聚集索引noclustered非聚集索引fillfactor填充因子大小,范围在0-100直接,表示索引页填满的空间所占的百分比。示例if(exists(select*fromsys.indexeswherename='idx_stu_name'))dropindexstudent.idx_stu_namegocreateindexidx_stu_nameonstudent(name);--联合索引if(exist
6、s(select*fromsys.indexeswherename='idx_uqe_clu_stu_name_age'))dropindexstudent.idx_uqe_clu_stu_name_agegocreateuniqueclusteredindexidx_uqe_clu_stu_name_ageonstudent(name,age);if(exists(select*fromsys.indexeswherename='idx_cid'))dropindexstudent.idx_cidgoif(exists(select*fromsys.indexeswheren
7、ame='idx_cid'))dropindexstudent.idx_cidgo--非聚集索引createnonclusteredindexidx_cidonstudent(cid)withfillFactor=30;--填充因子--聚集索引if(exists(select*fromsys.indexeswherename='idx_sex'))dropindexstudent.idx_sexgocreateclusteredindexidx_sexonstudent(sex);--聚集索引if(exists(select*fromsys.indexeswherename='
8、idx_name'))dropindexstudent.idx_namegocreateuniqueindexidx_nameonstudent(name);4、适合的创建索引的列当数据库的某一列被频繁的用于数据库查询时,或者该列用于数据库进行排序时可以创建成索引5、不适合创建索引的列如果列中有几个不同的值,或者表中仅包含几行值,则不推荐为其创建索引。因为索引在搜索数据所花的时间比在表中逐行搜索话的时间更长。Ø视图1、什么是视图视图就是一个虚拟的数据表,该数据表中的数据记录是有一条查询语句的
此文档下载收益归作者所有