Oracle面试精华:去重技巧与性能调优关键

需积分: 9 3 下载量 89 浏览量 更新于2024-07-16 收藏 599KB PDF 举报
Oracle经典面试总结涵盖了多个关键知识点,包括数据库优化技术、SQL性能分析以及特定功能的理解。 1. **CBO(Cost-Based Optimizer)与RBO(Rule-Based Optimizer)**: 在Oracle数据库中,当optimizer_mode设置为`choose`时,CBO和RBO的选择取决于是否存在表的统计信息。CBO(成本优化器)采用基于成本的策略,它通过计算各种执行计划的成本(如I/O操作、CPU使用等),以选择最低成本的方案。相反,RBO依赖于预定义的规则,通过15个级别的评估来决定执行路径,选择最简单的方案。 2. **定位消耗资源的SQL查询**: 为了找出执行效率低下的SQL,可以使用以下查询语句:检查`v$sql`视图,筛选出disk_reads超过1000次或执行次数大于0且buffer_gets除以executions大于30000的SQL。这有助于识别可能引起性能瓶颈的查询。 3. **SQL追踪和会话管理**: 使用`dbms_system.set_sql_trace_in_session`函数可以在指定会话中启用SQL追踪,并通过`v$session`和`v$mystat`视图获取会话ID和序列号。设置事件`event_10046`和级别`level_12`可用于收集更详细的追踪信息。 4. **绑定变量**: 绑定变量是相对于文本变量而言的,它可以减少SQL解析的负担,降低CPU争用,节省共享池资源。但其缺点在于无法利用基于统计信息的histogram,可能导致SQL优化困难。 5. **内存管理与排序**: - 在Oracle 8i中,`sort_area_size`和`sort_area_retained_size`参数控制排序所需的内存。如果排序超出这个范围,会使用临时表空间存储。 - Oracle 9i引入了新的内存管理策略,当`workarea_size_policy`设为`auto`时,排序活动会在PGA(进程全局区)内进行,一般建议分配PGA_aggregate_target的1/20作为disksort空间。 这些知识点在Oracle面试中是常见的考察点,掌握它们对于理解数据库性能调优、问题诊断和优化至关重要。求职者在准备Oracle面试时,不仅要熟悉基础概念,还要能结合实际场景灵活应用。