关系代数表达式评估说明(DBMS)
SQL 查询被分解成查询块。一个查询块包含单个 SELECT-FROM-WHERE 表达式,以及 GROUP BY 和 HAVING 子句(如果有)。嵌套查询被拆分成单独的查询块。
示例
考虑以下示例:
Select lastname, firstname from employee where salary>(select max(salary) from employee where deptname =CSE ; C=(select max(salary) from employee where deptname=CSE); // inner block Select lastname, firstname from employee where salary>c; //outer block
其中 C 代表从内部块返回的结果。
内部块的关系代数为 Ģmax(salary) (σdname=CSE(employee))
外部块的关系代数为 Πlastname, firstname(σsalary>c(employee))
查询优化器将为每个块选择一个执行或评估计划。
关系代数表达式的评估
**物化评估** - 一次评估一个操作。自下而上地评估表达式并将中间结果存储到临时文件中。

将 A ⋈ B 的结果存储到临时文件中。
将 C ⋈ D 的结果存储到临时文件中。
最后,连接存储在临时文件中的结果。
总成本 = 各个操作的成本总和 + 将中间结果写入磁盘的成本,将结果写入临时文件并将其读回的成本相当高。
**流水线评估** - 同时评估多个操作。一个操作的结果传递给下一个操作。自下而上地评估表达式,并且不将中间结果存储到临时文件中。

不将 A ⋈ B 的结果存储到临时文件中。相反,结果直接传递给与 C 的投影等等。
广告
数据结构
网络
关系数据库管理系统(RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP