Oracle-11g

在 Oracle 11g 中使用 LOB 列對錶進行分區

  • January 1, 2012

我們有一個相當小的表(約 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))
)

引用自:https://dba.stackexchange.com/questions/9206