Oracle SQL Plan Baseline详解与操作
需积分: 19 123 浏览量
更新于2024-09-14
收藏 8KB TXT 举报
"这篇学习笔记主要探讨了SQL Plan Baseline的功能和使用,包括其启用、查看、修改以及如何为SQL指定固定执行计划。"
在Oracle数据库中,SQL Plan Baseline是一种重要的性能优化工具,它允许数据库管理员管理和固定SQL语句的执行计划,以确保最优的查询性能。自Oracle 11g版本起,`optimizer_use_sql_plan_baselines`参数默认开启,意味着系统会使用SQL Plan Baseline来选择执行计划。
SQL Plan Baseline的启用与配置:
1. `optimizer_capture_sql_plan_baselines` 参数默认是关闭的,这意味着数据库不会自动捕获新的执行计划。要开启自动捕获,需要将其设置为TRUE。
2. `optimizer_use_sql_plan_baselines` 参数默认为TRUE,表示系统会在执行SQL时参考已存在的基线。
查看SQL Plan Baseline:
1. 可以通过`dba_sql_plan_baselines`和`dba_sql_management_config`这两个基本视图来查看SQL Plan Baseline的信息。
2. 对于更底层的详细信息,如保存的执行计划和HINTs,可以查看`sqlobj$data`和`sqlobj$`视图。
修改SQL Plan Baseline的属性:
1. `ENABLED`:设置为NO可临时禁用某个计划。计划必须同时是ENABLED和ACCEPTED才会被优化器考虑。
2. `FIXED`:设置为YES后,该计划将成为优化器的首选,即使有成本更低的计划。这对于将存储概要转化为稳定的SQL Plan Baseline尤其有用。
3. `AUTOPURG`:设置为NO可防止计划因自动清理机制而被删除,实现永久保留。
4. `plan_name`:可以更改SQL Plan的名称,便于管理。
5. `description`:可以修改SQL Plan的描述,提供更多的元数据信息。
固定SQL执行计划:
要为特定SQL指定固定执行计划,可以使用以下步骤:
1. 先关闭自动游标(`set autotrace off`)。
2. 使用`hashplan`查看具有所需计划哈希值的SQL_ID。
3. 根据需要操作SQL_ID,例如将特定计划固定。
这些操作通常通过PL/SQL包`dbms_spm`来完成,比如调用`alter_sql_plan_baseline`函数来修改基线的属性。通过理解和熟练使用SQL Plan Baseline,数据库管理员能够更好地控制和优化SQL语句的执行,确保系统的稳定性和性能。
2018-08-24 上传
2023-09-30 上传
2024-07-28 上传
2008-09-07 上传
2022-08-03 上传
2021-05-13 上传
2021-03-25 上传
点击了解资源详情
gyc5268
- 粉丝: 0
- 资源: 4
最新资源
- Android圆角进度条控件的设计与应用
- mui框架实现带侧边栏的响应式布局
- Android仿知乎横线直线进度条实现教程
- SSM选课系统实现:Spring+SpringMVC+MyBatis源码剖析
- 使用JavaScript开发的流星待办事项应用
- Google Code Jam 2015竞赛回顾与Java编程实践
- Angular 2与NW.js集成:通过Webpack和Gulp构建环境详解
- OneDayTripPlanner:数字化城市旅游活动规划助手
- TinySTM 轻量级原子操作库的详细介绍与安装指南
- 模拟PHP序列化:JavaScript实现序列化与反序列化技术
- ***进销存系统全面功能介绍与开发指南
- 掌握Clojure命名空间的正确重新加载技巧
- 免费获取VMD模态分解Matlab源代码与案例数据
- BuglyEasyToUnity最新更新优化:简化Unity开发者接入流程
- Android学生俱乐部项目任务2解析与实践
- 掌握Elixir语言构建高效分布式网络爬虫