首页 > 试题广场 >

假设你在一个堆文件中插入了若干记录,现在希望对这些记录排序,

[问答题]
假设你在一个堆文件中插入了若干记录,现在希望对这些记录排序,假定DBMS采用外排序算法,并且使用所有可用的缓冲区。下面关于文件和DBMS系统软件的信息可能会与你要解决的问题相关:文件中的记录数目为4500.要排序的码长为4个字节,假定rid长8个字节,数据页的id长4个字节。数据记录长48个字节,数据页的大小为512字节。每个数据页有12个字节的控制信息。可用的缓冲区有4个
(1)进行第一遍处理后,生成多少个有序的子文件,每个子文件有多长?
(2)对文件排序需要处理多少遍(包括算法初始的处理
(3)文件排序总的1/O开销是多少
(4)只用4个缓冲区页,处理两遍,可以排序的最大文件所包含的元组数目?如果有257个可用的缓冲区页呢?
(5)假设在需要排序的码上存在B+树索引,请计算在下列情况下,按顺序读取记录
的开销。索引采用第一种数据项格式索引采用第二种数据条项格式,并且为非聚簇索引。(计算最坏情况下的开销)如果目标文件是用257个缓冲区页,处理两遍,可以排序的最大文件,使用索引排序的开销会如何改变?请分别对聚簇索引和非聚簇索引进行计算。

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