1

目標是通過COLUMN_1減少從查表中刪除的時間。現在這可能需要15-30分鐘。表中兩個重要列是一些ID的最佳分區方法是什麼?數據庫是Oracle 11g

當前表中的數據被級聯規則刪除。 COLUMN_1是外鍵。 我想改變這種方法來刪除父行時,在BEFORE觸發器中截斷整個分區。

此外,通過COLUMN_2從應用程序查詢數據。

此兩列在關係介紹如下:

COL_1 COL_2 
1  1 
     2 
     3 
     4 
2  
     5 
     6 
     7 
     8 
     9 
     10 
3  
     11 
     12 
     13 
... 

在這兩個分別有索引。 表擁有數百萬條記錄。有很多插入和讀取操作。

經過一番研究(oracle doc)我會使用範圍 - 範圍分區
我需要的分區中動態創建的,所以也許範圍間隔分區將是合適的......

+0

你能提供一些參考添加到您的研究。 –

+0

分區的目標是什麼?爲了改善加載時間?爲了改善查詢時間?實現分層存儲?還有別的嗎?桌子如何加載?它是如何被查詢的? –

+0

我編輯過說明。感謝您的關注。 –

回答

0

有兩種選擇:

交換機分區N_Partition新的空表和截斷表:

 
    ALTER TABLE big_table 
    EXCHANGE PARTITION N_partition 
    WITH TABLE table_to_be_truncated 
    INCLUDING INDEXES 
    WITHOUT VALIDATION 
    UPDATE GLOBAL INDEXES; 

    TRUNCATE TABLE table_to_be_truncated 
  • 或T runcate分區
 
    ALTER TABLE big_table TRUNCATE PARTITION N_partition 
    UPDATE INDEXES; 

這裏是描述你可以用分區做什麼好文章:Maintaining Partitions

相關問題