--top 10 sql
SELECT * FROM (SELECT b.username username, a.disk_reads / DECODE (a.executions, 0, 1, a.executions) rds_exec_ratio, a.sql_text STATEMENT FROM v$sqlarea a, dba_users b WHERE a.parsing_user_id = b.user_id AND b.username = 'ZYK' ORDER BY rds_exec_ratio DESC) WHERE ROWNUM < 11 ORDER BY rds_exec_ratio DESC
1. 识别’低效执行’的SQL语句
用下列SQL工具找出低效SQL:
SELECT EXECUTIONS , DISK_READS, BUFFER_GETS, ROUND((BUFFER_GETS-DISK_READS)/BUFFER_GETS,2) Hit_radio, ROUND(DISK_READS/EXECUTIONS,2) Reads_per_run, SQL_TEXT FROM V$SQLAREA WHERE EXECUTIONS>0 AND BUFFER_GETS > 0 AND (BUFFER_GETS-DISK_READS)/BUFFER_GETS < 0.8 ORDER BY 4 DESC;
2.查找单条语句的内存占用率
alter system set pga_aggregate_target=10m alter system set workarea_size_policy=auto; select distinct * from a where rownum<500000; select sql_text,operation_type,policy,(last_memory_used/1024/1024), last_execution,last_tempseg_size from v$sql i,v$sql_workarea a where i.hash_value=a.hash_value and sql_text='select distinct * from a where rownum<500000';
Top 10 by Buffer Gets:
set linesize 100 set pagesize 100 SELECT * FROM (SELECT substr(sql_text,1,40) sql, buffer_gets, executions, buffer_gets/executions "Gets/Exec", hash_value,address FROM V$SQLAREA WHERE buffer_gets > 10000 ORDER BY buffer_gets DESC) WHERE rownum <= 10 ;
Top 10 by Physical Reads:
set linesize 100 set pagesize 100 SELECT * FROM (SELECT substr(sql_text,1,40) sql, disk_reads, executions, disk_reads/executions "Reads/Exec", hash_value,address FROM V$SQLAREA WHERE disk_reads > 1000 ORDER BY disk_reads DESC) WHERE rownum <= 10 ;
Top 10 by Executions:
set linesize 100 set pagesize 100 SELECT * FROM (SELECT substr(sql_text,1,40) sql, executions, rows_processed, rows_processed/executions "Rows/Exec", hash_value,address FROM V$SQLAREA WHERE executions > 100 ORDER BY executions DESC) WHERE rownum <= 10 ;
Top 10 by Parse Calls:
set linesize 100 set pagesize 100 SELECT * FROM (SELECT substr(sql_text,1,40) sql, parse_calls, executions, hash_value,address FROM V$SQLAREA WHERE parse_calls > 1000 ORDER BY parse_calls DESC) WHERE rownum <= 10 ;
Top 10 by Sharable Memory:
set linesize 100 set pagesize 100 SELECT * FROM (SELECT substr(sql_text,1,40) sql, sharable_mem, executions, hash_value,address FROM V$SQLAREA WHERE sharable_mem > 1048576 ORDER BY sharable_mem DESC) WHERE rownum <= 10 ;
Top 10 by Version Count:
set linesize 100 set pagesize 100 SELECT * FROM (SELECT substr(sql_text,1,40) sql, version_count, executions, hash_value,address FROM V$SQLAREA WHERE version_count > 20 ORDER BY version_count DESC) WHERE rownum <= 10 ;
Top 10 by Buffer Gets: 最耗缓存
1
2
3
4
5
6
7
8
9
10
11
|
set linesize 100
set pagesize 100
SELECT * FROM
( SELECT SQL_FULLTEXT sql,
buffer_gets, executions, buffer_gets/executions "Gets/Exec" ,
hash_value,address,LAST_ACTIVE_TIME
FROM V$SQLAREA
WHERE buffer_gets > 10000
ORDER BY buffer_gets DESC )
WHERE rownum <= 10
; |
Top 10 by Physical Reads: 最多物理读取
1
2
3
4
5
6
7
8
9
10
11
|
set linesize 100
set pagesize 100
SELECT * FROM
( SELECT SQL_FULLTEXT sql,
disk_reads, executions, disk_reads/executions "Reads/Exec" ,
hash_value,address,LAST_ACTIVE_TIME
FROM V$SQLAREA
WHERE disk_reads > 1000
ORDER BY disk_reads DESC )
WHERE rownum <= 10
; |
Top 10 by Executions: 最多执行
1
2
3
4
5
6
7
8
9
10
11
|
set linesize 100
set pagesize 100
SELECT * FROM
( SELECT substr(sql_text,1,40) sql,SQL_FULLTEXT,
executions, rows_processed, rows_processed/executions "Rows/Exec" ,
hash_value,address,LAST_ACTIVE_TIME
FROM V$SQLAREA
WHERE executions > 100
ORDER BY executions DESC )
WHERE rownum <= 10
; |
Top 10 by Parse Calls: 最多软解析
1
2
3
4
5
6
7
8
9
10
11
|
set linesize 100
set pagesize 100
SELECT * FROM
( SELECT substr(sql_text,1,40) sql,
SQL_FULLTEXT, parse_calls, executions, hash_value,address,LAST_ACTIVE_TIME
FROM V$SQLAREA
WHERE parse_calls > 1000
ORDER BY parse_calls DESC )
WHERE rownum <= 10
; |
Top 10 by Sharable Memory: 最耗内存
1
2
3
4
5
6
7
8
9
10
|
set linesize 100
set pagesize 100
SELECT * FROM
( SELECT substr(sql_text,1,40) sql,
sharable_mem, executions, hash_value,address,LAST_ACTIVE_TIME
FROM V$SQLAREA
WHERE sharable_mem > 1048576
ORDER BY sharable_mem DESC )
WHERE rownum <= 10
; |
Top 10 by Version Count:
1
2
3
4
5
6
7
8
9
10
|
set linesize 100
set pagesize 100
SELECT * FROM
( SELECT substr(sql_text,1,40) sql,
version_count, executions, hash_value,address
FROM V$SQLAREA
WHERE version_count > 20
ORDER BY version_count DESC )
WHERE rownum <= 10
;
|
相关推荐
Oracle 中的 Top SQL 优化技术总结 Oracle 数据库中的 Top SQL 优化是数据库管理员和开发者最关心的问题之一。Top SQL 是指那些对数据库性能影响最大、资源消耗最多的 SQL 语句。这些 SQL 语句可能会导致数据库...
本文档主要分为六大部分:服务器运行状况分析、必备工具、性能调整、TOPSQL 分析、WCM 信息检查和 Oracle 基本配置。 服务器运行状况分析 在性能调整之前,需要了解服务器的运行状况,包括 CPU 和内存情况、线程...
- **增强的TopSQL分析功能**: 提供SQL语句的全面视图,帮助用户找到消耗资源最多的SQL语句。这对于优化查询性能至关重要。 - **分析跟踪文件**: 提供Oracle跟踪文件内容的可视化视图,使用户能够了解Oracle如何处理...
Spotlight For Oracle是一款强大的Oracle数据库性能监控和分析工具,它能帮助数据库管理员对Oracle数据库进行实时监控、问题定位、性能优化等工作。本文档将详细介绍Spotlight for Oracle的安装使用、功能介绍以及...
- **TopSQL**:这是一个Web界面工具,用于识别性能较差的SQL语句。它根据`V$SQL`视图中的数据来工作。 - **TopSessions**:同样是一个Web工具,用于查找消耗大量资源的会话。 #### 五、其他优化技术 - **调整共享池...
##### 3.2 按执行排序的所有TopSQL语句 通过对数据库性能数据的分析,可以列出所有按照执行频率、资源消耗等指标排序的Top SQL语句列表。对于这些SQL语句,需要进一步分析其性能问题,并制定相应的优化方案。 ####...
实例监控关注数据库实例的参数配置、组件状态(如redo、undo、controlfile)、表空间和会话信息,以及执行效率高的TOPSQL和系统阻塞问题。schema监控则专注于权限和对象,例如索引、分区表和大字段。通过这些监控...
DBA的工作不再局限于传统的数据库管理,他们需要熟悉业务系统及其外围系统,理解数据库瓶颈,并利用各种工具进行性能调优,如Topsql和db file。同时,随着技术的发展,DBA还需要掌握如Times ten这样的高速缓存技术,...
2. **SQL分析**:通过TOPSQL-ASH、TOPSQL-AWR和TOPSQL-实时模块,深入分析SQL语句的执行情况,包括执行计划、历史和实时性能,帮助定位性能瓶颈。 3. **AWR报告**:自动收集和分析Automatic Workload Repository ...
- **性能调优**:熟悉数据库性能监控和优化技巧,如对topsql的分析和调优。 - **项目管理**:参与过多种项目,如数据库升级、CBO转换、Data Guard和Logical Standby转换,以及硬件评估和升级。 - **系统设计与...
当面对Oracle、MySQL、DB2、SQL Server、PostgreSQL、OceanBase等多种数据库时,由于每种数据库的语法差异,监控和优化SQL变得复杂。TopSQL是指执行频繁、耗时较长或消耗资源多的SQL语句,它们可能是性能瓶颈或潜在...
- **TopSQL**:依据特定条件筛选library cache中的SQL语句,通过对SQL的排序和分析,识别出对系统性能影响最大的查询,为优化工作提供方向。 - **Activity**:提供全面的活动监控,包括等待事件、锁等待、事务状态...
此外,EasyDB还提供了高性能的数据库问题发现和优化工具,如TopSQL,通过对SQL语句的多维度分析,帮助DBA及时定位并优化性能瓶颈。一键切换、一键备份和一键体检等功能简化了日常运维工作,而监控告警机制则可以快速...
3. 使用TOPSQL工具找出系统中最耗时的SQL语句。 4. 针对性语句搜索,定位问题SQL的具体位置。 5. 后台存储过程跟踪,了解PLSQL代码执行情况。 6. 性能监控,如使用Oracle的AWR报告和ASH数据,持续评估系统性能。 ...
OceanBase Tunning Advisor (OTA) 是智能诊断工具,通过TopSQL、索引建议和SQL Review等方法提供诊断建议。利用规则和机器学习决策树进行根因分析,帮助用户快速定位并解决性能问题。在发生故障时,OTA还能提供...
同时,通过严格的测试和调整,CPU和IO资源在业务高峰期和账期能够保持稳定,ORACLE数据库在日常维护外实现了零停机,重大调整也能在调整前进行严密测试,在调整中由专家保障,在调整后进行实时跟踪。 最后,江苏...
- **TopSQL性能变化趋势图**:针对最频繁执行的SQL语句进行性能分析,找出执行效率较低的查询语句。 #### 五、Quest PA的其他特色功能 除了上述核心功能外,Quest PA还具备以下特色: - **Session级跟踪与分析**:...
- **TopSQL**: 分析最耗时的SQL语句,并提供优化建议。 - **索引建议**: 基于查询模式推荐合适的索引策略。 - **SQL Review**: 对SQL语句进行审查,检查潜在的问题和风险。 **根因分析** - **规则**: 利用预...
目前已经支持MySQL、Oracle、MongoDB、Redis数据库的全面监控. Lepus可以在数据库出现故障或者潜在性能问题时,根据用户设置及时将数据库的异常进行报警通知到数据库管理员进行处理和优化,帮助企业解决数据库性能监控...