《理学院数据库原理上机实验三.doc》由会员分享,可在线阅读,更多相关《理学院数据库原理上机实验三.doc(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、实验三:索引实验内容:1. 通过企业管理器创建索引在“学生表”学号列上创建名为“PK_学生表”的具有唯一值的聚集索引,文件组为PRIMARY。 2. 通过企业管理器删除索引删除在“学生表”学号列上创建的“PK_学生表”索引 附录:索引可以利用索引快速访问数据库表中的特定信息。索引是对数据库表中一个或多个列(例如,employee 表的姓氏 (lname) 列)的值进行排序的结构。如果想按特定职员的姓来查找他或她,则与在表中搜索所有的行相比,索引有助于更快地获取信息。索引提供指针以指向存储在表中指定列的数据值,然后根据指定的排序次序排列这些指针。数据库使用索引的方式与使用书的目录很相似:通过搜索
2、索引找到特定的值,然后跟随指针到达包含该值的行。在数据库关系图中,可以为选定的表创建、编辑或删除索引/键属性页中的每个索引类型。当保存附加在此索引上的表或包含此表的数据库关系图时,索引同时被保存。通常情况下,只有当经常查询索引列中的数据时,才需要在表上创建索引。索引将占用磁盘空间,并且降低添加、删除和更新行的速度。不过在多数情况下,索引所带来的数据检索速度的优势大大超过它的不足之处。然而,如果应用程序非常频繁地更新数据,或磁盘空间有限,那么最好限制索引的数量。索引列可基于数据库表中的单列或多列创建索引。当某些行中的某一列具有相同的值时,多列索引能区分开这些行。如果经常在同时搜索两列或多列或按两
3、列或多列排序时,索引也很有帮助。例如,如果经常在同一查询中为姓和名两列设置准则,那么在这两列上创建多列索引将很有意义。确定索引的有效性: 检查查询中的 WHERE 和 JOIN 子句。在任一子句中包括的每一列都是索引可以选择的对象。试验新的索引,检查它对运行查询性能的影响。考虑表中已创建的索引数量。最好不要在一个表中创建大量的索引。检查表中已创建的索引定义。最好避免包含共享列的重叠索引。检查列中唯一数据值的数量,并与表中的行数进行比较。比较的结果就是该列的可选择性,这有助于确定该列是否适合建立索引,如果适合,确定索引的类型是什么。 索引类型根据数据库的功能,可在数据库设计器中创建三种类型的索引
4、 唯一索引、主键索引和聚集索引。尽管唯一索引有助于找到信息,但为了获得最佳性能,建议使用主键约束或唯一约束。唯一索引唯一索引不允许两行具有相同的索引值。如果现有数据中存在重复的键值,则大多数数据库都不允许将新创建的唯一索引与表一起保存。当新数据将使表中的键值重复时,数据库也拒绝接受此数据。例如,如果在 employee 表中的职员姓氏 (lname) 列上创建了唯一索引,则所有职员不能同姓。主键索引数据库表通常有一列或列组合,其值用来唯一标识表中的每一行。该列称为表的主键。在数据库关系图中为表定义一个主键将自动创建主键索引,主键索引是唯一索引的特殊类型。主键索引要求主键中的每个值是唯一的。当在
5、查询中使用主键索引时,它还允许快速访问数据。聚集索引在聚集索引中,表中各行的物理顺序与键值的逻辑(索引)顺序相同。表只能包含一个聚集索引。如果不是聚集索引,表中各行的物理顺序与键值的逻辑顺序不匹配。聚集索引比非聚集索引有更快的数据访问速度。全文索引对 Microsoft SQL Server 2000 数据的全文支持涉及两个功能:对字符数据发出查询的能力和创建及维护基础索引以简化这些查询的能力。全文索引在许多地方与普通的 SQL 索引不同。普通 SQL 索引全文索引存储时受定义它们所在的数据库的控制。存储在文件系统中,但通过数据库管理。每个表允许有若干个普通索引。每个表只允许有一个全文索引。当
6、对作为其基础的数据进行插入、更新或删除时,它们自动更新。将数据添加到全文索引称为填充,全文索引可通过调度或特定请求来请求,也可以在添加新数据时自动发生。不分组。在同一个数据库内分组为一个或多个全文目录。使用 SQL Server 企业管理器、向导或 Transact-SQL 语句创建和除去。使用 SQL Server 企业管理器、向导或存储过程创建、管理和除去。这些差异使大量管理任务变得不可缺少。全文管理是在几个层次上实施的: 服务器 可以对服务器范围的某些属性(如 resource_usage)加以设置,以便增加或减少全文服务所使用的系统资源数量。全文引擎作为名为 Microsoft 搜索的
7、服务在 Microsoft Windows NT Server 和 Microsoft Windows 2000 Server 上运行。对于 Microsoft SQL Server 个人版,Microsoft 搜索服务不可用。尽管这意味着 Microsoft 搜索服务既未安装在 Microsoft Windows 95/98 上,也未安装在 Windows NT 工作站或 Windows 2000 Professional 客户端上,但这些客户端在连接到 SQL Server 标准版安装或企业版实例时可以使用这项服务。数据库 必须启用数据库才能使用全文服务。可以在已启用的数据库中创建和除去一
8、个或多个全文目录的元数据。全文目录 全文目录包含数据库中的全文索引。每个目录可以用于数据库内的一个或多个表的索引需求。该目录中的索引是使用这里介绍的管理功能来填充的。(全文目录必须驻留在与 SQL Server 实例相关联的本地硬盘驱动器上。不支持可移动的驱动器、软盘和网络驱动器)。在每个服务器上最多可创建 256 个全文目录。 表 首先,必须为全文支持启用表。然后,为与该表相关联的全文索引创建元数据(如表名及其全文目录)。表启用后,可以用为全文支持而启用的列中的数据填充它。如果表的全文定义被更改(例如,添加一个也将为全文检索而索引的新列),则必须重新填充相关的全文目录以使全文索引与新的全文定
9、义同步。列 可以从非活动的注册表中添加或除去支持全文查询的列。在所有这些级别上,可使用工具检索元数据和状态信息。和常规 SQL 索引一样,当在相关表中修改数据时,可自动更新全文索引。或者,也可以适当的间隔手工重新填充全文索引。这种重写可能既耗时又大量占用资源,因此,在数据库活动较少时,这通常是在后台运行的异步进程。应将具有相同更新特性的表(如更改少的与更改多的,或在一天的特定时段内频繁更改的表)组合在一起,并分配给相同的全文目录。通过以此方法设置全文目录填充调度,使得全文索引和表保持同步,且在数据库活动较多时不对数据库服务器的资源使用产生负面影响。为全文目录中的表安排全文索引的位置是非常重要的
10、。在为全文目录指定表时,应该注意下列基本原则: 始终选择可用于全文唯一键的最小唯一索引。(4 个字节且基于整数的索引是最佳的。)这将显著减少文件系统中 Microsoft 搜索服务所需要的资源。如果主键很大(超过 100 字节),可以考虑选择表中其它唯一索引(或创建另一个唯一索引)作为全文唯一键。否则,如果全文唯一键的大小达到允许的上限(450 字节),全文填充将无法继续进行。如果进行索引的表有成千上万行,请将该表指定给其自己的全文目录。应该考虑对其进行全文索引的表中发生的更改数以及表的行数。如果要更改的总行数,加上上次全文填充期间表中出现的行数达到成千上万行,请将该表指定给其自己的全文目录。
11、 代码法创建、删除索引CREATE INDEX为给定表或视图创建索引。只有表或视图的所有者才能为表创建索引。表或视图的所有者可以随时创建索引,无论表中是否有数据。可以通过指定限定的数据库名称,为另一个数据库中的表或视图创建索引。语法:CREATE UNIQUE CLUSTERED | NONCLUSTERED INDEX index_nameON table | view ( column ASC | DESC ,.n ) WITH ,.n ON filegroup := PAD_INDEX |FILLFACTOR = fillfactor |IGNORE_DUP_KEY |DROP_EXISTING |STATISTICS_NORECOMPUTE |SORT_IN_TEMPDB要求在grades表中,基于“编号”和“学号”两个字段的组合建立一个唯一聚集索引。DROP INDEX语句可以从当前数据库所包含的表中删除一个或多个索引。语法:DROP INDEX 表名.索引名,n 要求删除grades表中的索引。