程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle數據庫只讀模式的CACHE BUFFERS CHAINS測試

Oracle數據庫只讀模式的CACHE BUFFERS CHAINS測試

編輯:Oracle數據庫基礎

Oracle數據庫只讀模式的CACHE BUFFERS CHAINS測試是本文我們主要要介紹的內容,雖然從Oracle 9i裡邊引入了只讀模式的CACHE BUFFERS CHAINS,但是在獲取BUFFER LOCK的時候,還是會請求CACHE BUFFERS CHAINS,但是情形沒有8i裡邊那麼嚴重了,接下來我們對其進行測試。

測試步驟如下:

1.首先建一個表。

  1. create table test (a int,b varchar2(20)); 

2.往這個表裡INSERT 50000行數據;

  1. declare  
  2. i int;  
  3. begin  
  4. for i in 1..50000  
  5. loop  
  6. insert into test values(i,'adsfsafsa');  
  7. end loop;  
  8. end; 

3.在A的欄位上創建一個INDEX;

  1. create index test_i on test(i); 

4.編一個存儲過程;進行大量的索引掃描操作

  1. create or replace procedure test_k is  
  2. begin  
  3. for i in (select /*+ INDEX(TEST TEST_I) */ * from test where a>20000)  
  4. loop  
  5. null;  
  6. end loop;  
  7. end; 

5.打開2000個會話來執行這個存儲過程;

  1. var i number;  
  2. begin  
  3. for j in 1..2000  
  4. loop  
  5. dbms_job.submit(:i,'TEST_K;');  
  6. commit;  
  7. end loop;  
  8. end; 

6.查詢等待事情發現latch: cache buffers chains等待很嚴重,CPU運大部分時間都運行在SYS模式下.

  1. Cpu(s): 16.3%us, 83.7%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st 

結論:就算以只讀模式獲取cache buffers chains LATCH並不能完全解決這個LATCH爭用的問題,只是爭用程度不那麼嚴重了。

關於Oracle數據庫只讀模式的CACHE BUFFERS CHAINS測試的相關知識就介紹到這裡了,希望本次的介紹能夠對您有所收獲!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved