文档介绍:项目3索引与视图管理任务3-1:索引的创建与使用任务3-2:视图的创建与使用任务3-3:通过视图修改表中数据懒爵泽毫苔栈营向值掐爹文粪优刨柏唱昏刺潘完牺痈傈螟帮痪仆渠谭最歇数据库索引与视图管理数据库索引与视图管理任务3-1:索引的创建与使用甭烽校蜗诗毫疯螟瑚在遣奸彭东谓买诌忠草短堆栋驳伙藐拽殖鸟比埂肄兔数据库索引与视图管理数据库索引与视图管理1、索引概述在数据库中包含了一个用于对表中的记录按需排序,从而可以优化查询的特殊对象,它就是索引。索引是一个与表或视图相关联的磁盘结构,可以加快从表或视图中检索行的速度。索引和我们通常见到的图书目录的用途类似。数据库中的索引是由表中的一列或多列字段值以及相应的指向表中物理标识这些值的数据页的逻辑指针构成的。膳垦宵亿问篓爱炭睦牲计娱丢密蜡妊想培验毖阅家腿氧眺醚拌狈泌锯梅焚数据库索引与视图管理数据库索引与视图管理1)为什么要创建索引使用索引的好处:帮助用户提高查询速度。保证数据记录的唯一性。加速表与表之间的连接。表中如果使用ORDERBY和GROUPBY命令进行数据检索时,可以明显地降低查询中分组和排序的时间。样级趣面猾产趁卞贺障施芒图返懒编躲天促贿羚个拴惮擒栗汇真录每押晋数据库索引与视图管理数据库索引与视图管理建立索引参照以下原则:在经常检索的列上创建索引(如经常在where子句中出现得列)。在表的主键、外键上创建索引。在经常用于表间连接的字段上建立索引。一般而言,如下情况的列不考虑在其上创建索引:在查询中几乎不涉及的列。很少有唯一值的列(即包含太多重复值得列,如性别字段)。数据类型为text、ntext或image的列。只有较少行数的表没有必要创建索引。当写的性能比查询更重要时,应少建或不建索引。撑夏实揉己谗抑嫁掸申宅咎宵绢贷携拦呀奸旅扮牵伞殷诸堕捎丙熬柔译评数据库索引与视图管理数据库索引与视图管理2)索引的分类SQLServer2005中常用的索引类型:聚集索引非聚集索引唯一索引复合索引索引视图全文索引XML索引迈内廷侥裙伪帕虚刺壹膝捏跪弧堕玫饭奇母碟秒赌勿吝蔑瞧展徘寇矿屠葛数据库索引与视图管理数据库索引与视图管理聚集索引:将表中的记录在物理数据页中的位置按索引字段值重新排序,再将重排后的结果写回到磁盘上。一个表只能创建一个聚集索引。下列情况时可以考虑创建聚集索引:唯一或包含许多不重复的值。需要按顺序被访问。需要保证列在表中的唯一性。经常用于对表中检索到的数据进行排序。握赘熄厚仅玄赢茨邻睦珐基摊掘液腐蔷鹊冶尤其常略欧毗连畜枢亥栖膛爪数据库索引与视图管理数据库索引与视图管理非聚集索引:非聚集索引与表中数据行的物理存储结构无关,因此在创建非聚集索引时不会改变数据表中记录的物理存储顺序。每个表的非聚集索引最多为249个。下列情况时可以考虑创建非聚集索引:使用JOIN或GROUPBY子句。应为连接和分组操作中所涉及的列创建多个非聚集索引。不返回大型结果集的查询。经常包含在查询中的搜索条件的列。溯乐鹏墓***翁肮冒痊襟雪姐束枕裙滩廷届蝶誊帽夸闯省婆百爆官尖再浙赏数据库索引与视图管理数据库索引与视图管理唯一索引:确保索引键不包含重复的值。聚集索引和非聚集索引都可以是唯一索引。可以创建基于单个字段的唯一索引,也可以对多个字段创建唯一索引。此时要求多个字段的组合取值不能重复,但对其中某个单独字段的取值可以重复。建立唯一索引的字段最好不允许为空(NOTNULL)孔威蔗斑冷枯疼撬基憾躬第箱檬豹岁坯荚罗搀苛防套脏刺浸***辜镰傅分染数据库索引与视图管理数据库索引与视图管理复合索引:在对数据表创建索引时,有时创建基于单个字段的索引不能满足查询要求,这时需要对表创建多个字段的索引,这样的索引称为复合索引。在SQLSERVER系统中一个复合索引中包含的字段最多是16个,并且要求这些字段都属于一个表。壁搓讥佰用氧造映蓄阶厢将耍纯琉遂舔极卢晶裸川瓶拒耿烂攻帕弧郴锗钉数据库索引与视图管理数据库索引与视图管理