策略2:对同一关系连续的多个投影可转换为仅含最后一个投影的操作。例如:Select A1,…AnFrom E(Select B1,…,Bm From E)XXXXXXXXXXXXXXXXXXXXXSelectA1,…,AnFrom E。因为A1,…,An∈B1,…,Bm,所以根据表1规则9等价于直接对子集A1,…,An投影。
策略3:投影后的选择操作可转换为选择操作后的投影操作,例如:Select A1,A2 From E1 Where A1=(Select B1 From E2Where B2>F2)等价于A1,A2 From E1E2Where A1=B1 And B2>F2。
经等价变换使得条件A1=B1 And B2>F2满足时再进行投影,这样可减少中间结果的规模。
策略4:投影操作在并操作、交操作和连接操作上满足分配律。例如:σF(E1∪E2)=σF(E1)∪σF(E2)等价于Select A1,A2From E1 Where F union Select B1,B2 From E2 Where F。对于E1,E2若在不同的服务器上,先进行本地服务器上的选择再进行并行运算将减少查询代价。
策略5:并操作和交操作满足吸收律,即:E1∪(E1∩E2)=E1或E1 ∩(E1 UE2)=E1。例如:Select*From E1 union(Select*E1 From insersect Select* From E2)等价于Select *From E1。等价变换前对E1扫描2次,E2扫描1次,但等价变换后仅对E1扫描1次。
3.2 成本最小的查询计划
数据库查询优化器是关系数据库服务器的一个组成部分。基于成本的数据库查询优化器的任务是通过产生可供选择的查询计划,找到最低估算成本的查询计划来优化一条SQL语句,其过程如图1所示。查询计划对SQL语句性能十分重要。当一条SQL 语句被送人RDBMS服务器,将被解析并提交给数据库查询优化器。查询优化器进行查询等价变换,并对查询表达式进行评估,以产生若干可供选择的查询计划。估计每个待选的查询计划的成本,选用成本最小的查询计划,最终生成可执行的SQL语句。
4 结束语
数据库查询优化器生成查询计划存在2个问题:第一,无法产生全部可能的、并可供选择的查询计划;第二,无法准确地估计查询成本。另外,查询处理的代价通常取决于磁盘的访问,因为磁盘的访问比内存访问速度慢得多,就所需的磁盘访问次数而言,策略好坏差别很大,甚至相差几个数量级。所以,对于一个给定的查询,查询优化器系统如何快速选择一个生成成本相对较小的查询计划很值得研究。