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

ops/2025/3/1 7:33:19/

有时懒得分析或语句太长,可以尝试用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.ppmy.cn/ops/162173.html

相关文章

windows下安装pyenv+virtualenv+virtualenvwrapper

1、下载pyenv 进入git官网&#xff0c;打包下载zip到本地 2、解压到安装目录 解压下载好的pyenv-win-master.zip到自己的安装目录&#xff0c;如D:\Program Files 3、配置环境变量 右击桌面 此电脑 --> 属性 --> 高端系统设置 --> 环境变量 --> 新建系统变量…

大模型赋能心脏骤停预测:精准医疗新曙光

目录 一、研究背景与意义 二、研究方法与数据来源 2.1 大模型选择与原理 2.2 数据收集 2.3 数据预处理 三、大模型预测心脏骤停的应用 3.1 术前风险预测 3.2 术中风险监测与应对 3.3 术后恢复评估 3.4 并发症风险预测 四、基于预测结果的医疗方案制定 4.1 手术方案…

第三十一: 6. 组件通信 props

组件通信主要解决 &#xff1a; 组件A 的数据 传递给 组件B 注意&#xff1a;子传父的时候&#xff1a;第一&#xff1a;还是要在父给子传一个函数&#xff0c;子收到这个函数&#xff0c;在合适的时候调用这个函数&#xff0c;以传参的形式把东西调过去。 常见搭配形式…

Spring Boot HikariCP数据库连接池入门

1. 概述 在我们的项目中&#xff0c;数据库连接池基本是必不可少的组件。在目前数据库连接池的选型中&#xff0c;主要是 Druid&#xff0c;为监控而生的数据库连接池。HikariCP&#xff0c;号称性能最好的数据库连接池。 至于怎么选择&#xff0c;两者都非常优秀&#xff0…

python-leetcode-下一个排列

31. 下一个排列 - 力扣&#xff08;LeetCode&#xff09; class Solution:def nextPermutation(self, nums: List[int]) -> None:"""Do not return anything, modify nums in-place instead."""# Step 1: Find the first decreasing element …

【MySQL】数据库安装

一、MySQL 数据库安装 1、安装 mysql 的组件 mysql 是开源的&#xff0c;完全免费。安装包下载&#xff1a;MySQL :: Download MySQL Installer mysql 安装之前确保电脑上没有其它 mysql 服务正在运行&#xff0c;防止后续安装出现问题&#xff1a;此电脑 >> 管理 >&…

Nacos数据同步原理

Nacos 数据同步原理涉及多个模块的协作&#xff0c;主要包括配置管理、服务发现和集群一致性。以下是详细讲解&#xff1a; 1. 数据模型 Nacos 的数据模型主要分为两类&#xff1a; 配置数据&#xff1a;存储应用的配置信息&#xff0c;如数据库连接、缓存配置等。 服务数据…

HTTPS 与 HTTP 的区别在哪?

HTTP与HTTPS作为互联网数据传输的核心协议&#xff0c;其通信机制与安全特性深刻影响着现代网络应用的可靠性与用户体验。本文将解析两者的通信流程、安全机制及核心差异。 一、HTTP的通信机制 先来看看HTTP是什么吧。 HTTP基于TCP/IP协议栈&#xff0c;采用经典客户端-服务…