Oracle-11g
在 Oracle 11g 中使用 LOB 列對錶進行分區
我們有一個相當小的表(約 25k 行)正在被大量寫入,並且大多數行很快就消失了(它是調度應用程序的一部分,用於儲存有關該表中作業的資訊)。
它是一個第三方應用程序,它執行大量小交易,導致該表上的競爭非常激烈。
這一切都在使用 Oracle 11gR1 的兩節點 RAC 集群上執行
我們可以在 AWR 報告中看到,大部分時間都花在等待集群同步上。
我們想(散列)對該表進行分區,以便將爭用分佈在正在修改的塊上。
但是,該表還包含一個
BLOB
列,應用程序使用該列來儲存作業的狀態。我們還看到對該列的 LOB 段的大量讀取和寫入。我的問題是:當我們對錶進行分區時,是否也可以創建多個 LOB 段?那麼表分區(即段)和LOB段之間是一對一的關係嗎?
我在手冊中沒有找到任何內容,但是由於 CREATE TABLE 的文件非常龐大,如果我忽略了某些內容,我不會感到驚訝。
是的,您似乎確實忽略了它:
PARTITION BY HASH(X) (PARTITION P1 TABLESPACE T1 LOB (my_lob_column) STORE AS (TABLESPACE T1_LOB /* here */ ), PARTITION P2 TABLESPACE ts2 LOB (my_lob_column) STORE AS (TABLESPACE T2_LOB)) )