關於Multiple Buffer Pools的一些疑問
Oracle7.3之後,oracle允許在段建立的時候指定buffer pool,分別可以指定DEFAULT,KEEP,RECYCLE,如果不指定,預設為DEFAULT
我們可以透過下面的方法修改表或者索引的buffer pool:
1、檢視錶所對應的buffer
可以用兩種方法檢視:
set long 10000
select dbms_metadata.get_ddl('TABLE','&tname') from dual;
select table_name ,buffer_pool from dba_tables where table_name ='TEST';
2、檢視可以被放入keep池的表
小表經常被訪問,需要設定DB_KEEP_CACHE_SIZE,獨立於db_cache_size
SELECT o.owner, object_name, object_type, COUNT(1) buffers
FROM SYS.x$bh, dba_objects o
WHERE tch > 10
AND lru_flag = 8
AND obj = o.object_id
AND o.owner not in ('SYSTEM','SYS')
GROUP BY o.owner, object_name, object_type
ORDER BY buffers;
----修改物件定義
alter table t storage(buffer_pool keep);
alter index test.BM_IDX_BT storage(buffer_pool KEEP);
3、檢視可以被放入recycle池的表
用於不經常訪問的大segment,不希望其保留在記憶體中,需要設定DB_RECYCLE_CACHE_SIZE,獨立於db_cache_size
Col object_name format a30
Col object_type format a20
SELECT o.owner, object_name, object_type, COUNT(1) buffers
FROM SYS.x$bh, dba_objects o
WHERE (tch = 1 OR (tch = 0 AND lru_flag < 8))
AND obj = o. object_id
AND o.owner not in ('SYSTEM','SYS')
GROUP BY o.owner, object_name, object_type
ORDER BY buffers;
----修改物件定義
alter table t storage(buffer_pool recycle);
alter index test.BM_IDX_BT storage(buffer_pool RECYCLE);
有三點疑問:
a、如果keep池夠大,是否可以將頻繁使用的大表都放進去?有沒有一個用於分辨的方法。
b、keep、default、recycle池的演算法是否一樣,比如如果recycle夠大,是不是也可以當keep池用。
c、如果我把某個表使用keep池,但是我卻不給keep池分配記憶體,結果會如何。
[ 本帖最後由 foxmile 於 2008-6-24 10:24 編輯 ]
我們可以透過下面的方法修改表或者索引的buffer pool:
1、檢視錶所對應的buffer
可以用兩種方法檢視:
set long 10000
select dbms_metadata.get_ddl('TABLE','&tname') from dual;
select table_name ,buffer_pool from dba_tables where table_name ='TEST';
2、檢視可以被放入keep池的表
小表經常被訪問,需要設定DB_KEEP_CACHE_SIZE,獨立於db_cache_size
SELECT o.owner, object_name, object_type, COUNT(1) buffers
FROM SYS.x$bh, dba_objects o
WHERE tch > 10
AND lru_flag = 8
AND obj = o.object_id
AND o.owner not in ('SYSTEM','SYS')
GROUP BY o.owner, object_name, object_type
ORDER BY buffers;
----修改物件定義
alter table t storage(buffer_pool keep);
alter index test.BM_IDX_BT storage(buffer_pool KEEP);
3、檢視可以被放入recycle池的表
用於不經常訪問的大segment,不希望其保留在記憶體中,需要設定DB_RECYCLE_CACHE_SIZE,獨立於db_cache_size
Col object_name format a30
Col object_type format a20
SELECT o.owner, object_name, object_type, COUNT(1) buffers
FROM SYS.x$bh, dba_objects o
WHERE (tch = 1 OR (tch = 0 AND lru_flag < 8))
AND obj = o. object_id
AND o.owner not in ('SYSTEM','SYS')
GROUP BY o.owner, object_name, object_type
ORDER BY buffers;
----修改物件定義
alter table t storage(buffer_pool recycle);
alter index test.BM_IDX_BT storage(buffer_pool RECYCLE);
有三點疑問:
a、如果keep池夠大,是否可以將頻繁使用的大表都放進去?有沒有一個用於分辨的方法。
b、keep、default、recycle池的演算法是否一樣,比如如果recycle夠大,是不是也可以當keep池用。
c、如果我把某個表使用keep池,但是我卻不給keep池分配記憶體,結果會如何。
[ 本帖最後由 foxmile 於 2008-6-24 10:24 編輯 ]
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/79499/viewspace-417664/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Multiple Buffer Pools (83)
- 關於String內的indexOf方法的一些疑問Index
- 關於DDD學習過程中的一些疑問
- 關於TargetServiceFactoryVisitable的疑問
- 關於cache_buffer_lru_chain的疑問,知道的給小弟解答一下。AI
- 關於BUFFER POOL的一些總結
- 關於spring + ejb進行組合的一些疑問Spring
- 關於 dingo API 的疑問GoAPI
- 關於jdonframework框架的小疑問Framework框架
- 關於設計模式的疑問設計模式
- 關於字典和陣列的疑問陣列
- 關於非同步介面呼叫的疑問?非同步
- 關於no-wait latch 的疑問AI
- 關於論壇快取的疑問快取
- 關於JTA實現的疑問
- 關於使用ThreadLocal管理資料庫連線的一些疑問thread資料庫
- 關於原型模式的看法和疑問原型模式
- MySQL關於資料字典的一個疑問MySql
- 有幾點關於C語言的疑問C語言
- 關於Proxy和Decorator設計模式的疑問設計模式
- 關於多執行緒協作的疑問執行緒
- QI4J中關於entity的疑問
- [20201207]關於ORACLE IMU的一些疑問.txtOracle
- 對技術的一些疑問
- 檔案操作的一些疑問
- 關於JDONJIVE中DbFilterManager中程式碼的疑問Filter
- 關於租用香港伺服器疑問解答伺服器
- 關於租用香港伺服器疑問解答。伺服器
- 關於租用香港伺服器疑問解答?伺服器
- 關於Redis的一些小問題Redis
- ValueObject和DTO模式的一些疑問Object模式
- 關於 K8S 在測試中的疑問K8S
- 關於 ui 自動化測試 driver 疑問?UI
- 關於學習Python的疑問,你都清楚了嗎?Python
- 關於技能技術企劃書的疑問和建議
- 關於C++中建構函式的常見疑問C++函式
- 讀draveness關於chan的介紹後的總結及疑問
- 求教精通ejb規範的高手,關於Dependent Value Classes的疑問