Oracle笔试与面试精华:连接方式、执行计划与CBO详解

需积分: 47 4 下载量 23 浏览量 更新于2024-09-29 收藏 109KB DOC 举报
Oracle笔试和面试题涵盖了数据库管理和查询优化的关键知识点,包括不同类型的表连接方式、SQL执行计划的查看、以及CBO(Cost-Based Optimization)与RBO(Rule-Based Optimization)的对比。 1. 表连接方式: - Oracle支持多种表连接方式:`INNER JOIN`用于返回两个表中匹配的行,`LEFT JOIN`返回左表的所有行加上右表匹配的行,`OUTER JOIN`包括所有左表或右表的行,而`FULL JOIN`则返回所有可能的配对组合,即使在其中一个表中没有匹配。 2. SQL执行计划查看: - 在Oracle中,不借助第三方工具,可以通过以下方法查看SQL执行计划: - 使用PL/SQL的`SetAutoTrace`功能,开启后在执行SQL时自动显示执行计划,结束后通过`set autoTraceoff`关闭。 - 直接执行`EXPLAIN PLAN FOR [your SQL statement]`,如`EXPLAIN PLAN FOR SELECT * FROM table1`。然后从`DBMS_XPLAN.DISPLAY`结果中获取执行计划。 3. CBO与RBO区别: - RBO(规则基础优化)主要依据预设的规则,如带有特定条件(如`WHERE empno=xx`)且表上有相应索引的情况。在8i之前,Oracle更倾向于使用RBO;但从8i开始,CBO(成本基础优化)成为主流,它根据SQL的成本,如CPU和内存消耗,选择执行计划。 - CBO利用表和索引的统计信息来计算执行计划的成本,这些信息包括表大小、行数、每行长度等。优化器会选择成本最低的计划,因此维护准确的统计信息至关重要。 - 虽然索引通常有助于性能,但并非总是最佳选择,特别是对于小表,全表扫描可能更快。此外,环境因素也可能影响优化器的选择,比如优化器模式(rule、choose等)以及字符长度变化。 4. 优化器模式: - Oracle有四种优化器模式: - `RULE`模式依然基于规则进行决策。 - `CHOOSE`模式在存在统计信息时优先基于CBO,如果没有,则遵循其他规则。 在Oracle笔试和面试中,理解这些核心概念对于成功至关重要,包括表连接的合理使用、掌握SQL执行计划分析技巧,以及深入理解CBO和RBO的工作原理以及优化器模式的影响。同时,熟悉如何维护和利用统计信息以优化查询性能,是提高竞争力的关键。