代价模型 集中式数据库 n单用户系统 总代价=I/O代价+CPU代价 n多用户系统 总代价=I/O代价+CPU代价+内存代价 分布式数据库 总代价=I/0代价+CPU代价[+内存代价]+通信代价 An Introduction to Database System
An Introduction to Database System 代价模型 ◼ 集中式数据库 ◼ 单用户系统 总代价 = I/O代价 + CPU代价 ◼ 多用户系统 总代价 = I/O代价 + CPU代价 + 内存代价 ◼ 分布式数据库 总代价 = I/O代价 + CPU代价[+ 内存代价] + 通信代价
422查询优化的必要性 例:求选修了课程C2的学生姓名 select Student sname FROM Student so WheRE Student sno=sc sno AND SC, Cno=2 An Introduction to Database System
An Introduction to Database System 4.2.2 查询优化的必要性 例:求选修了课程C2的学生姓名 SELECT Student.Sname FROM Student, SC WHERE Student.Sno=SC.Sno AND SC.Cno='2';
查询优化的必要性(续) 假设1:外存 Student:1000条SC:1000.条,选修2号课程:50条 假设2:一个内存块装元组:10个 Student,或100个SC 内存中一次可以存放:5块 Student元组, 1块SC元组和若干块连接结果元组 假设3:读写速度:20块/秒 假设4:连接方法:基于数据块的嵌套循环法 An Introduction to Database System
An Introduction to Database System 查询优化的必要性(续) 假设1:外存: Student:1000条,SC:10000条, 选修2号课程:50条 假设2:一个内存块装元组:10个Student, 或100个SC, 内存中一次可以存放: 5块Student元组, 1块SC元组和若干块连接结果元组 假设3:读写速度:20块/秒 假设4:连接方法:基于数据块的嵌套循环法
执行策略1 s name( Student sno=sC Sno ASC Cno=2 ( Student×SC) ① Student×SC 读取总块数=读 Student表块数+读SC表遍数 *每遍块数 1000/10+(1000/(10×5))×(10000/100) 100+20×100=2100 读数据时间=2100/20=105秒 An Introduction to Database System
An Introduction to Database System 执行策略1 Q 1 = П S name(бStudent.Sno=SC.Sno ∧SC.Cno='2' (Student×SC)) ① Student×SC 读取总块数= 读Student表块数 + 读SC表遍数 *每遍块数 =1000/10+(1000/(10×5)) ×(10000/100) =100+20×100=2100 读数据时间=2100/20=105秒