首页 > 数据库 >sql调优常用脚本

sql调优常用脚本

时间:2024-12-30 09:01:45浏览次数:6  
标签:脚本 dbms set -- 调优 sql id select

--定位SQL
---查询当前正在执行的SQL
select 
INST_ID
,sid
,serial#
,USERNAME
,STATUS
,MACHINE
,SQL_ID
,EVENT
,(sysdate-LOGON_TIME)*86400 as "s"
,LAST_CALL_ET
 from gv$session where status='ACTIVE' and username is not null;

--会话模式:
alter session set current_schema=&user_name;

--获取SQL的执行计划
set linesize 500
set termout off
alter session set statistics_level = all;
exec -sql 
select * from table(dbms_xplan.display_cursor(null,null,'ADVANCED ALLSTATS LAST PEEKED_BINDS'));
select * from table(dbms_xplan.display_cursor('&sql_id'));
select * from table(dbms_xplan.display_cursor('6r5vz5gcm0bb0','','typical'));
select * from table(dbms_xplan.display_awr('6r5vz5gcm0bb0'));

--sql_monitor
set long 10000000
set longchunksize 10000000
set linesize 200
select dbms_sqltune.report_sql_monitor(sql_id => '&sqlid', type => 'TEXT') as report from dual;

--最消耗时间的执行计划步骤
select 
inst_id,sql_plan_hash_value,sql_plan_line_id,
sql_plan_operation,sql_plan_options,event,
count(*) cnt
 from gv$active_session_history 
where sql_id='6r5vz5gcm0bb0' and 
sample_time >to_date('2019-07-29 17:01','yyyy-mm-dd hh24:mi') 
and sample_time <to_date('2019-07-29 18:01','yyyy-mm-dd hh24:mi')
  group by 
inst_id,sql_plan_hash_value,sql_plan_line_id,
sql_plan_operation,sql_plan_options,event
 order by count(*) ;
 
--查询SQL执行时间
select plan_hash_value,instance_number,snap_id,round(elapsed_time_delta/1e6,3) ela,
(select to_char(begin_interval_time,'mm-dd hh24:mi')||'--'||to_char(end_interval_time,'hh24:mi')
  from dba_hist_snapshot where  from dba_hist_sqlstat where sql_id='xx' order by snap_id;
  
--确认表的用户
select owner,table_name from dba_tables where table_name=upper('xx');

--查询表相关的索引列信息
select index_owner,index_name,table_name,column_name,column_position from dba_ind_columns where table_name='xx' order by index_name,column_position;

--查询数据库表的统计信息
select * from dba_tab_col_statistics where table_name='xx' order by column_name;

--GET_DDL
set long 10000 pagesize 100\n
select dbms_metadata.get_ddl('&OBJECT_TYPE','&OBJECT_NAME','&OBJECT_OWNER') ddl_text from dual;

 

标签:脚本,dbms,set,--,调优,sql,id,select
From: https://www.cnblogs.com/gdjgs/p/18639963

相关文章

  • SQL 实战:基于经纬度的距离计算与位置查询
    在位置服务(LBS)系统中,基于地理位置查询和距离计算是核心功能之一。例如:查找附近的商铺、加油站或医院。计算两点之间的实际直线距离。筛选出指定范围内的用户或设备位置。MySQL提供了多种方式实现地理位置查询,包括ST_Distance_Sphere()和经典的Haversine公式。本文将......
  • JVM实战—4.JVM垃圾回收器的原理和调优
    大纲1.JVM的新生代垃圾回收器ParNew如何工作2.JVM老年代垃圾回收器CMS是如何工作的3.线上部署系统时如何设置垃圾回收相关参数4.新生代垃圾回收参数如何优化5.老年代的垃圾回收参数如何优化6.问题汇总 1.JVM的新生代垃圾回收器ParNew如何工作(1)JVM的核心运行原理梳理点......
  • 【MySQL】表的约束
    表的约束一、介绍二、空属性1、介绍2、使用场景3、注意事项4、示例三、默认值约束(DEFAULT)四、列描述(COMMENT)1、介绍2、注意事项3、示例五、ZEROFILL1、介绍2、应用场景3、示例六、主键约束(PRIMARYKEY)1、介绍2、语法3、示例七、自动递增约束(AUTO_INCREMENT)1、介绍2、......
  • SQL注入
    SQL注入基于web程序中将用户输入数据未经过滤直接带入数据库中查询,导致可以拼接执行构造的SQL语句。在以sqlilabs靶场的第一关为例需要了解的:在url中?通常表示传递参数进去之后是这个样子按照要求输入idhttp://127.0.0.1/sqlilabs/Less-1/?id=1输入之后访问得到一个用......
  • JAVA连接MYSQL数据库实现查询
    准备驱动(1)查看数据库版本号(2)根据数据库版下载对应版本驱动驱动下载网址:MySQL::DownloadMySQLConnector/J(ArchivedVersions)若没有则选择接近自己版本的低版本。说明:......
  • 【Nginx应用】nginx stream模块代理MySQL
    其实使用开发机器的nginx一样可以代理数据库,从而实现办公网访问数据库。一、stream模块介绍Nginx的TCP/UDP代理功能的模块分为核心模块和辅助模块。核心模块stream需要在编译配置时增加“--with-stream”参数进行编译【但是我测试的时候,我的开发机并不是这么安装的,直接yumiins......
  • PostgreSQL中FIRST_VALUE、LAST_VALUE、LAG 和 LEAD是窗口函数,允许返回在数据集的特
    在PostgreSQL中,FIRST_VALUE、LAST_VALUE、LAG和LEAD是窗口函数(windowfunctions),它们允许你在数据集的特定窗口(或分区)内访问行的相对位置。以下是对这些函数的详细解释和用法:1.FIRST_VALUEFIRST_VALUE函数返回在指定窗口或分区内的第一行的值。它常用于获取每个组的起......
  • PostgreSQL 数据库连接
    title:PostgreSQL数据库连接date:2024/12/29updated:2024/12/29author:cmdragonexcerpt:PostgreSQL是一款功能强大的开源关系数据库管理系统,在现代应用中广泛应用于数据存储和管理。连接到数据库是与PostgreSQL进行交互的第一步,这一过程涉及到多个方面,包括连接的基本......
  • 如何正确开启3306端口以允许外部访问MySQL数据库
    问题描述:我正在尝试配置云服务器上的MySQL数据库,使其能够接受来自外部网络的连接请求。但是,当我试图开放3306端口时遇到了困难。请问应该怎样正确地开启这个端口?需要注意哪些事项?解决方案:您好,针对您想要开启3306端口以允许外部访问MySQL数据库的需求,我们整理了一份详细的指南供......
  • 如何解决MySQL数据库导入时出现500错误?
    MySQL数据库在导入过程中出现500错误通常是由于多种原因引起的。以下是详细的排查步骤和解决方案,帮助您顺利导入SQL文件:检查文件大小和服务器配置:如果SQL文件过大,可能会导致超时或内存不足的问题。您可以尝试分批导入较小的SQL文件,或者增加服务器的内存和超时设置。对于较大......