查询处理与优化 夏英 (xiaying@cqupt.edu.cn) 重庆邮电大学计算机学院
查询处理与优化 夏英 (xiaying@cqupt.edu.cn) 重庆邮电大学计算机学院
主要内容 ■查询处理的步骤 ■查询代价的度量 ■典型运算的代价分析—选择、排序、连接 查询优化方法
主要内容 查询处理的步骤 查询代价的度量 典型运算的代价分析——选择、排序、连接 查询优化方法
查询处理和优化 任务:根据用户命令从数据库中高效地提取数据 ●查询处理是 RDBMS的核心,查询优化是查询处理的关键 ●用户只需提出“做什么”,不必说明“怎么做”,由系统 选择有效的执行策略,提高查询性能
查询处理和优化 任务:根据用户命令从数据库中高效地提取数据 查询处理是RDBMS的核心,查询优化是查询处理的关键 用户只需提出 “做什么 ”,不必说明 “怎么做 ”,由系统 选择有效的执行策略,提高查询性能
DBMS的运行过程(从用户的角度) 以某一应用程序读取数据库中的记录为例 1.APP向DBMS发出访问DB的命令,其中给出了关系名和 查询条件; 2.DBMS读取数据字典,检查是否存在该关系和相应的字 段,并对该命令进行语法检查和用户存取权限检查。 如果数据库和相应的字段在、命令语法和语义正确且 存取权限合法,则执行该命令,否则拒绝并返回出错 信息 3.执行该命令时,首先根据数据字典中的定义信息将命令 中的外模式映射到模式,确定应该读如哪些记录; 4.根据数据字典中的定义信息,将模式映射到内模式,确 定应该读入哪些物理记录及有关的地址信息;
DBMS的运行过程 (从用户的角度) 以某一应用程序读取数据库中的记录为例 1. APP向DBMS发出访问DB的命令,其中给出了关系名和 查询条件; 2. DBMS读取数据字典,检查是否存在该关系和相应的字 段,并对该命令进行语法检查和用户存取权限检查。 如果数据库和相应的字段在、命令语法和语义正确且 存取权限合法,则执行该命令,否则拒绝并返回出错 信息; 3. 执行该命令时,首先根据数据字典中的定义信息将命令 中的外模式映射到模式,确定应该读如哪些记录; 4. 根据数据字典中的定义信息,将模式映射到内模式,确 定应该读入哪些物理记录及有关的地址信息;
5.DBMS向OS发送读取该记录的命令; 6.OS执行读取数据的有关操作,从指定地址读取记录并存入 系统缓冲区; 7.DBMS将系统缓冲区中的数据转换为模式并进而转换为外 模式; 8.DBMS将系统缓冲区外模式形式的记录返回给应用程序; 9DBMS将运行情况登记在运行日志中; 10.DBMS将命令执行状态返回APP; 11.若APP中的命令需读取多条记录,则反复执行410步
5. DBMS向OS发送读取该记录的命令; 6. OS执行读取数据的有关操作,从指定地址读取记录并存入 系统缓冲区; 7. DBMS将系统缓冲区中的数据转换为模式并进而转换为外 模式; 8. DBMS将系统缓冲区外模式形式的记录返回给应用程序; 9. DBMS将运行情况登记在运行日志中; 10. DBMS将命令执行状态返回APP; 11. 若APP中的命令需读取多条记录,则反复执行4-10步