当前位置: 首页 > news >正文

给小白的oracle优化工具,了解一下

有时懒得分析或语句太长,可以尝试用oracle的dbms_sqldiag包进行sql优化,


--How To Use DBMS_SQLDIAG To Diagnose Query Performance Issues (Doc ID 1386802.1)
--诊断SQL 性能
SET ECHO ON
SET LINESIZE 132
SET PAGESIZE 999
SET LONG 999999
SET SERVEROUTPUT ONDECLAREv_sql_diag_task_id varchar2(100);
BEGIN
v_sql_diag_task_id := DBMS_SQLDIAG.CREATE_DIAGNOSIS_TASK (sql_id=>'&sql_id',problem_type => DBMS_SQLDIAG.PROBLEM_TYPE_PERFORMANCE,time_limit => 900,task_name => 'PROBLEM_TYPE_PERFORMANCE_task' );DBMS_SQLTUNE.SET_TUNING_TASK_PARAMETER(v_sql_diag_task_id,'_SQLDIAG_FINDING_MODE',DBMS_SQLDIAG.SQLDIAG_FINDINGS_FILTER_PLANS);
END;
/--观察 Check the Task Created
col owner for a12
col task_name for a35
col advisor_name for a25
SELECT DISTINCT owner, task_name, advisor_name,status FROM DBA_ADVISOR_TASKS WHERE advisor_name ='SQL Repair Advisor' AND task_name like '%PERF%' ORDER BY 1;--执行任务
BEGINDBMS_SQLDIAG.EXECUTE_DIAGNOSIS_TASK (task_name => 'PROBLEM_TYPE_PERFORMANCE_task' );
END;
/--看结果
SET LONG 9999999
SET PAGESIZE 500
SELECT DBMS_SQLDIAG.REPORT_DIAGNOSIS_TASK ('PROBLEM_TYPE_PERFORMANCE_task' ) as recommendations FROM DUAL;--如果觉得还行 接受结果
BEGINDBMS_SQLDIAG.ACCEPT_SQL_PATCH(task_name =>'PROBLEM_TYPE_PERFORMANCE_task',task_owner => 'M_LINCS',replace => TRUE);
END;
/--确认生效
SELECT name, status FROM dba_sql_patches WHERE name LIKE '%SYS%';--打扫房屋 清理任务
BEGINDBMS_SQLDIAG.DROP_DIAGNOSIS_TASK (task_name => 'PROBLEM_TYPE_PERFORMANCE_task' );
END;
/--确认清理完毕
SELECT DISTINCT owner, task_name, advisor_name FROM DBA_ADVISOR_TASKS WHERE advisor_name ='SQL Repair Advisor'
AND task_name like '%PERF%' ORDER BY 1;--后悔了 删除优化措施(sql补丁)
SELECT name, status FROM dba_sql_patches WHERE name LIKE '%SYS%';---Drop the SQL Patch.
---Replace following patch name with actual name of the SQL Patch
--- from previous query output.
BEGINDBMS_SQLDIAG.DROP_SQL_PATCH (name=> 'SYS_SQLPTCH_<string>');
END;
/--确认删除优化措施
--- Verify that the SQL Patch has been dropped.
---
SELECT name, status FROM dba_sql_patches WHERE name LIKE '%SYS%';

有时可能没有建议
在这里插入图片描述
此路不同,再想他法。

http://www.lryc.cn/news/544495.html

相关文章:

  • CT技术变迁史——CT是如何诞生的?
  • 【PHP脚本语言详解】为什么直接访问PHP文件会显示空白?从错误示例到正确执行!
  • 软件工程---需求工程
  • spring注解开发(Spring整合MyBatis——Mapper代理开发模式、(Spring、MyBatis、Jdbc)配置类)(6)
  • 散户情绪周期模型(情绪影响操作)
  • 计算机毕业设计SpringBoot+Vue.js网上商城系统(源码+文档+PPT+讲解)
  • 自动化测试无法启动(java.net.SocketException)
  • 智能机器人加速进化:AI大模型与传感器的双重buff加成
  • osgEarth安装总结
  • Java多线程与高并发专题——从AQS到ReentrantLock
  • 力扣 寻找重复数
  • 第48天:Web开发-JavaEE应用依赖项Log4j日志Shiro验证FastJson数据XStream格式
  • ES6笔记总结
  • 使用Docker Desktop部署GitLab
  • 经典算法 统计数字问题(常数时间解决)
  • 基于yolov8的糖尿病视网膜病变严重程度检测系统python源码+pytorch模型+评估指标曲线+精美GUI界面
  • AcWing 5933:爬楼梯 ← 递归 / 递推 / 高精度
  • c++ 中的容器 vector 与数组 array
  • 我的世界1.20.1forge模组开发进阶物品(7)——具有动画、3D立体效果的物品
  • ubuntu22.04安装docker engine
  • 性能测试测试策略制定|知名软件测评机构经验分享
  • Let‘s Encrypt免费证书的应用示例
  • threeJS——安装以及三要素
  • 【Electron入门】进程环境和隔离
  • 提示词框架介绍和使用场景
  • 牛客NC288803 和+和
  • AI学习第七天
  • 【uniapp原生】实时记录接口请求延迟,并生成写入文件到安卓设备
  • XR应用测试:探索虚拟与现实的边界
  • 算法之算法思想