练习22.6题目:
练习22.3题目:
考虑并行数据库的每个关系水平分片后存储于所有磁盘
(1)找出薪水最高的雇员。
(2)找出did值为55的部门中薪水最高的雇员。
(3)找出 budget值小于100000的所有部门中薪水最高的雇员
(4)找出 budget值小于300000所有部门中薪水最高的雇员
(5)给出 budget值小于300000所有部门的平均工资
(6)给出所有经理的工资。
(7)对于 budget小于30000的部门,如果其经理的薪水超过10000,给出该经理的工资。
(8)以雇员薪水为序打印出所有雇员的ed,如果每个处理机都有一个本地的打印机,那么每个处理机可以单独生成一个有序序列,分别打印,然后将打印好的列表(按照某种次序)连接得到完整的有序结果
Employees(eid, integer, did, integer, sal, real) Departments(did:integet,mgrid:integer, budget r integer)关系 Departments中的 mgrid是经理的ed.每个关系的记录长度为20字节,属性al和 budget的值平均分布于区域0~1000000关系 Employees的数据有10000页关Departments的数据有5000页,并且每个处理机有100个缓存页,每个页的大小为000字节。每页数据的1/O代价为t,传输一页数据的代价为t;记录数据进行传输的基本单位是页,当一页数据填满后才会真正进行传输。关系没有任何索引,本地的所有连接操作使用排序归并连接方法,假设关系初始分布时使用轮转方法,并且共有10个理机对于下面的每个查询,简要给出查询执行计划,并利用t和t给出查询代价表达式。必须计算出所有场地的总代价和“公共时间”代价(也就是说如果有若干个操作并发执行,则所用时间是这些操作的最大执行时间)。
(1)找出薪水最高的雇员。
(2)找出did值为55的部门中薪水最高的雇员。
(3)找出 budget值小于100000的所有部门中薪水最高的雇员
(4)找出 budget值小于300000所有部门中薪水最高的雇员
(5)给出 budget值小于300000所有部门的平均工资
(6)给出所有经理的工资。
(7)对于 budget小于30000的部门,如果其经理的薪水超过10000,给出该经理的工资。
(8)以雇员薪水为序打印出所有雇员的ed,如果每个处理机都有一个本地的打印机,那么每个处理机可以单独生成一个有序序列,分别打印,然后将打印好的列表(按照某种次序)连接得到完整的有序结果
考虑练习22.3给出的关系 Employees和 Departments,现在存储在分布式DBMS中,关系 Employees的所有记录存于场地 Naples,而关系 Deaprtments的所有记录存于场地 Berlin。两个关系都没有任何索引。其他操作的代价和练习22.3给出的相同。考虑下面的查询:
SELECT FROM Employees E Departments D WHERE E. eid=D mgrid如果查询在场地Dlh提交,并且已知只有1%的雇员是经理。给出下面这些查询计划的执行代价:
(1)将关系 Departments传送到场地 Naples,在场地 Naples执行查询后,再将结果传送到查询提交场地Dehi
(2)将关系 Employees传送到场地 Berlin,在场地 Berlin执行查询后,再将结果传送到查询提交场地Dlhi
(3)将两个关系都传送回查询提交场地,然后在场地Dehi执行查询。
(4)在场地 Naples使用布鲁连接方法执行查询,再将结果传送到查询提交场地Delhi
(5)在场地 Berlin使用布鲁连接方法执行查询,再将结果传送到査询提交场地
(6)在场地 Naples使用半连接方法执行查询,再将结果传送到查询提交场地Dehi
(7)在场地 Berlin使用半连接方法执行查询,再将结果传送到查询提交场地 Delhi
对于练习22.6给出的所有查询执行计划,哪种传输代价最小?该查询执行计划是不是代价最小的?哪种查询执行计划的代价最小?