你好,你们中任何一个能够在关系代数方面向我解释查询优化概念的人都很好吗?
我构建关系代数查询的首选方法是逐步使用临时值,但我可以找到的唯一资源用于解释查询优化如何工作以查找所需的磁盘访问量,这对于关系代数查询使用不同的表示法,困惑我。
所以,如果我得到以下关系:
部门( deptNo ,deptName,location)
员工( empNo ,empName,empAddress,jobDesc,deptNo *)
并生成了以下关系代数查询,以查找在曼彻斯特部门工作的所有程序员:
temp1 =部门加入员工
temp 2 = SELECT(jobdesc ='程序员')(temp1)
result = SELECT(location =' Manchester)(temp 2)
我可以假设员工关系中有10,00个元组,部门关系中有50个元组,100个程序员(每个部门2个)和位于曼彻斯特的一个部门,我将如何计算出多少个磁盘访问需要吗?
提前谢谢!
答案 0 :(得分:0)
如果先进行SELECTS,整个练习会发生显着变化:(临时1 =获取程序员= 100行/磁盘访问),(临时2 =获取部门= 1行/磁盘访问),加入(再次,假设完美)索引临时视图/查询等等)= 50行:因此“访问”总数= 100 + 1 + 50 = 151。
结果相同,但解释和执行的方式会影响数据库引擎必须执行的工作量。
这已经很多年了,我可能会犯这个错误 - 我不介意纠正。