本视图持续跟踪所有shared pool中的共享cursor,在shared pool中的每一条SQL语句都对应一列。本视图在分析SQL语句资源使用方面非常重要。
V$SQLAREA中的信息列
HASH_VALUE:SQL语句的Hash值。
ADDRESS:SQL语句在SGA中的地址。
这两列被用于鉴别SQL语句,有时,两条不同的语句可能hash值相同。这时候,必须连同ADDRESS一同使用来确认SQL语句。
PARSING_USER_ID:为语句解析第一条CURSOR的用户
VERSION_COUNT:语句cursor的数量
KEPT_VERSIONS:
SHARABLE_MEMORY:cursor使用的共享内存总数
PERSISTENT_MEMORY:cursor使用的常驻内存总数
RUNTIME_MEMORY:cursor使用的运行时内存总数。
SQL_TEXT:SQL语句的文本(最大只能保存该语句的前1000个字符)。
MODULE,ACTION:使用了DBMS_APPLICATION_INFO时session解析第一条cursor时的信息
V$SQLAREA中的其它常用列
SORTS: 语句的排序数
CPU_TIME: 语句被解析和执行的CPU时间
ELAPSED_TIME: 语句被解析和执行的共用时间
PARSE_CALLS: 语句的解析调用(软、硬)次数
EXECUTIONS: 语句的执行次数
INVALIDATIONS: 语句的cursor失效次数
LOADS: 语句载入(载出)数量
ROWS_PROCESSED: 语句返回的列总数
V$SQLAREA中的连接列Column View Joined Column(s)
HASH_VALUE, ADDRESS V$SESSION SQL_HASH_VALUE, SQL_ADDRESS
HASH_VALUE, ADDRESS V$SQLTEXT, V$SQL, V$OPEN_CURSOR HASH_VALUE, ADDRESS
SQL_TEXT V$DB_OBJECT_CACHE NAME
示例:
1.查看消耗资源最多的SQL:
SELECT hash_value, executions, buffer_gets, disk_reads, parse_calls
FROM V$SQLAREA
WHERE buffer_gets > 10000000 OR disk_reads > 1000000
ORDER BY buffer_gets + 100 * disk_reads DESC;
2.查看某条SQL语句的资源消耗:
SELECT hash_value, buffer_gets, disk_reads, executions, parse_calls
FROM V$SQLAREA
WHERE hash_Value = 228801498 AND address = hextoraw('CBD8E4B0');
分享到:
相关推荐
【学习动态性能表(11)--v$latch$v$latch_children】主要关注Oracle数据库中的动态性能视图,尤其是关于latch这一关键概念的监控和分析。latch是一种轻量级的锁定机制,用于保护SGA(System Global Area)中的共享...
学习动态性能表 第一篇--v$sysstat 2007.5.23 按照OracleDocument中的描述,v$sysstat存储自数据库实例运行那刻起就开始累计全实例(instance-wide)的资源使用情况。 类似于v$sesstat,该视图存储下列的统计信息...
4. 使用 V$SQLAREA 视图查找分析的次数太多,执行的次数太少的 SQL。可以使用以下 SQL 语句查找: ``` set pagesize 600; set linesize 120; select substr(sql_text,1,80) "sql", count(*), sum(executions) ...
- **执行计划分析**:通过EXPLAIN PLAN或V$SQLAREA等视图分析SQL执行路径,找出性能瓶颈。 - **绑定变量**:使用绑定变量可以减少硬解析,提高SQL执行效率。 3. **Oracle缓存与缓冲区管理** - **Buffer Cache**...
6. **性能监控和诊断**:Oracle提供了一系列工具和视图,如V$视图、ASH、AWR、SQL Trace和10053事件,用于监控和诊断性能问题。通过对这些信息的分析,可以定位慢查询的原因,并制定相应的优化策略。 7. **CBO与RBO...
通过分析`V$视图`,DBA可以识别性能瓶颈,比如通过`V$SESSION_WAIT`查看会话等待事件,`V$SQLAREA`和`V$SQL`用于找出执行效率低下的SQL语句。`AWR`(Automatic Workload Repository)和`ASH`(Active Session ...
- **使用V$SQLAREA视图**:通过查看V$SQLAREA视图中的统计信息(如EXECUTIONS、DISK_READS、BUFFER_GETS等),可以了解SQL语句的执行效率,进而找出性能瓶颈所在。 #### 11. 优化索引使用 - **合理设计索引**:对于...
在FROM后面的表中的列表顺序会对SQL执行性能影响,在没有索引及ORACLE没有对表进行统计分析的情况下ORACLE会按表出现的顺序进行链接,由此因为表的顺序不对会产生十分耗服务器资源的数据交叉。(注:如果对表进行...
通过`v$process`、`v$session`以及`v$sqlarea`三个视图的联合查询,可以获取到用户的操作系统进程ID(SPID)、SID、序列号、用户名、程序以及SQL语句文本等信息。这对于追踪特定用户的活动非常有帮助。 以上SQL语句...
- **v$视图**:Oracle提供大量v$视图来监控数据库状态,如v$sqlarea, v$session, v$buffer_cache等。 - **AWR和ASH报告**:自动工作区内存(AWR)提供数据库的整体性能快照,活动会话历史(ASH)记录实时会话信息。 -...
`v$sqlarea`视图可以识别大匿名块。 9. **Dictionary Cache优化**:避免Dictionary Cache Misses至关重要。可以通过调整`shared_pool_size`间接调整其大小。监控Misses百分比,总体应低于15%。 10. **监控和调整**...
FROM V$SQLAREA WHERE EXECUTIONS > 0 AND BUFFER_GETS > 0 AND (BUFFER_GETS - DISK_READS) / BUFFER_GETS ORDER BY 4 DESC; ``` #### 17. 优化索引使用 合理的索引策略对于提高查询性能至关重要。Oracle使用一...
2. **不借助第三方工具,怎样查看 SQL 的执行计划** - 使用 `SET AUTOTRACE ON` 命令开启自动跟踪。 - 执行 `EXPLAIN PLAN SET STATEMENT_ID = '&item_id' FOR &sql;` 来设置执行计划的跟踪。 - 通过 `SELECT * ...
这些知识点涵盖了SQL区域(SQL Area)与共享池(Shared Pool)的关系、图书馆缓存(Library Cache)的作用以及如何评估SQL区域的性能等方面。 #### SQL区域与共享池的关系 SQL区域主要指的是存储SQL语句及其相关...
SELECT sql_text FROM v$sql WHERE disk_reads > 1000 OR (executions > 0 AND buffer_gets / executions > 30000); ``` - **解释**: - 从 `v$sql` 视图中获取 SQL 语句文本。 - 使用条件 `disk_reads > 1000` ...
7. **监控和诊断工具**:例如,使用V$sqlarea和V$sqltext来查看和分析SQL语句,通过sid和serial#追踪会话与进程,以及通过request_id和oracle_process_id等信息定位问题。 通过以上这些方法和步骤,Oracle应用产品...
#### 十六、使用 V$SQLAREA 表监控 SQL 性能 通过查询 V$SQLAREA 视图,可以监控 SQL 语句的执行情况,从而识别性能瓶颈。 **建议:** - 定期检查 SQL 执行次数、磁盘读取次数等指标。 - 分析执行计划,确定是否...
4. **定位资源消耗大的SQL**:可以查询`v$sql`视图,通过`disk_reads`和`buffer_gets`等指标来找出那些执行效率低下的SQL语句,例如`select sql_text from v$sqlwhere disk_reads > 1000 or (executions > 0 and ...
- SQL优化是数据库性能提升的重要环节,包括编写高效的SQL语句、使用索引、避免全表扫描等。 - EXPLAIN PLAN可以分析SQL执行计划,理解执行过程和成本。 -绑定变量的使用可以减少硬解析,提高执行效率。 3. **...