學習Oracle核心(cursor: pin S)
Oracle的buffer cache是SGA的一個重要組成部分,因此當遇到併發訪問時,都需要通過鎖機制來保護()。這個鎖就是buffer pin。
如果要讀一個buffer, 先要獲得共享的buffer pin鎖。寫則要獲取獨佔的buffer pin鎖。
這裡buffer pin鎖就有了兩種模式,一種是S(共享模式),另外則是X(排他模式或獨佔模式)。
等待事件cursor: pin S是對於cache buffer的爭用。
以下指令碼可以構造出cursor: pin S的等待事件。
create table mytest(
id number,
name varchar2(100)
)
insert into mytest
select rownum,
lpad('a',
trunc(dbms_random.value * 100),
chr(trunc(dbms_random.value * 100)))
from dual
connect by rownum <= 100;
注意,表上沒有任何索引。
同時,在不同會話中執行如下指令碼:
declare
v_name mytest.name%type;
begin
for i in 1 .. 100000000 loop
begin
select name into v_name from mytest where id = i;
exception
when no_data_found then
null;
end;
end loop;
end;
/
此時,可以在v$session_wait檢視中看到如下等待事件:
如果要讀一個buffer, 先要獲得共享的buffer pin鎖。寫則要獲取獨佔的buffer pin鎖。
這裡buffer pin鎖就有了兩種模式,一種是S(共享模式),另外則是X(排他模式或獨佔模式)。
等待事件cursor: pin S是對於cache buffer的爭用。
以下指令碼可以構造出cursor: pin S的等待事件。
create table mytest(
id number,
name varchar2(100)
)
insert into mytest
select rownum,
lpad('a',
trunc(dbms_random.value * 100),
chr(trunc(dbms_random.value * 100)))
from dual
connect by rownum <= 100;
注意,表上沒有任何索引。
同時,在不同會話中執行如下指令碼:
declare
v_name mytest.name%type;
begin
for i in 1 .. 100000000 loop
begin
select name into v_name from mytest where id = i;
exception
when no_data_found then
null;
end;
end loop;
end;
/
此時,可以在v$session_wait檢視中看到如下等待事件:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8520577/viewspace-2121938/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- cursor: pin S 等待事件事件
- oracle等待事件之cursor:pin S wait on XOracle事件AI
- cursor pin S wait on XAI
- cursor: pin S wait on XAI
- cursor:pin S wait on XAI
- Cursor pin S wait on X 事件AI事件
- cursor: pin S wait on X模擬AI
- cursor: pin S wait on X等待事件。AI事件
- cursor: pin S模擬與處理
- cursor:pin S wait on X故障診分析AI
- cursor: pin S產生原理及解決方法
- cursor: pin S wait on X等待實驗二AI
- cursor: pin S wait on X等待事件模擬AI事件
- cursor: pin S wait on X等待事件模擬(轉)AI事件
- cursor: pin S簡單說明以及測試、解決
- library cache lock和cursor: pin S wait on X等待AI
- AWR報告實戰之cursor:pin S wait on XAI
- zt_小荷_記得cursor pin s wait on xAI
- 【故障】cursor: pin S wait on X等待事件大量出現AI事件
- 記一次cursor pin s wait on X的處理AI
- cursor: pin S wait on X等待事件的處理過程AI事件
- 一次cursor: pin S wait on X事件的跟蹤AI事件
- [20170707]cursor: pin S wait on X(10G)AI
- AWR報告分析之三:cursor: pin S 的原理與案例分析
- latch: row cache objects 和cursor: pin S wait on X共同出現ObjectAI
- 【徵文】cursor: pin S wait on X等待事件的處理過程AI事件
- AWR報告分析之三:cursor: pin S 的原理與案例分析-eygle
- [20201117]解析cursor pin S等待事件.txt事件
- 【新炬網路名師大講堂】cursor: pin S wait on X模擬AI
- 'cursor:mutex ..'/ 'cursor:pin ..'/ 'library cache:mutex ..'型別的等待事件Mutex型別事件
- [20180301]模擬cursor pin S wait on X.txtAI
- 解析cursor pin S等待事件中的p1、p2、p3值事件
- 分散式引起的cursor: pin S wait on X 事件一次問題處理分散式AI事件
- 解決RAC節點因cursor: pin S wait on X無法登陸案例一則AI
- (轉):學習Oracle動態效能表-(16)-V$OPEN_CURSOROracle
- sql version count引發cursor:pin s wait x及library cache latch library cache lockSQLAI
- cursor: mutex S等待事件Mutex事件
- Oracle CursorOracle