W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
表和索引可以分區(qū)。進(jìn)行分區(qū)時(shí),這些 Schema 對(duì)象由許多稱為分區(qū)的部分組成,所有這些部分都具有相同的邏輯屬性。例如,表中的所有分區(qū)共享相同的列和約束定義,而索引中的所有分區(qū)共享相同的索引列。
分區(qū)擴(kuò)展名和子分區(qū)擴(kuò)展名使用戶可以執(zhí)行某些分區(qū)級(jí)和子分區(qū)級(jí)操作,例如,僅在一個(gè)分區(qū)或子分區(qū)上刪除其中的所有行。沒有擴(kuò)展名稱時(shí),此類操作將要求您使用判斷語(yǔ)句定義范圍(?WHERE
? 子句)。對(duì)于范圍分區(qū)表和列表分區(qū)表,嘗試用判斷語(yǔ)句描述分區(qū)級(jí)操作可能會(huì)很麻煩,尤其是當(dāng)范圍分區(qū)鍵使用多個(gè)列時(shí)。對(duì)于哈希分區(qū)和子分區(qū),使用判斷語(yǔ)句更加困難,因?yàn)檫@些分區(qū)和子分區(qū)是基于系統(tǒng)定義的哈希函數(shù)。
分區(qū)擴(kuò)展名使您可以像使用表一樣使用分區(qū)。此方法的一個(gè)優(yōu)點(diǎn)(對(duì)范圍分區(qū)的表最有用)是,您可以通過對(duì)其他用戶或角色授予(或撤消)這些視圖的特權(quán)來(lái)構(gòu)建分區(qū)級(jí)別的訪問控制機(jī)制。要將分區(qū)用作表,需要通過從單個(gè)分區(qū)中選擇數(shù)據(jù)來(lái)創(chuàng)建視圖,然后將該視圖用作表。
當(dāng)在 SQL 語(yǔ)句的語(yǔ)法或軌道圖中出現(xiàn) ?partition_extended_name
? 或者 ?subpartition_extended_name
? 元素時(shí),用戶可以通過這兩個(gè)元素指定分區(qū)擴(kuò)展表名和子分區(qū)擴(kuò)展表名。?partition_extended_name
? 的語(yǔ)法:
PARTITION partition
|
PARTITION FOR ( partition_key_value [, partition_key_value]... )
?subpartition_extended_name
? 的語(yǔ)法:
SUBPARTITION subpartition
|
SUBPARTITION FOR ( subpartition_key_value [, subpartition_key_value]... )
DML 語(yǔ)句 ?INSERT
?、?UPDATE
? 、 ?DELETE
? 和 ?ANALYZE
? 語(yǔ)句需要在分區(qū)或子分區(qū)名稱的周圍加上括號(hào)。這個(gè)小的區(qū)別體現(xiàn)在 partition_extension_clause 元素中。在 ?partition_extended_name
?,?subpartition_extended_name
? 和 ?partition_ extension_clause
? 中,可以使用 ?PARTITION FOR
? 和 ?SUBPARTITION FOR
? 子句在不使用名稱的情況下引用分區(qū)。它們對(duì)任何類型的分區(qū)均有效,尤其是間隔分區(qū)。將數(shù)據(jù)插入表中時(shí),間隔分區(qū)會(huì)根據(jù)需要被自動(dòng)創(chuàng)建。
對(duì)于上述元素中各自的 ?partition_key_value
? 或 ?subpartition_key_value
? 部分,它們?yōu)槊總€(gè)分區(qū)鍵列指定一個(gè)值。對(duì)于多列分區(qū)鍵,需要為每個(gè)分區(qū)鍵指定一個(gè)值。對(duì)于復(fù)合分區(qū),對(duì)每個(gè)分區(qū)鍵指定一個(gè)值后,需要繼續(xù)為每個(gè)子分區(qū)鍵指定一個(gè)值。所有分區(qū)鍵值均以逗號(hào)分隔。對(duì)于間隔分區(qū),您只能指定一個(gè) ?partition_key_value
?,并且它必須是有效的 ?NUMBER
? 數(shù)據(jù)類型或日期時(shí)間數(shù)據(jù)類型的值。用戶的 SQL 語(yǔ)句將在包含用戶指定了值的分區(qū)或子分區(qū)上運(yùn)行。
使用分區(qū)擴(kuò)展表名和子分區(qū)擴(kuò)展表名時(shí)有以下限制:
PARTITION FOR
? 和 ?SUBPARTITION FOR
? 子句中,不能指定關(guān)鍵字 ?DEFAULT
? 、?MAXVALUE
? 或綁定變量為 ?partition_key_value
? 或 ?subpartition_key_value
? 的值。PARTITION
? 和 ?SUBPARTITION
? 子句中,不能為分區(qū)或子分區(qū)名稱指定綁定變量。在以下示例中,sales 是具有分區(qū) sales_q1_2000 的分區(qū)表。以下語(yǔ)句創(chuàng)建了單個(gè)分區(qū) sales_q1_2000 的視圖,然后像使用表一樣使用它。本示例從分區(qū)中刪除了一些行:
/*為分區(qū) sales_q1_2000 創(chuàng)建視圖 Q1_2000_sales*/
CREATE VIEW Q1_2000_sales
AS
SELECT *
FROM sales PARTITION (SALES_Q1_2000);
/*刪除視圖 Q1_2000_sales 中符合條件 amount_sold < 0 的值*/
DELETE FROM Q1_2000_sales
WHERE amount_sold < 0;
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: