`
tooby
  • 浏览: 117319 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Oracle TopSQL

 
阅读更多

--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中的topsql[总结].pdf

    Oracle 中的 Top SQL 优化技术总结 Oracle 数据库中的 Top SQL 优化是数据库管理员和开发者最关心的问题之一。Top SQL 是指那些对数据库性能影响最大、资源消耗最多的 SQL 语句。这些 SQL 语句可能会导致数据库...

    spotlight on oracle性能监控教程

    - **增强的TopSQL分析功能**: 提供SQL语句的全面视图,帮助用户找到消耗资源最多的SQL语句。这对于优化查询性能至关重要。 - **分析跟踪文件**: 提供Oracle跟踪文件内容的可视化视图,使用户能够了解Oracle如何处理...

    Spotlight For Oracle使用说明

    Spotlight For Oracle是一款强大的Oracle数据库性能监控和分析工具,它能帮助数据库管理员对Oracle数据库进行实时监控、问题定位、性能优化等工作。本文档将详细介绍Spotlight for Oracle的安装使用、功能介绍以及...

    Oracle数据库性能分析优化实践分析

    ##### 3.2 按执行排序的所有TopSQL语句 通过对数据库性能数据的分析,可以列出所有按照执行频率、资源消耗等指标排序的Top SQL语句列表。对于这些SQL语句,需要进一步分析其性能问题,并制定相应的优化方案。 ####...

    浅谈寿险公司Oracle数据库运维监控体系.pdf

    实例监控关注数据库实例的参数配置、组件状态(如redo、undo、controlfile)、表空间和会话信息,以及执行效率高的TOPSQL和系统阻塞问题。schema监控则专注于权限和对象,例如索引、分区表和大字段。通过这些监控...

    ocm 职业规划以及ocm宣讲会

    DBA的工作不再局限于传统的数据库管理,他们需要熟悉业务系统及其外围系统,理解数据库瓶颈,并利用各种工具进行性能调优,如Topsql和db file。同时,随着技术的发展,DBA还需要掌握如Times ten这样的高速缓存技术,...

    智能DBA.pdf

    2. **SQL分析**:通过TOPSQL-ASH、TOPSQL-AWR和TOPSQL-实时模块,深入分析SQL语句的执行情况,包括执行计划、历史和实时性能,帮助定位性能瓶颈。 3. **AWR报告**:自动收集和分析Automatic Workload Repository ...

    数据库工程师简历模板下载.doc

    - **性能调优**:熟悉数据库性能监控和优化技巧,如对topsql的分析和调优。 - **项目管理**:参与过多种项目,如数据库升级、CBO转换、Data Guard和Logical Standby转换,以及硬件评估和升级。 - **系统设计与...

    大规模多种数据库热点SQL质量分析.pdf

    当面对Oracle、MySQL、DB2、SQL Server、PostgreSQL、OceanBase等多种数据库时,由于每种数据库的语法差异,监控和优化SQL变得复杂。TopSQL是指执行频繁、耗时较长或消耗资源多的SQL语句,它们可能是性能瓶颈或潜在...

    Spotlight使用说明

    - **TopSQL**:依据特定条件筛选library cache中的SQL语句,通过对SQL的排序和分析,识别出对系统性能影响最大的查询,为优化工作提供方向。 - **Activity**:提供全面的活动监控,包括等待事件、锁等待、事务状态...

    企业级云数据库管控架构设计.pptx

    此外,EasyDB还提供了高性能的数据库问题发现和优化工具,如TopSQL,通过对SQL语句的多维度分析,帮助DBA及时定位并优化性能瓶颈。一键切换、一键备份和一键体检等功能简化了日常运维工作,而监控告警机制则可以快速...

    PLSQL程序优化和性能分析方法

    3. 使用TOPSQL工具找出系统中最耗时的SQL语句。 4. 针对性语句搜索,定位问题SQL的具体位置。 5. 后台存储过程跟踪,了解PLSQL代码执行情况。 6. 性能监控,如使用Oracle的AWR报告和ASH数据,持续评估系统性能。 ...

    OceanBase公有云配套产品概述.pptx

    OceanBase Tunning Advisor (OTA) 是智能诊断工具,通过TopSQL、索引建议和SQL Review等方法提供诊断建议。利用规则和机器学习决策树进行根因分析,帮助用户快速定位并解决性能问题。在发生故障时,OTA还能提供...

    戴建东 - 江苏移动NGCRM系统SQL审核实践

    同时,通过严格的测试和调整,CPU和IO资源在业务高峰期和账期能够保持稳定,ORACLE数据库在日常维护外实现了零停机,重大调整也能在调整前进行严密测试,在调整中由专家保障,在调整后进行实时跟踪。 最后,江苏...

    Quest数据库管理方案

    - **TopSQL性能变化趋势图**:针对最频繁执行的SQL语句进行性能分析,找出执行效率较低的查询语句。 #### 五、Quest PA的其他特色功能 除了上述核心功能外,Quest PA还具备以下特色: - **Session级跟踪与分析**:...

    OceanBase公有云配套产品概述.pdf

    - **TopSQL**: 分析最耗时的SQL语句,并提供优化建议。 - **索引建议**: 基于查询模式推荐合适的索引策略。 - **SQL Review**: 对SQL语句进行审查,检查潜在的问题和风险。 **根因分析** - **规则**: 利用预...

    Lepus数据库企业监控系统-其他

    目前已经支持MySQL、Oracle、MongoDB、Redis数据库的全面监控. Lepus可以在数据库出现故障或者潜在性能问题时,根据用户设置及时将数据库的异常进行报警通知到数据库管理员进行处理和优化,帮助企业解决数据库性能监控...

Global site tag (gtag.js) - Google Analytics