SQL常用语句

清空共享内存 :alter system flush shared_pool

下面的SQL查询占用share pool 内存大于10m的sql;

select substr(sql_text,1,100) "stmt",count(*) ,sum(sharable_mem),sum(users_opening),sum(executions) from v$sql group by substr(sql_text,1,100) having sum(sharable_mem)>10000000;

查询share pool的空闲内存;

select a.* ,round(a.bytes/1024/1024,2) M from v$sgastat a where a.name='free memory';

查询version count过高的语句

select address,sql_id,hash_value,version_count,users_opening,users_executing,sql_text from v$sqlarea where version_count>10;

获取PGA,SGA使用情况:

select name,total,round(total-free,2) used,round(free,2) free,round((total-free)/total*100,2) pctused from (select 'SGA' name,(select sum(value/1024/1024) from vsga) total,(select sum(bytes/1024/1024) from vsgastat where name='free memory')free from dual) union select name,total,round(used,2) used,round(total-used,2) free,round(used/total*100,2)pctused from(select 'PGA' name,(select value/1024/1024 total from vpgastat where name='aggregate PGA target parameter')total,(select value/1024/1024 used from vpgastat where name='total PGA allocated')used from dual);

获取shared pool 使用情况;

select name ,round(total,2) total,round((total-free),2) used,round(free,2) free,round((total-free)/total*100,2) pctused from(select 'Shared pool' name,(select sum(bytes/1024/1024) from vsgastat where pool='shared pool') total, (select bytes/1024/1024 from vsgastat where name='free memory' and pool='shared pool')free from dual)

查询使用频率最高的5个查询sql;

select sql_text,executions from (select sql_text,executions,rank() over (order by executions desc) exec_rank from v$sql) where exec_rank <=5;

查看cpu使用率最高的sql;

select * from (select sql_text,sql_id,cpu_time from v$sql order by cpu_time desc) where rownum<=10 order by rownum asc;

消耗磁盘最多的5个sql;

select disk_reads,sql_text from (select sql_text,disk_reads,dense_rank() over (order by disk_reads desc) disk_reads_rank from v$sql) where disk_reads_rank<=5;

找出需要大量缓冲读取操作的查询:

select buffer_gets,sql_text from (select sql_text,buffer_gets,dense_rank() over (order by buffer_gets desc) buffer_gets_rank from v$sql) where buffer_gets_rank<=5;

查询数据字典缓存的命中率和缺失率;

select round(((1-sum(getmisses)/(sum(gets)+sum(getmisses))))*100,3) "HR" ,round(sum(getmisses)/sum(gets)*100,3) "MR" from v$rowcache where gets+getmisses>0;

相关推荐
AIgorithmGEEK4 小时前
MySQL 索引全解(下):建、查、删实战与知识速查表
数据库·mysql·b+树·索引
唠点键盘之外的6 小时前
26 向量数据库实战:从 0 搭一条能用的检索链路(pgvector + Spring AI)
数据库·人工智能·spring
云和恩墨6 小时前
数据库监控简史:监控不止于告警——从图表大爆发到健康管理闭环
数据库
ly76897 小时前
MongoDB 事务开销实测:快照隔离下的写冲突、重试与分片事务边界
数据库·mongodb·事务·分片集群·快照隔离·写冲突
豆角焖肉7 小时前
Spring AOP 自定义注解实现系统操作日志
数据库·自定义注解·springaop·操作日志·aop 切面
金伟API10248 小时前
不会写复杂SQL怎么办?
数据库·sql
执笔为剑8 小时前
2.1.2-1、V8R3迁移到V8R6-Oracle兼容特性
数据库
geovindu9 小时前
sql:Search-Optimized SQL Queries using mysql 9.0
android·数据库·sql·mysql·数据库开发·数据库架构
for_ever_love__9 小时前
MySQL SELECT 与 WHERE 优化实战:可搜索条件、联合索引与执行计划
数据库·mysql·oracle·select·where·条件优化·查询优化技巧
2501_931803759 小时前
MySQL 锁机制详解
数据库·mysql