OceanBase分区表使用
OceanBase Oracle租戶創(chuàng)建分區(qū)表簡(jiǎn)述:
創(chuàng)建分區(qū)
創(chuàng)建時(shí)間分區(qū),二級(jí)分區(qū)(分9個(gè)區(qū))為KEY的 RANGE+HASH分區(qū)(HASH分區(qū),不寫分區(qū)數(shù)的默認(rèn)一個(gè)分區(qū)(即不分區(qū))一級(jí)需要加[PARTITIONS 分區(qū)數(shù)]、二級(jí)分區(qū)加 [SUBPARTITIONS 分區(qū)數(shù)]
CREATE TABLE TEST_1 (C1 VARCHAR(10 ) ,C2 VARCHAR(50 ) ,C3 VARCHAR(50 ) ,C4 VARCHAR(10 ) ,C5 VARCHAR(10 ) ,C6 DATE ,C7 DECIMAL(18,5) ,,C8 DATE ) partition by RANGE (C8) SUBPARTITION BY HASH(C1,C2) SUBPARTITIONS 9 ( partition p0 values less than(TO_DATE('2021-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')), partition p1 values less than(TO_DATE('2022-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')), partition p2 values less than(TO_DATE('2023-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')), partition p3 values less than(TO_DATE('2024-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')), partition p4 values less than(TO_DATE('2025-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS')) );查詢二級(jí)分區(qū)表分區(qū)情況
SELECT TABLE_NAME,PARTITION_NAME,SUBPARTITION_NAME FROM USER_TAB_SUBPARTITIONS WHERE TABLE_NAME = 'TEST_1' TABLE_NAME |PARTITION_NAME|SUBPARTITION_NAME ----------------|--------------|----------------- TEST_1|P0 |P0sp0 TEST_1|P0 |P0sp1 TEST_1|P0 |P0sp2 TEST_1|P0 |P0sp3 TEST_1|P0 |P0sp4 TEST_1|P0 |P0sp5 TEST_1|P0 |P0sp6 TEST_1|P0 |P0sp7 TEST_1|P0 |P0sp8 TEST_1|P1 |P1sp0 TEST_1|P1 |P1sp1 TEST_1|P1 |P1sp2 TEST_1|P1 |P1sp3 TEST_1|P1 |P1sp4 TEST_1|P1 |P1sp5 TEST_1|P1 |P1sp6 TEST_1|P1 |P1sp7 TEST_1|P1 |P1sp8 TEST_1|P2 |P2sp0 TEST_1|P2 |P2sp1 TEST_1|P2 |P2sp2 TEST_1|P2 |P2sp3 TEST_1|P2 |P2sp4 TEST_1|P2 |P2sp5 TEST_1|P2 |P2sp6 TEST_1|P2 |P2sp7 TEST_1|P2 |P2sp8 TEST_1|P3 |P3sp0 TEST_1|P3 |P3sp1 TEST_1|P3 |P3sp2 TEST_1|P3 |P3sp3 TEST_1|P3 |P3sp4 TEST_1|P3 |P3sp5 TEST_1|P3 |P3sp6 TEST_1|P3 |P3sp7 TEST_1|P3 |P3sp8 TEST_1|P4 |P4sp0 TEST_1|P4 |P4sp1 TEST_1|P4 |P4sp2 TEST_1|P4 |P4sp3 TEST_1|P4 |P4sp4 TEST_1|P4 |P4sp5 TEST_1|P4 |P4sp6 TEST_1|P4 |P4sp7 TEST_1|P4 |P4sp8查詢一級(jí)分區(qū)情況
SELECT TABLE_NAME,PARTITION_NAME FROM USER_TAB_PARTITIONS WHERE TABLE_NAME = 'TEST_1' 或 SELECT DISTINCT TABLE_NAME,PARTITION_NAME FROM USER_TAB_SUBPARTITIONS WHERE TABLE_NAME = 'TEST_1'TABLE_NAME |PARTITION_NAME| ----------------|--------------| TEST_1|P0 | TEST_1|P1 | TEST_1|P2 | TEST_1|P3 | TEST_1|P4 |刪除一級(jí)分區(qū)
ALTER TABLE TEST_1 DROP PARTITION p4 UPDATE GLOBAL INDEXES;注: 刪除二級(jí)分區(qū)表中的一級(jí)分區(qū)時(shí),請(qǐng)盡量避免該分區(qū)上存在活動(dòng)的事務(wù)或查詢,否則可能會(huì)導(dǎo)致 SQL 語(yǔ)句報(bào)錯(cuò),或者出現(xiàn)一些異常情況。在
sys 租戶下,通過事務(wù)狀態(tài)表 __all_virtual_trans_stat 可以查詢到當(dāng)前還未結(jié)束的事務(wù)上下文狀態(tài)。
刪除一級(jí)分區(qū)會(huì)同時(shí)刪除該一級(jí)分區(qū)的定義和其對(duì)應(yīng)的二級(jí)分區(qū)及數(shù)據(jù)。
對(duì)于 Oracle 模式下有全局索引的二級(jí)分區(qū)表,刪除一級(jí)分區(qū)時(shí),需要通過在 ALTER TABLE 語(yǔ)句中添加 UPDATE GLOBAL
INDEXES 關(guān)鍵字的方式來(lái)更新全局索引信息;如果未添加 UPDATE GLOBAL INDEXES
關(guān)鍵字,則刪除一級(jí)分區(qū)后,該分區(qū)表上的全局索引會(huì)處于不可用狀態(tài)。
添加一級(jí)分區(qū),二級(jí)分區(qū)模式化的無(wú)需特殊處理
ALTER TABLE TEST_1 ADD PARTITION p4 values less than(TO_DATE('2025-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS'));注:添加一級(jí)分區(qū)時(shí)無(wú)需收集全局索引
創(chuàng)建本地索引
CREATE INDEX IDX_TEST_1_CUSTNO ON TEST_1(C6) LOCAL;有興趣的可以參考官網(wǎng)資料:
創(chuàng)建一級(jí)分區(qū)表
CREATE INDEX
總結(jié)
以上是生活随笔為你收集整理的OceanBase分区表使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 云计算中的虚拟化
- 下一篇: 找出水王 java_寻找水王1