第九章: 关系查询处理和查询优化 课后习题
-
假设关系R(A,B)]和S(B,C,D)情况如下:R有20000个元组,S有1200个元组,一个块能装40个R的元组,能装30个S的元组,估算下列操作需要多少次磁盘块读写。
(1)R上没有索引,select * from R;
简单地全盘扫描
解:20000/40=500(次),读写应该是一共1000次
(2)R中A为主码,A有三层B+树索引,select * from R where A=10;
扫描索引算法:通过索引先找到满足条件的元组指针,再通过元组指针在表中检索。
解:cost=L+1,L是B+树的层数
一个块能装40个R的元组,层数最小的情况:
20000/40=500
500/40=12.5
13<40…刚发现好像没必要写这个
也就是三层,L=3
所以需要4次
(3)嵌套循环连接 R ⋈ S R \Join S