云南师范大学信息学院实验报告学号:姓名:班级:课程名称:大型数据库管理系统实验名称:第六章实验实验性质:①综合性实验②设计性实验③验证性实验试验时间:试验地点:本试验所用的设备:SQLServer2005、计算机一台实验目的:1.理解索引的概念和作用2.掌握索引的创建、更改和删除方法3.了解索引钱和索引后查询执行计划的差异4.掌握维护索引的方法实验内容及过程:(1)使用对象资源管理器创建、管理索引1.为员工表创建一个索引名为“emp_id”的唯一非聚集索引,索引关键字是“员工号”,填充因子80%。2.重命名索引,将索引“emp_id”重命名为“员工表_员工号”。3.删除索引“员工表_员工号”。(2)使用T-SQL语句创建、管理索引1.为员工表创建一个索引名为emp_id的唯一性非聚集索引,索引关键字是员工号,填充因子80%代码:USExmglGOcreateuniquenonclusteredindexemp_idon员工表(员工号asc)withfillfactor=802.重命名索引,将索引emp_id重命名为员工表_员工号。代码:sp_rename'员工表.emp_id','员工表_员工号'3.员工参与项目表创建一个索引名为“员工_项目_index”的非聚集复合索引,索引关键字为“员工号”,升序,项目编号,降序,填充因子50%。代码:USExmglGOcreatenonclusteredindex员工_项目_indexon员工参与项目表(员工号asc,项目编号desc)withfillfactor=504.删除索引“员工表_员工号”和“员工_项目_index”。代码:dropindex员工参与项目表.员工_项目_index(3)索引前后的执行计划1.删除员工表中员工号上的主键。按员工姓名和项目名称查询对应的职责,然后观察执行计划信息,计算总的I/O和CPU开销。(员工表和员工参与项目表中的员工号都没有索引)代码:select姓名,项目名称,职责from员工表,项目表,员工参与项目表where员工表.员工号=员工参与项目表.员工号and项目表.项目编号=员工参与项目表.项目编号2.为员工参与项目表创建一个索引名为“员工参与项目_员工号”的非聚集索引,索引关键字为“员工号”,升序;按员工姓名和项目名称查询对应的职责,然后观察执行计划信息,计算总的I/O和CPU开销。(员工表中员工号没索引,员工参与项目表中的员工号有非聚集索引)代码:createnonclusteredindex员工参与项目表_员工号on员工参与项目表(员工号asc)withfillfactor=80select姓名,项目名称,职责from员工表,员工参与项目表,项目表where员工表.员工号=员工参与项目表.员工号and项目表.项目编号=员工参与项目表.项目编号3.重建员工表中员工号上的主键,删除“员工参与项目_员工号”的非聚集索引。按员工姓名和项目名称查询对应的职责,然后观察执行计划信息,计算总的I/O和CPU开销。(员工表中员工号有聚集索引,员工参与项目表中的员工号没有非聚集索引)代码:dropindex员工参与项目表.员工参与项目表_员工号select姓名,项目名称,职责from员工表,员工参与项目表,项目表where员工表.员工号=员工参与项目表.员工号and项目表.项目编号=员工参与项目表.项目编号4.为员工参与项目表创建一个索引名为“员工参与项目_员工号”的非聚集索引,索引关键字为“员工号”,升序。按员工姓名和项目名称查询对应的职责,然后观察执行计划信息,计算总的I/O和CPU开销。(员工表中员工号有聚集索引,员工参与项目表中的员工号有非聚集索引)代码:createclusteredindex员工参与项目表_员工号on员工参与项目表(员工号asc)withfillfactor=80select姓名,项目名称,职责from员工表,员工参与项目表,项目表where员工表.员工号=员工参与项目表.员工号and项目表.项目编号=员工参与项目表.项目编号任课教师评语:教师签字:年月日注:每学期至少一次设计性实验。每学期结束请任课教师按时按量统一交到教学秘书处