欢迎来到天天文库
浏览记录
ID:20170646
大小:700.00 KB
页数:54页
时间:2018-10-10
《第07章 索引和视图》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第07章索引和视图内容提要:在SQLServer2005中,有效的索引是影响数据库性能的因素中最重要的一项,一个完善、良好的索引可以显著提高数据库的性能。视图是从一个或几个基表(或视图)导出的虚拟表。视图中行和列数据来源于由定义视图的查询所引用的表,并且在引用视图时动态生成。统计信息是查询优化器进行查询优化的依据,及时更新统计信息对优化的效果至关重要。实现对统计信息的创建及更新功能有自动和手动两种方式。第07章索引和视图7.1规划索引7.2创建索引7.3维护索引7.4统计信息及应用7.5视图的定义7.6视图的修改7.7通过视图修改数据7.8小结7.1规划索引7.1.1索引的用途概念:SQLS
2、erver的索引是一个单独的、物理的数据结构,是为了加速对表中数据行的检索而创建的一种分散的存储结构。索引是针对一个表而建立的,每个索引页面中的行都含有逻辑指针,指向数据库表中的物理位置,以便加速检索物理数据。索引包含从表或视图中一个或多个列生成的键,以及映射到指定数据的存储位置的指针。当SQLServer2005执行查询时,查询优化器会对可用的数据检索方法的成本进行估计,从中选用最有效的查询计划。7.1规划索引7.1.1索引的用途在数据库中使用索引的优点如下:加速数据检索:索引能够提供以一列或多列的值为基础迅速查找或存储表的行的能力。加速连接、排序和分组:连接、排序和分组都需要数据检索,在
3、建立好索引后,其数据检索速度会加快,从而加速连接等操作。优化查询:在执行查询时,都会先对查询进行优化。查询优化器是依赖于索引起作用的,用于决定到底哪些索引可以使该查询最快。强制实施行的唯一性:通过给列创建唯一索引,可以保证表中的数据不重复。7.1规划索引7.1.2索引的类型SQLServer2005中提供的索引类型如表7.1所示,其中常用的有聚集索引、非聚集索引和唯一索引3种类型。聚集索引和非聚集索引是按照索引的存储结构划分的,而唯一索引和非唯一索引是按照索引取值划分的。(1)聚集索引。在聚集索引中,索引键值的顺序与数据表中记录的物理顺序相同,由于记录行只能按一个物理顺序存储,因此每个表只能
4、有一个聚集索引。7.1规划索引7.1.2索引的类型(2)非聚集索引。非聚集索引具有独立于数据行的结构,非聚集索引的每个键值项都有指向包含该键值的数据行的指针。每个表最多可以创建249个非聚集索引,用以满足多种查询的需要。(3)唯一索引。唯一索引可以确保所有数据行中任意两行的索引列不包括NULL在内的重复值。创建主键约束时,如果表上还没有创建聚集索引,则SQLServer将自动在创建主键约束的列或组合上创建聚集唯一索引,主键列不允许为空值。7.1规划索引7.1.3设计索引的基本原则在数据库表上设计索引时,应考虑以下常用的基本原则:一个表创建大量索引,会影响INSERT、UPDATE和DELET
5、E语句的性能。若表的数据量大,对表数据的更新较少而查询较多,可以创建多个索引来提高性能。当视图包含聚合、表连接或两者的组合时,在视图上创建索引可以显著的提升性能。可以对唯一列或非空列创建聚集索引。每个表只能创建一个聚集索引。在包含大量重复值的列上创建索引,查询的时间会较长。若查询语句中存在计算列,则可考虑对计算列值创建索引。索引大小的限制,最大键列数为16,最大索引键大小为900字节。在实际创建时一定要考虑此限制。7.2创建索引SQLServer2005中创建索引的方法包括:使用SQLServerManagementStudio创建索利用CREATEINDEX语句创建索引在CREATETAB
6、LE或ALTERTABLE语句为定义或修改表结构时自动创建索引。创建索引之前,应该考虑到权限问题,只有表的拥有者才能在表上创建索引。在创建聚集索引时还要考虑到数据库剩余空间的问题,创建聚集索引时所需要的可用空间是数据库表中数据量的120%。如果空间不足会降低性能,甚至导致索引操作失败。7.2创建索引7.2.1利用SQLServerManagementStudio创建索引使用SQLServerManagementStudio创建独立于约束的聚集索引的操作步骤如下:(1)展开“资源管理器”
7、“数据库”
8、teaching数据库
9、“表”。(2)选择表并展开,右击“索引”项,在快捷菜单中选择“新建索引
10、”命令。(3)在弹出的“新建索引”对话框中,选择“常规”选项卡,输入所引名称C_student如图7.1所示。设置下列各项的值。表名、索引名称、索引类型、唯一7.2创建索引7.2.1利用SQLServerManagementStudio创建索引使用SQLServerManagementStudio创建独立于约束的聚集索引的操作步骤如下:(1)展开“资源管理器”
11、“数据库”
12、teaching数据库
13、“表”。(2
此文档下载收益归作者所有