“Oracle DBA笔试题”
Oracle数据库管理员(DBA)是数据库系统的关键角色,负责数据库的性能优化、安全管理和故障排除。以下是一些Oracle DBA可能会遇到的笔试题及答案,涵盖了SQL调优、查询计划分析、CBO与RBO、会话跟踪和索引管理等多个方面。
1. SQL调优类:
- 表连接方式:包括Merge Join(合并连接)、Hash Join(哈希连接)和Nested Loop(嵌套循环)。
- 查看SQL执行计划:在SQL*Plus中使用`SET AUTO TRACE ON`或通过创建并使用`PLAN_TABLE`执行`UTLXPLAN.SQL`。
2. CBO与RULE:
- 使用CBO(Cost-Based Optimizer):通过设置`optimizer_mode`参数,如`choose/all_rows/first_row`。CBO基于统计信息选择执行路径,而RULE(Rule-Based Optimizer)则依据硬编码规则选择索引。
3. 定位消耗资源的SQL:
- 可通过`V$SQLAREA`视图分析逻辑读和磁盘读,或查找CPU使用高的会话来定位。
4. 跟踪会话SQL:
- 找到对应会话的`sid`和`serial#`,然后使用`DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION`过程进行跟踪。
5. SQL调整重点:
- 关注逻辑读和I/O量,因为这些直接影响查询性能。
6. 索引理解:
- 索引结构:默认的B-Tree索引,保证数据快速查找。
- DML影响:INSERT可能导致分裂,DELETE会标记删除,UPDATE涉及索引字段更新。
- 查询影响:索引有助于快速定位数据,但非全索引扫描也可能造成额外开销。
7. 索引与性能:
- 不一定所有查询都适合用索引,当返回数据量大时,全表扫描可能更高效。
8. 绑定变量:
- 是SQL语句中的占位符,减少相同结构不同值的语句解析次数,提高效率。
- 优点:减少解析开销,提高性能;缺点:可能因绑定变量预编译导致缓存问题。
9. 稳定执行计划:
- 使用Stored Outline,这是一种存储SQL语句和其执行计划的方式,确保执行计划不变。
10. 排序内存调整与临时表空间:
- 8i:通过`SORT_AREA_SIZE`调整排序内存。
- 9i及以上版本:使用 PGA (Program Global Area) 和 SGA (System Global Area) 参数调整。
- 临时表空间:用于排序操作、临时结果集存储,对于大量排序操作是必需的。
以上题目涵盖了Oracle DBA日常工作中常见的技术问题,对于准备面试或提升DBA技能的人来说,这些都是重要的学习点。了解并掌握这些知识点,将有助于在实际工作中解决复杂的问题。