open_cursor session_cached_cursors 優化
open_cursor session_cached_cursors 優化
--當前資料庫連線的會話數和程式數
select count(*) from v$session
union
select count(*) from v$process;
-- 檢視當前session_cached_cursors 的使用情況:
select e.* from v$sesstat e, v$statname s
where s.NAME = 'session cursor cache count' and e.STATISTIC# = s.STATISTIC# order by e.VALUE desc;
-----session cursor cache hits就是系統在快取記憶體區中找到相應cursors的次數,parse count(total)就是總的解析次數,二者比值越高,效能越好。如果比例比較低,並且有較多剩餘記憶體的話,可以考慮加大該引數。
SELECT NAME, VALUE FROM V$SYSSTAT WHERE NAME LIKE '%cursor%'
union
SELECT NAME, VALUE FROM V$SYSSTAT WHERE NAME LIKE '%parse%';
select (select v.VALUE from V$SYSSTAT v where v.NAME='session cursor cache hits')/(select a.VALUE from V$SYSSTAT a where a.NAME='parse count (total)') from dual;
/*解釋一下v$sesstat中相關取值的重要概念
1 > opened cursors current (當前單個session開啟的cursors數量)
2 > parse count (hard) (當前session硬解析次數)
3 > parse count (total) (當前session解析總次數)
4 > session cursor cache count (設定session_cached_cursors引數後,"相同"sql被解析3次後被cache在session cursor cache中的數量
5 > session cursor cache hits (軟軟解析的次數 a "softer" soft parse )
6 > 手工計算一下軟解析次數parse count (total) - session cursor cache hits - parse count (hard) = parse count(soft)*/
---每個會話開啟的遊標數
select sid, count(*) from v$open_cursor group by sid order by count(*) desc;
-----使用下面的sql判斷'session_cached_cursors' 的使用情況。如果使用率為100%則增大這個引數值
SELECT 'session_cached_cursors' PARAMETER,
LPAD(VALUE, 5) VALUE,
DECODE(VALUE, 0, ' n/a', TO_CHAR(100 * USED / VALUE, '990') || '%') USAGE
FROM (SELECT MAX(S.VALUE) USED
FROM V$STATNAME N, V$SESSTAT S
WHERE N.NAME = 'session cursor cache count'
AND S.STATISTIC# = N.STATISTIC#),
(SELECT VALUE FROM V$PARAMETER WHERE NAME = 'session_cached_cursors')
UNION ALL
SELECT 'open_cursors',
LPAD(VALUE, 5),
TO_CHAR(100 * USED / VALUE, '990') || '%'
FROM (SELECT MAX(SUM(S.VALUE)) USED
FROM V$STATNAME N, V$SESSTAT S
WHERE N.NAME IN
('opened cursors current', 'session cursor cache count')
AND S.STATISTIC# = N.STATISTIC#
GROUP BY S.SID),
(SELECT VALUE FROM V$PARAMETER WHERE NAME = 'open_cursors');
--pga實際的總使用量
select sum(m.ALLOCATED)/1024/1024 from v$process_memory m;
--先備份spfile
-- alter system set session_cached_cursors=500 scope=spfile sid='*';
--當前資料庫連線的會話數和程式數
select count(*) from v$session
union
select count(*) from v$process;
-- 檢視當前session_cached_cursors 的使用情況:
select e.* from v$sesstat e, v$statname s
where s.NAME = 'session cursor cache count' and e.STATISTIC# = s.STATISTIC# order by e.VALUE desc;
-----session cursor cache hits就是系統在快取記憶體區中找到相應cursors的次數,parse count(total)就是總的解析次數,二者比值越高,效能越好。如果比例比較低,並且有較多剩餘記憶體的話,可以考慮加大該引數。
SELECT NAME, VALUE FROM V$SYSSTAT WHERE NAME LIKE '%cursor%'
union
SELECT NAME, VALUE FROM V$SYSSTAT WHERE NAME LIKE '%parse%';
select (select v.VALUE from V$SYSSTAT v where v.NAME='session cursor cache hits')/(select a.VALUE from V$SYSSTAT a where a.NAME='parse count (total)') from dual;
/*解釋一下v$sesstat中相關取值的重要概念
1 > opened cursors current (當前單個session開啟的cursors數量)
2 > parse count (hard) (當前session硬解析次數)
3 > parse count (total) (當前session解析總次數)
4 > session cursor cache count (設定session_cached_cursors引數後,"相同"sql被解析3次後被cache在session cursor cache中的數量
5 > session cursor cache hits (軟軟解析的次數 a "softer" soft parse )
6 > 手工計算一下軟解析次數parse count (total) - session cursor cache hits - parse count (hard) = parse count(soft)*/
---每個會話開啟的遊標數
select sid, count(*) from v$open_cursor group by sid order by count(*) desc;
-----使用下面的sql判斷'session_cached_cursors' 的使用情況。如果使用率為100%則增大這個引數值
SELECT 'session_cached_cursors' PARAMETER,
LPAD(VALUE, 5) VALUE,
DECODE(VALUE, 0, ' n/a', TO_CHAR(100 * USED / VALUE, '990') || '%') USAGE
FROM (SELECT MAX(S.VALUE) USED
FROM V$STATNAME N, V$SESSTAT S
WHERE N.NAME = 'session cursor cache count'
AND S.STATISTIC# = N.STATISTIC#),
(SELECT VALUE FROM V$PARAMETER WHERE NAME = 'session_cached_cursors')
UNION ALL
SELECT 'open_cursors',
LPAD(VALUE, 5),
TO_CHAR(100 * USED / VALUE, '990') || '%'
FROM (SELECT MAX(SUM(S.VALUE)) USED
FROM V$STATNAME N, V$SESSTAT S
WHERE N.NAME IN
('opened cursors current', 'session cursor cache count')
AND S.STATISTIC# = N.STATISTIC#
GROUP BY S.SID),
(SELECT VALUE FROM V$PARAMETER WHERE NAME = 'open_cursors');
--pga實際的總使用量
select sum(m.ALLOCATED)/1024/1024 from v$process_memory m;
--先備份spfile
-- alter system set session_cached_cursors=500 scope=spfile sid='*';
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29519108/viewspace-1435387/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- session_cached_cursorsSession
- 引數session_cached_cursors的工作原理及優缺點分析Session
- SESSION_CACHED_CURSORS詳解Session
- 引數SESSION_CACHED_CURSORSSession
- session_cached_cursors的研究Session
- 【最佳化】引數SESSION_CACHED_CURSORS與解析之間的關係Session
- open_cursor & session_cached_cursor實驗Session
- 理解V$OPEN_CURSOR,SESSION_CACHED_CURSORSession
- open_cursors與session_cached_cursorsSession
- session_cached_cursors,cursor_space_for_timeSession
- 前端效能優化(JS/CSS優化,SEO優化)前端優化JSCSS
- 理解V$OPEN_CURSOR, V$SESSION_CACHED_CURSORSession
- 效能優化案例-SQL優化優化SQL
- MSSQL優化之索引優化SQL優化索引
- CUDA優化之指令優化優化
- 學習動態效能表(13)--V$OPEN_CURSOR
- [zt] 理解V$OPEN_CURSOR, V$SESSION_CACHED_CURSORSession
- Android效能優化----卡頓優化Android優化
- 資料庫優化 - SQL優化資料庫優化SQL
- 【前端效能優化】vue效能優化前端優化Vue
- 前端效能優化 --- 圖片優化前端優化
- sql優化之邏輯優化SQL優化
- [效能優化]DateFormatter深度優化探索優化ORM
- SQL優化:limit分頁優化SQL優化MIT
- (mysql優化-3) 系統優化MySql優化
- MySQL 效能優化之索引優化MySql優化索引
- MySQL優化-安裝配置優化MySql優化
- Web效能優化:圖片優化Web優化
- MySQL 效能優化之SQL優化MySql優化
- 多版本cursor,與session_cached_cursors關係Session
- Execute to Parse% 及open_cursors,session_cached_cursorsSession
- Oracle效能優化-SQL優化(案例一)Oracle優化SQL
- Oracle效能優化-SQL優化(案例二)Oracle優化SQL
- Oracle效能優化-SQL優化(案例三)Oracle優化SQL
- Oracle效能優化-SQL優化(案例四)Oracle優化SQL
- Android 效能優化 ---- 啟動優化Android優化
- 效能優化(二) UI 繪製優化優化UI
- hive優化-資料傾斜優化Hive優化