首页 > 试题广场 >

考虑下面的SQL投影查询的处理 SELECT DISINCT

[问答题]
考虑下面的SQL投影查询的处理
SELECT DISINCT E title, E ename FROM Executives E
有下面一些信息:
关系 Executives的属性包括 ename,tite, dname和 address,这些属性都是等长的字符串。属性域 ename是关系的候选码。关系有10000个数据页。有10个缓冲区页考虑优化的基于排序的投影算法:初始的排序阶段读取输入关系,输出只包含属性域 ename和 title的有序段。随后的归并阶段在归并有序段的同时(而不是对含有重复元组的有序文件再单独的处理一遍),消除重复的元组,最后得到有序的投影结果。
(1)算法的第一遍处理生成了多少有序段?这些有序段的平均长度是多少?(假设充分的利用内存,并尽量采用优化技术增加有序段的长度。)排序阶段的LO开销是多少?
(2)计算投影查询的最终结果,还需要进行多少遍处理?这些处理的I/O开销是多少
(3)(a)假设在属性域 title上存在聚簇B+树素引,可以利用这个索引减少排序的开销吗?如果索引是非聚簇的呢?索引为哈希索引时又如何呢?
(b)假设在属性域 crane上存在聚簇B+树索引,可以利用这个索引减少排序的开销吗?如果索引是非聚簇的呢?索引为哈希索引时又如何呢?假设在属性域< ename,tite>上存在聚簇B+树索引,可以利用这个索引减少排序的开销吗?如果索引是非聚簇的呢?素引为哈希索引时又如何呢?
给定查询如下:
SELECT E title, E ename FROM Excutives F
也就是说,如果不需要消除重复的元组,如何回答上面的问题?

这道题你会答吗?花几分钟告诉大家答案吧!