文档详情

实验报告9 查询优化(推荐).pdf

发布:2017-08-16约1.77万字共11页下载文档
文本预览下载声明
《数据库系统概论》实验报告 题目:实验九 查询优化 姓名 Vivian 日期 2006-1-1 实验内容及完成情况(写明你的优化方案): 一.实验运行环境: CPU :P3 800 内存:512MB 硬盘:30G 操作系统:WINDOWS 2000 ADVANCED SERVER 数据库系统:KingbaseES V4.1 二.设计数据库及其数据状况: 1.为本实验建立一个新的数据库,其中包括 Student、Course、SC 表和 STU、COU、S_C 表, 它们的结构与《概论》书中的“学生课程数据库”类似。 2 .本实验中,表 Student 共有 30 条记录,表 Course 共有 20 条记录,表 SC 共有 100 条记录; 表 STU 共有 10000 条记录,表 COU 共有 100 条记录,表 S_C 共有 1000000 条记录。其 中,Student、Course、SC 表已在自动建立的“学生课程数据库”中;STU、COU、S_C 表中的数据可以通过执行存储过程 INSERT_STU 、INSERT_COU 、INSERT_S_C ,在建立 的库中导入数据。 3 .单表查询实验中,我们设计的数据情况如下:表 Student 中20 岁的学生记录为 0 条,占 总元组数的 0% ;表 STU 中20 岁的学生记录为 150 条, 占总元组数的 1.5%。 (一) 单表查询 【例1】查询 Student 表中 20 岁以上学生的信息(表中元组数少,查询结果元组数所占比例 小) [例 1-1]直接查询 SELECT * FROM Student WHERE sage20; 查看预查询计划:EXPLAIN SELECT * FROM STUDENT WHERE sage20; 执行语句并查看查询计划:EXPLAIN ANALYZE SELECT * FROM STUDENT WHERE sage20; 查询计划: QUERY PLAN Seq Scan on STUDENT (cost=0.00..1.38 rows=1 width=51) /*表示系统的预查询计划*/ (actual time=0.000..0.000 rows=0 loops=1) /*表示系统实际执行的查询计划*/ Filter: (SAGE 20) /*Student 表的过滤条件 sage20*/ Total runtime: 0.000 ms /*表示系统的实际执行时间*/ [例 1-2]建立索引后再查询 CREATE INDEX stuage ON Student(sage); SELECT * FROM Student WHERE sage20; 查询计划: QUERY PLAN Seq Scan on STUDENT (cost=0.00..1.38 rows=1 width=51) (actual time=0.000..0.000 rows=0 loops=1) Filter: (SAGE 20) Total runtime: 0.000 ms 【例2 】查询 Student 表中 20 岁以下学生的信息(表元组数少,查询结果元组数所占比例大) [例 2-1]直接查询 SELECT * FROM Student WHERE sage20; 查询计划: QUERY PLAN Seq Scan on STUDENT (cost=0.00..1.38 rows=23 width=51) (actual time=0.000..0.000 rows=22 loops=1) Filter: (SAGE 20) Total runtime: 0.000 ms [例 2-2]建索引后再查询 CREATE INDEX stuage ON Student(sage); SELECT * FROM Student WHERE sage20; 查询计划: QUERY PLAN Seq Scan on STUDENT (cost=0
显示全部
相似文档