【每日一摩斯】-Shared Pool优化和Library Cache Latch冲突优化 (1523934.1)-系列3
来源:互联网 发布:catia v5r21软件下载 编辑:程序博客网 时间:2024/05/31 18:32
减轻Shared Pool负载
Parse一次并执行多次
在OLTP类型的应用中,最好的方法是只让一个语句被解析一次,然后保持这个cursor的打开状态,在需要的时候重复执行它。这样做的结果是每个语句只被Parse了一次(不管是soft parse还是hard parse)。显然,总会有些语句很少被执行,所以作为一个打开的cursor维护它们是一种浪费。
请注意一个session最多只能使用参数:open_cursors定义的cursor数,保持cursor打开会增加总体open cursors的数量。
OCI中开发者能直接控制cursor,在预编译器中,HOLD_CURSOR参数控制cursor是否被保持打开。
消除 Literal SQL
如果你有一个现有的应用程序,你可能没法消除所有的literal SQL,但是你还是得设法消除其中一部分会产生问题的语句。从V$SQLAREA视图可能找到适合转为使用绑定变量的语句。下面的查询列出SGA中有大量相似语句的SQL:
SELECT substr(sql_text,1,40) "SQL",
count(*) ,
sum(executions) "TotExecs"
FROM v$sqlarea
WHERE executions < 5
GROUP BY substr(sql_text,1,40)
HAVING count(*) > 30
ORDER BY 2
;
在10g以上的版本可以用下面的语句:
SET pages 10000SET linesize 250
column FORCE_MATCHING_SIGNATURE format 99999999999999999999999
WITH c AS
(SELECT FORCE_MATCHING_SIGNATURE,
COUNT(*) cnt
FROM v$sqlarea
WHERE FORCE_MATCHING_SIGNATURE!=0
GROUP BY FORCE_MATCHING_SIGNATURE
HAVING COUNT(*) > 20
)
,
sq AS
(SELECT sql_text ,
FORCE_MATCHING_SIGNATURE,
row_number() over (partition BY FORCE_MATCHING_SIGNATURE ORDER BY sql_id DESC) p
FROM v$sqlarea s
WHERE FORCE_MATCHING_SIGNATURE IN
(SELECT FORCE_MATCHING_SIGNATURE
FROM c
)
)
SELECT sq.sql_text ,
sq.FORCE_MATCHING_SIGNATURE,
c.cnt "unshared count"
FROM c,
sq
WHERE sq.FORCE_MATCHING_SIGNATURE=c.FORCE_MATCHING_SIGNATURE
AND sq.p =1
ORDER BY c.cnt DESC;
下面的查询可以帮我们找到Invalidation较多的cursor:
invalidations
FROM v$sqlarea
ORDER BY invalidations DESC;
- 【每日一摩斯】-Shared Pool优化和Library Cache Latch冲突优化 (1523934.1)-系列3
- 【每日一摩斯】-Shared Pool优化和Library Cache Latch冲突优化 (1523934.1)-系列1
- 【每日一摩斯】-Shared Pool优化和Library Cache Latch冲突优化 (1523934.1)-系列2
- 【每日一摩斯】-Shared Pool优化和Library Cache Latch冲突优化 (1523934.1)-系列4
- 【每日一摩斯】-Shared Pool优化和Library Cache Latch冲突优化 (1523934.1)-系列5
- 【每日一摩斯】-Shared Pool优化和Library Cache Latch冲突优化 (1523934.1)-系列6
- 故障排除:Shared Pool优化和Library Cache Latch冲突优化 (文档 ID 1523934.1)
- oracle_Shared Pool优化和Library Cache Latch冲突优化
- Library Cache Latch和Shared Pool Latch
- shared pool latch和library cache latch
- library cache —— latch: shared pool
- 共享池之六:shared pool latch/ library cache latch /lock pin 简介
- latch: shared pool latch: library cache 诊断脚本(latchprofx.sql,latchprof.sql)
- _library_cache_advice和latch:shared pool、latch:shared pool simulator
- Troubleshooting: Tuning the Shared Pool and Tuning Library Cache Latch Contention (文档 ID 62143.1)
- shared pool的优化
- shared pool的优化
- oracle优化-shared pool
- Android获取布局组件的两种方式
- 用正确方法写出质量好的软件的75条体会
- VMWare搭建CentOS小问题汇总
- sscanf和sprintf的用法
- 常用编程视频资料搜集
- 【每日一摩斯】-Shared Pool优化和Library Cache Latch冲突优化 (1523934.1)-系列3
- java Random类详解
- SUP (SAP Mobile SDK 2.2) 连接 Sybase SQL Anywhere sample 数据库
- HTTP协议详解
- 线程,Handler,Message和Runnable
- POJ1657-Distance on Chessboard
- Java进阶书籍,高手就要一步一步积累。
- 10 Powerful Quotes From The Steve Jobs Movie
- what is the difference between jpa and hibernate