Oracle高級(jí)技術(shù)之大數(shù)據(jù)處理_第1頁
Oracle高級(jí)技術(shù)之大數(shù)據(jù)處理_第2頁
Oracle高級(jí)技術(shù)之大數(shù)據(jù)處理_第3頁
Oracle高級(jí)技術(shù)之大數(shù)據(jù)處理_第4頁
Oracle高級(jí)技術(shù)之大數(shù)據(jù)處理_第5頁
已閱讀5頁,還剩65頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、OracleOracle高級(jí)技術(shù)高級(jí)技術(shù)-大數(shù)據(jù)處理大數(shù)據(jù)處理交流內(nèi)容交流內(nèi)容 分區(qū)技術(shù) 報(bào)表優(yōu)化技術(shù) 并行處理應(yīng)用經(jīng)驗(yàn)OracleOracle的分區(qū)技術(shù)的分區(qū)技術(shù) 分區(qū)技術(shù)內(nèi)容分區(qū)技術(shù)內(nèi)容什么是分區(qū)?分區(qū)的好處?如何實(shí)施分區(qū)?如何評估分區(qū)的效果? OracleOracle的分區(qū)技術(shù)基本原理的分區(qū)技術(shù)基本原理分而治之分而治之SB_ZSXX按年度進(jìn)行分區(qū)按年度進(jìn)行分區(qū)2003200420052006分區(qū)概述分區(qū)概述 大數(shù)據(jù)對象 (表, 索引)被分成小物理段 當(dāng)分區(qū)表建立時(shí),記錄基于分區(qū)字段值被存儲(chǔ)到相應(yīng)分區(qū)。 分區(qū)字段值可以修改。(row movement enabled) 分區(qū)可以存儲(chǔ)在不同的

2、表空間 分區(qū)可以有不同的物理存儲(chǔ)參數(shù) 分區(qū)支持IOT表,對象表,LOB字段,varrays等分區(qū)技術(shù)的效益和目標(biāo)分區(qū)技術(shù)的效益和目標(biāo) 性能Select和DML操作只訪問指定分區(qū)并行DML操作Partition-wise Join 可管理性:數(shù)據(jù)刪除,數(shù)據(jù)備份歷史數(shù)據(jù)清除提高備份性能指定分區(qū)的數(shù)據(jù)維護(hù)操作 可用性將故障局限在分區(qū)中縮短恢復(fù)時(shí)間 分區(qū)目標(biāo)優(yōu)先級(jí) 高性能 數(shù)據(jù)維護(hù)能力-實(shí)施難度 高可用性(故障屏蔽能力)分區(qū)方法分區(qū)方法 分區(qū)方法:范圍 - 8Hash - 8i列表 - 9i組合 - 8iRangepartitioningHashpartitioningCompositepartiti

3、oningListpartitioning123CREATE TABLE sales (acct_no NUMBER(5), person VARCHAR2(30), sales_amount NUMBER(8), week_no NUMBER(2) PARTITION BY RANGE (week_no) (PARTITION P1 VALUES LESS THAN (4) TABLESPACE data0, PARTITION P2 VALUES LESS THAN (8) TABLESPACE data1, . PARTITION P13 VALUES LESS THAN (53)TAB

4、LESPACE data12 );分區(qū)字段:分區(qū)字段:week_no.VALUES LESS THAN 必須是確定值必須是確定值每個(gè)分區(qū)可以單獨(dú)指定物理屬性每個(gè)分區(qū)可以單獨(dú)指定物理屬性123范圍分區(qū)例范圍分區(qū)例 最早、最經(jīng)典的分區(qū)算法 Range分區(qū)通過對分區(qū)字段值的范圍進(jìn)行分區(qū) Range分區(qū)特別適合于按時(shí)間周期進(jìn)行數(shù)據(jù)的存儲(chǔ)。日、周、月、年等。 數(shù)據(jù)管理能力強(qiáng) 數(shù)據(jù)遷移 數(shù)據(jù)備份 數(shù)據(jù)交換 范圍分區(qū)的數(shù)據(jù)可能不均勻 范圍分區(qū)與記錄值相關(guān),實(shí)施難度和可維護(hù)性相對較差范圍分區(qū)特點(diǎn)范圍分區(qū)特點(diǎn)Hash分區(qū)例分區(qū)例create table CUSTOMERS (. column definitio

5、ns .)pctfree 0 nologgingstorage ( initial 40m next 40m pctincrease 0 )partition by hash(customer_no) partitions 8 store in (cust_data01,cust_data02)create table CUSTOMERS (. column definitions .)pctfree 0 nologgingstorage ( initial 40m next 40m pctincrease 0 )partition by hash(customer_no) (partitio

6、n cust_p01 tablespace cust_data01,partition cust_p02 tablespace cust_data02,partition cust_p03 tablespace cust_data03,partition cust_p04 tablespace cust_data04,partition cust_p05 tablespace cust_data05,partition cust_p06 tablespace cust_data06,partition cust_p07 tablespace cust_data07,partition cust

7、_p08 tablespace cust_data08)Hash分區(qū)特點(diǎn)分區(qū)特點(diǎn)基于分區(qū)字段的HASH值,自動(dòng)將記錄插入到指定分區(qū)。分區(qū)數(shù)一般是2的冪易于實(shí)施總體性能最佳適合于靜態(tài)數(shù)據(jù) HASH分區(qū)適合于數(shù)據(jù)的均勻存儲(chǔ)支持 (hash) local indexes9i 不支持 (hash) global indexes10g 支持(hash) global indexes HASH分區(qū)數(shù)據(jù)管理能力弱 HASH分區(qū)對數(shù)據(jù)值無法控制列表分區(qū)例列表分區(qū)例create table addresses (. column definitions .)pctfree 0 nologgingstorage

8、( initial 40m next 40m pctincrease 0 )partition by list(city_name) (partition addr_p01 values (WELLINGTON) tablespace addr_data01,partition addr_p02 values (CHRISTCHURCH) tablespace addr_data02,partition addr_p03 values (DUNEDIN,INVERCARGILL) tablespace addr_data03,partition addr_p04 values (AUCKLAN

9、D) tablespace addr_data04,partition addr_p05 values (HAMILTON,ROTORUA,TAURANGA) tablespace addr_data05)列表分區(qū)特點(diǎn)列表分區(qū)特點(diǎn) ListList分區(qū)通過對分區(qū)字段的離散值進(jìn)行分區(qū)。分區(qū)通過對分區(qū)字段的離散值進(jìn)行分區(qū)。 ListList分區(qū)是不排序的,而且分區(qū)之間沒有關(guān)聯(lián)關(guān)系分區(qū)是不排序的,而且分區(qū)之間沒有關(guān)聯(lián)關(guān)系 ListList分區(qū)適合于對數(shù)據(jù)離散值進(jìn)行控制。分區(qū)適合于對數(shù)據(jù)離散值進(jìn)行控制。 ListList分區(qū)只支持單個(gè)字段。分區(qū)只支持單個(gè)字段。 ListList分區(qū)具有與范圍分區(qū)相似的

10、優(yōu)缺點(diǎn)分區(qū)具有與范圍分區(qū)相似的優(yōu)缺點(diǎn) 數(shù)據(jù)管理能力強(qiáng) ListList分區(qū)的數(shù)據(jù)可能不均勻 ListList分區(qū)與記錄值相關(guān),實(shí)施難度和可維護(hù)性相對較差復(fù)合分區(qū)例復(fù)合分區(qū)例create table daily_trans_data (.column definitions .)partition by range(trans_datetime)subpartition by hash(customer_no) subpartitions 8 store in (dtd_data01,dtd_data02) (partition dtd_20010620 values less than (to

11、_date(21-jun-2001,dd-mon-yyyy) (subpartition dtd_20010620_s01 ,subpartition dtd_20010620_s02 ,subpartition dtd_20010620_s03 tablespace dtd_data03 ,subpartition dtd_20010620_s04 tablespace dtd_data04 ,subpartition dtd_20010620_s05 tablespace dtd_data05 ,subpartition dtd_20010620_s06 tablespace dtd_da

12、ta06 ,subpartition dtd_20010620_s07 tablespace dtd_data07 ,subpartition dtd_20010620_s08 tablespace dtd_data08 ) ,partition dtd_20010621 values less than (to_date(22-jun-2001,dd-mon-yyyy) ,partition dtd_20010622 values less than (to_date(23-jun-2001,dd-mon-yyyy) subpartitions 4 )復(fù)合分區(qū)圖示復(fù)合分區(qū)圖示復(fù)合分區(qū)特點(diǎn)復(fù)合

13、分區(qū)特點(diǎn)OracleOracle支持的支持的CompositeComposite分區(qū):分區(qū): Range-Hash,Range-List Range-Hash,Range-List 既適合于歷史數(shù)據(jù),又適合于數(shù)據(jù)均勻分布 與范圍分區(qū)一樣提供高可用性和管理性 更好的PDML和partition-wise joins性能 實(shí)現(xiàn)粒度更細(xì)的操作 支持復(fù)合 local indexes 不支持復(fù)合compositeglobal indexes?分區(qū)索引分區(qū)索引不分區(qū)分區(qū)不分區(qū) 分區(qū)表表索引索引GlobalNonpartitioned indexLocal partitioned indexGlobal P

14、artitioned Index不同的分區(qū)索引不同的分區(qū)索引紹興紹興杭州杭州溫州溫州03年年04年年08年年分區(qū)索引分區(qū)索引分區(qū)表索引的分類:Local Prefixed indexLocal Non-prefiexed indexGlobal Prefixed indexNon Partition Index Global索引的分區(qū)不同與表分區(qū) Local索引的分區(qū)與表分區(qū)相同 An index is prefixed if it is partitioned on a left prefix of the index columns. 分區(qū)表上的非分區(qū)索引等同于Global索引分區(qū)索引分區(qū)

15、索引Global索引必須是范圍分區(qū) - 9i之前Global索引可以是HASH分區(qū) - 10g新特性Global索引不支持Bitmap索引Unique索引必須是prefixed,或者包含分區(qū)字段Local索引(non-prefixed, non-unique)可以不包含分區(qū)字段create index cust_idx1 on customers(customer_name)global partition by range (customer_name)(partition cust_p01 values less than (H) tablespace cust_index01,parti

16、tion cust_p02 values less than (N) tablespace cust_index02,partition cust_p03 values less than (T) tablespace cust_index03,partition cust_p04 values less than (MAXVALUE) tablespace cust_index04)create index cust_idx2 on customers(customer_no) local(partition cust_idx_p01 tablespace cust_index01,part

17、ition cust_idx_p02 tablespace cust_index02,partition cust_idx_p03 tablespace cust_index03,partition cust_idx_p04 tablespace cust_index04,partition cust_idx_p05 tablespace cust_index05,partition cust_idx_p06 tablespace cust_index06,partition cust_idx_p07 tablespace cust_index07,partition cust_idx_p08

18、 tablespace cust_index08)create index cust_idx3 on customers(customer_type) local;分區(qū)索引舉例分區(qū)索引舉例分區(qū)表索引的使用分區(qū)表索引的使用OLTP系統(tǒng)中的建議Global和unique local index性能優(yōu)于nonunique local indexLocal index提供了更好的可用性數(shù)據(jù)倉庫系統(tǒng)中的建議Local index更適合于數(shù)據(jù)裝載和分區(qū)維護(hù)在大量數(shù)據(jù)統(tǒng)計(jì)時(shí),能充分利用Local index并行查詢能力在性能、高可用性和可管理性之間進(jìn)行平衡索 引 字 段 是 表 分 區(qū) 字 段 的 前 綴

19、?該 非 分 區(qū) 字 段 是 唯 一 索 引 ?L o c a l P re fix e d是 否 性 能 在 可 承 受 范 圍 , 而 分 區(qū) 的 可 管 理性 、 可 用 性 更 重 要 ?G lo b a l P re fix e dL o c a l N o n-pre fix e d是 數(shù) 據(jù) 倉 庫 / 交 易 系 統(tǒng) ?L o c a l N o n-pre fix e dG lo b a l P re fix e dY e sY e sY e sN oN oN oO L T PD S S分區(qū)索引選擇策略分區(qū)索引選擇策略分區(qū)裁剪功能分區(qū)裁剪功能Partition pruning

20、: Only the relevant partitions are accessed.99-May99-Apr99-Feb99-Jan99-Mar99-JunsalesSQL SELECT SUM(sales_amount) 2 FROM sales 3 WHERE sales_date BETWEEN 4 TO_DATE(01-MAR-1999, 5 DD-MON-YYYY) AND 6 TO_DATE(31-MAY-1999, 7 DD-MON-YYYY);分區(qū)裁剪舉例分區(qū)裁剪舉例1 select * from daily_trans_summ 2* where trans_dateti

21、me between to_date(25-jun-2001 08,DD-mon-yyyy hh24) and to_date(28-jun-2001 18,DD-mon-yyyy hh24) Partition Partition Operation Options Object Name Start Stop - - - - - SELECT STATEMENT PARTITION RANGE ITERATOR 231 234 TABLE ACCESS FULL DAILY_TRANS_SUMM 231 234 1 select * from daily_trans_summ 2* whe

22、re trans_datetime in (25-jun-2001,28-jun-2001) Partition Partition Operation Options Object Name Start Stop - - - - - SELECT STATEMENT PARTITION RANGE INLIST KEY(INLIST) KEY(INLIST) TABLE ACCESS FULL DAILY_TRANS_SUMM KEY(INLIST) KEY(INLIST) Nonpartition-wise joinFull partition-wise joinPartial parti

23、tion-wise joinQuery slavePartitionPartitioned table123Partition-Wise JoinPartition-wise Joins Tables and indexes that are partitioned identically are equi-partitioned. A full partition-wise join occurs when joining two equi-partitioned tables that are partitioned on the join key. Oracle splits the j

24、oin into joins of pairs of partitions. A partial partition-wise join occurs when only one of the tables is partitioned on the join key. Partition-wise joins occur when joining a hash partition table to a composite partition table if the hash partitioning and sub-partitioning is on the join key. Orac

25、le assigns parallel query slaves to process the partition joins.Partition-wise Joins舉例舉例1 select /*+ full(c) */ c.customer_no, count(*)2 from customers c, daily_trans_data d3 where c.customer_no = d.customer_no4 and d.trans_datetime between to_date(25-jun-2001,dd-mon-yyyy)5 and to_date(28-jun-2001,d

26、d-mon-yyyy)6* group by c.customer_no Partition Partition Operation Options Object Name Start Stop - - - - - SELECT STATEMENT PARTITION HASH ALL 1 8 SORT GROUP BY HASH JOIN PARTITION RANGE ITERATOR 50 53 TABLE ACCESS FULL DAILY_TRANS_DATA 393 424 TABLE ACCESS FULL CUSTOMERS 1 8 分區(qū)表設(shè)計(jì)原則分區(qū)表設(shè)計(jì)原則表的大?。寒?dāng)表的

27、大小超過表的大?。寒?dāng)表的大小超過1.5GB2GB,或?qū)τ诨驅(qū)τ贠LTP系統(tǒng),表系統(tǒng),表的記錄超過的記錄超過1000萬,都應(yīng)考慮對表進(jìn)行分區(qū)。萬,都應(yīng)考慮對表進(jìn)行分區(qū)。 數(shù)據(jù)訪問特性:基于表的大部分查詢應(yīng)用,只訪問表中少量的數(shù)數(shù)據(jù)訪問特性:基于表的大部分查詢應(yīng)用,只訪問表中少量的數(shù)據(jù)。對于這樣表進(jìn)行分區(qū),可充分利用分區(qū)排除無關(guān)數(shù)據(jù)查詢的據(jù)。對于這樣表進(jìn)行分區(qū),可充分利用分區(qū)排除無關(guān)數(shù)據(jù)查詢的特性。特性。 數(shù)據(jù)維護(hù):按時(shí)間段刪除成批的數(shù)據(jù),例如按月刪除歷史數(shù)據(jù)。數(shù)據(jù)維護(hù):按時(shí)間段刪除成批的數(shù)據(jù),例如按月刪除歷史數(shù)據(jù)。對于這樣的表需要考慮進(jìn)行分區(qū),以滿足維護(hù)的需要。對于這樣的表需要考慮進(jìn)行分區(qū),以滿

28、足維護(hù)的需要。數(shù)據(jù)備份和恢復(fù):數(shù)據(jù)備份和恢復(fù): 按時(shí)間周期進(jìn)行表空間的備份時(shí),將分區(qū)與表按時(shí)間周期進(jìn)行表空間的備份時(shí),將分區(qū)與表空間建立對應(yīng)關(guān)系。空間建立對應(yīng)關(guān)系。只讀數(shù)據(jù):如果一個(gè)表中大部分?jǐn)?shù)據(jù)都是只讀數(shù)據(jù),通過對表進(jìn)只讀數(shù)據(jù):如果一個(gè)表中大部分?jǐn)?shù)據(jù)都是只讀數(shù)據(jù),通過對表進(jìn)行分區(qū),可將只讀數(shù)據(jù)存儲(chǔ)在只讀表空間中,對于數(shù)據(jù)庫的備份行分區(qū),可將只讀數(shù)據(jù)存儲(chǔ)在只讀表空間中,對于數(shù)據(jù)庫的備份是非常有益的。是非常有益的。 并行數(shù)據(jù)操作:對于經(jīng)常執(zhí)行并行操作(如并行數(shù)據(jù)操作:對于經(jīng)常執(zhí)行并行操作(如Parallel Parallel Insert,Parallel UpdateInsert,Parall

29、el Update等)的表應(yīng)考慮進(jìn)行分區(qū)。等)的表應(yīng)考慮進(jìn)行分區(qū)。 表的可用性:當(dāng)對表的部分?jǐn)?shù)據(jù)可用性要求很高時(shí),應(yīng)考慮進(jìn)行表的可用性:當(dāng)對表的部分?jǐn)?shù)據(jù)可用性要求很高時(shí),應(yīng)考慮進(jìn)行表分區(qū)。表分區(qū)。 分區(qū)表的管理功能分區(qū)表的管理功能分區(qū)的增加(分區(qū)的增加(ADD)分區(qū)的刪除(分區(qū)的刪除(DROP)分區(qū)的合并(分區(qū)的合并(MERGE)分區(qū)的清空分區(qū)的清空(TRUNCATE)分區(qū)的交換分區(qū)的交換(EXCHANGE)分區(qū)的壓縮分區(qū)的壓縮(COALESE)分區(qū)的移動(dòng)分區(qū)的移動(dòng)(MOVE)分區(qū)的分離分區(qū)的分離(SPLIT)修改分區(qū)的修改分區(qū)的Default Attribute分區(qū)的更名(分區(qū)的更名(REN

30、AME)分區(qū)索引的管理功能分區(qū)索引的管理功能分區(qū)表和分區(qū)表和Local索引索引OCT2002SEP2002AUG2002NOV 2001OCT2001新月份數(shù)據(jù)的加載和索引的維護(hù)新月份數(shù)據(jù)的加載和索引的維護(hù)NOV2002NOV2002NOV2002NOV2002NOV2002NOV2002NOV2002NOV2002NOV2002NOV2002.“滾動(dòng)窗口滾動(dòng)窗口”操作操作 - 大量數(shù)據(jù)高速裝大量數(shù)據(jù)高速裝載載OCT2002SEP2002NOV2002NOV 2001NOV 2001OCT2001OCT2002SEP2002NOV2002DEC 2001NOV 2001OCT2001OCT20

31、02SEP2002NOV2002DEC 2001NOV 2001OCT2001OCT2002SEP2002NOV2002DEC 2001NOV 2001OCT2001OCT2002SEP2002NOV2002DEC 2001NOV 2001OCT2001OCT2002SEP2002NOV2002DEC 2001NOV 2001OCT2001OCT2002SEP2002NOV2002DEC 2001NOV 2001OCT2001OCT2002SEP2002NOV2002DEC 2001NOV 2001OCT2001NOV2002刪除或歸檔最老月份的數(shù)據(jù)刪除或歸檔最老月份的數(shù)據(jù)OCT2001OCT

32、2001新月份數(shù)據(jù)的加載和索引的維護(hù)新月份數(shù)據(jù)的加載和索引的維護(hù).分區(qū)表和分區(qū)表和Local索引索引“滾動(dòng)窗口滾動(dòng)窗口”操作操作 - 大量數(shù)據(jù)高速裝大量數(shù)據(jù)高速裝載載分區(qū)交換功能分區(qū)交換功能通過交換數(shù)據(jù)段,實(shí)現(xiàn)分區(qū)和非分區(qū)表的數(shù)據(jù)交換。以及子分區(qū)和分區(qū)表的數(shù)據(jù)交換非??旖莸臄?shù)據(jù)移動(dòng)方式。特別是沒有validation和索引維護(hù)操作時(shí)Local 索引自動(dòng)維護(hù)Global索引必須重建分區(qū)交換的應(yīng)用分區(qū)交換的應(yīng)用- 全文檢索全文檢索12:00分區(qū)分區(qū) BF_DXX_stage中間表中間表(1)1:00數(shù)數(shù)據(jù)的加載據(jù)的加載 (2)建立建立context 索引索引 (3)partition的的excha

33、ngeBF_DXX表表* 初始化工作初始化工作* 整理工作整理工作 2:00分區(qū)分區(qū)1:00分區(qū)分區(qū) 分區(qū)交換的應(yīng)用分區(qū)交換的應(yīng)用- 全文檢索全文檢索第一步:1:00數(shù)據(jù)的加載insert into BF_DXX_stage(SJ,TEXT3) values(to_date(2004.03.02,YYYY.MM.DD),大撒反對撒);第二步:建立context 索引CREATE INDEX IDX_ BF_DXX _STAGE ON BF_DXX_stage(text3) INDEXTYPE IS CTXSYS.CONTEXT PARAMETERS(LEXER MYLEXER STORAGE

34、MYSTORE FILTER CTXSYS.NULL_FILTER MEMORY 100M) parallel 4;第三步:partition的交換alter table BF_DXX exchange partition p2 with table BF_DXX_stage including indexes;遷移表空間遷移表空間( (Transportable Transportable Tablespace)Tablespace)技術(shù)簡介技術(shù)簡介 第一步:exp transport_tablespace=yes 第二步:FTP 數(shù)據(jù)文件和dmp文件 第三步:imp transport_t

35、ablespace=yes地市系統(tǒng)地市系統(tǒng)imp卸載文件卸載文件省級(jí)系統(tǒng)省級(jí)系統(tǒng)數(shù)據(jù)文件數(shù)據(jù)文件卸載文件卸載文件數(shù)據(jù)文件數(shù)據(jù)文件exp遷移表空間技術(shù)的作用遷移表空間技術(shù)的作用 業(yè)務(wù)系統(tǒng)數(shù)據(jù)向數(shù)據(jù)倉庫系統(tǒng)的遷移 對業(yè)務(wù)系統(tǒng)和數(shù)據(jù)倉庫系統(tǒng)的數(shù)據(jù)進(jìn)行定期歸檔 數(shù)據(jù)倉庫向數(shù)據(jù)集市的數(shù)據(jù)遷移 數(shù)據(jù)對外發(fā)布 按表空間進(jìn)行時(shí)間點(diǎn)的數(shù)據(jù)恢復(fù)(TSPITR) 遷移表空間技術(shù)的優(yōu)點(diǎn)遷移表空間技術(shù)的優(yōu)點(diǎn) 性能大大高于export/import或PL/SQL編寫的程序 由于Dmp文件只包含表空間的結(jié)構(gòu)信息,因此該技術(shù)的真正開銷在于數(shù)據(jù)文件的傳輸。 對源系統(tǒng)的影響非常小 只需要將被遷移的表空間設(shè)置為只讀方式 可同時(shí)傳輸

36、索引數(shù)據(jù),避免在目的數(shù)據(jù)庫中重建索引 分區(qū)交換的應(yīng)用分區(qū)交換的應(yīng)用- ETL在源系統(tǒng)中,將需要抽取的數(shù)據(jù)以如下語句形式,抽取到建立在單獨(dú)表空間上的中間表中: CREATE TABLE . AS SELECT INSERT /*+ APPEND */ AS SELECT 以TTS方式將中間表的表空間傳輸?shù)綌?shù)據(jù)倉庫之中。 exp transportable_tablespace=Yes FTP 中間表表空間的數(shù)據(jù)文件imp transportable_tablespace=Yes 在數(shù)據(jù)倉庫中對中間表進(jìn)行各種數(shù)據(jù)歸并等清洗工作,并建立需要的各種索引。 通過exchange技術(shù),將中間表數(shù)據(jù)及索引直

37、接交換到分區(qū)表中。 Alter table exchange partition with table including indexes; 分區(qū)交換的應(yīng)用分區(qū)交換的應(yīng)用-重復(fù)記錄刪除重復(fù)記錄刪除問題描述: 在使用SQL*Loader進(jìn)行數(shù)據(jù)加載sor_acct_dcc_saamt_c表時(shí),由于操作失誤,重復(fù)加載,導(dǎo)致分區(qū)ETL_LOAD_DATE_0606出現(xiàn)重復(fù)記錄,也使得兩個(gè)唯一索引:IDX_SAACNAMT_C_1,IDX_SAACNAMT_C_2的ETL_LOAD_DATE_0606分區(qū)不可用(UNUSABLE)。用戶在試圖重新創(chuàng)建該分區(qū)索引時(shí),出現(xiàn)如下錯(cuò)誤:SQL alter in

38、dex IDX_SAACNAMT_C_2 rebuild partition ETL_LOAD_DATE_0606;alter index IDX_SAACNAMT_C_2 rebuild partition ETL_LOAD_DATE_0606*ORA-01452: cannot CREATE UNIQUE INDEX; duplicate keys found 分區(qū)交換的應(yīng)用分區(qū)交換的應(yīng)用-重復(fù)記錄刪除重復(fù)記錄刪除在試圖刪除該分區(qū)的重復(fù)記錄時(shí),又出現(xiàn)如下錯(cuò)誤:SQL delete from sor_acct_dcc_saamt_c partition(ETL_LOAD_DATE_0606)

39、where rowid not in (select min(rowid) from s o r _ a c c t _ d c c _ s a a m t _ c partition(ETL_LOAD_DATE_0606) group by ETL_LOAD_DATE, CUST_ACCT_NO, SA_CURR_COD, SA_CURR_IDEN);*ORA-01502: index GYFX.IDX_SAACNAMT_C_1 or partition of such index is in unusable state分區(qū)交換的應(yīng)用分區(qū)交換的應(yīng)用-重復(fù)記錄刪除重復(fù)記錄刪除簡單辦法是徹底刪

40、除這兩個(gè)唯一索引,重新創(chuàng)建。 數(shù)據(jù)量大,時(shí)間太長。 影響系統(tǒng)的可用性。 更完備的解決方式 創(chuàng)建一個(gè)與sor_acct_dcc_saamt_c結(jié)構(gòu)一樣的臨時(shí)表test。 SQL create table test as select * from sor_acct_dcc_saamt_c where 1=2; 將 s o r _ a c c t _ d c c _ s a a m t _ c 表 分 區(qū)ETL_LOAD_DATE_0606數(shù)據(jù)交換到臨時(shí)表test。 SQL alter table sor_acct_dcc_saamt_c exchange partition ETL_LOAD_D

41、ATE_0606 with table test; 分區(qū)交換的應(yīng)用分區(qū)交換的應(yīng)用-重復(fù)記錄刪除重復(fù)記錄刪除更完備的解決方式 刪除test中的重復(fù)記錄 delete from test where rowid not in (select min(rowid) from test group by ETL_LOAD_DATE, CUST_ACCT_NO, SA_CURR_COD, SA_CURR_IDEN); 因?yàn)閠est表沒有任何索引,可避免上述ORA-01502錯(cuò)誤。 將臨時(shí)表test數(shù)據(jù)交換回sor_acct_dcc_saamt_c表分區(qū)ETL_LOAD_DATE_0606 。 alter

42、 table sor_acct_dcc_saamt_c exchange partition ETL_LOAD_DATE_0606 with table test; 分區(qū)交換的應(yīng)用分區(qū)交換的應(yīng)用-重復(fù)記錄刪除重復(fù)記錄刪除更完備的解決方式 重新創(chuàng)建創(chuàng)建該分區(qū)索引IDX_SAACNAMT_C_1,IDX_SAACNAMT_C_2 alter index IDX_SAACNAMT_C_1 rebuild partition E T L _ L O A D _ D A T E _ 0 6 0 6 t a b l e s p a c e ETL0_R_LOAD_IDX_200606; alter ind

43、ex IDX_SAACNAMT_C_2 rebuild partition E T L _ L O A D _ D A T E _ 0 6 0 6 t a b l e s p a c e ETL0_R_LOAD_IDX_200606; 此時(shí)重復(fù)記錄已經(jīng)刪除,可避免上述ORA-01452錯(cuò)誤 現(xiàn)有系統(tǒng)實(shí)施分區(qū)的經(jīng)驗(yàn)現(xiàn)有系統(tǒng)實(shí)施分區(qū)的經(jīng)驗(yàn)分區(qū)的評估分區(qū)的評估OracleOracle報(bào)表優(yōu)化技術(shù)報(bào)表優(yōu)化技術(shù)報(bào)表處理問題報(bào)表處理問題報(bào)表處理是大部分IT系統(tǒng)是最耗時(shí)、最消耗資源的模塊 報(bào)表處理,主要通過Formula One、BO等報(bào)表處理工具實(shí)現(xiàn)SQL語句基本都是各種統(tǒng)計(jì)運(yùn)算語句。SUM GROUP

44、BY各種報(bào)表的表格單元都是統(tǒng)計(jì)運(yùn)算語句生成。統(tǒng)計(jì)運(yùn)算語句量非常大統(tǒng)計(jì)運(yùn)算語句,基本都是從一些交易明細(xì)表或基表,直接進(jìn)行匯總運(yùn)算操作按月匯總的按月匯總的逾期未歸還貸款本金的統(tǒng)計(jì)逾期未歸還貸款本金的統(tǒng)計(jì)查詢查詢查詢查詢自動(dòng)重寫自動(dòng)重寫匯總數(shù)據(jù)管理匯總數(shù)據(jù)管理 - 物化視圖物化視圖Materialized View遼寧省和四遼寧省和四川省川省逾期逾期91180天天未歸還貸款未歸還貸款本金的貸款本金的貸款用戶總數(shù)用戶總數(shù) ?按地區(qū)匯總的按地區(qū)匯總的逾期未歸還貸款本金的統(tǒng)計(jì)逾期未歸還貸款本金的統(tǒng)計(jì)物化視圖物化視圖SQL查詢的實(shí)例化物化視圖可以設(shè)置成查詢重寫功能刷新類型:-Complete or Fast

45、-Force or Never刷新模式:-Manual-Automated (同步或異步)查詢重寫概述查詢重寫概述查詢物化視圖,而不是基表,將極大提高查詢統(tǒng)計(jì)性能。查詢重寫功能對應(yīng)用透明。不需要特殊權(quán)限。查詢重寫-與大小寫無關(guān)-不支持子查詢物化視圖創(chuàng)建例物化視圖創(chuàng)建例SQL CREATE MATERIALIZED VIEW sales_summary 2 TABLESPACE users 3 PARALLEL (DEGREE 4) 4 BUILD IMMEDIATE 5 ENABLE QUERY REWRITE 6 AS 7 SELECT d_name, 8 SUM (s.quantity_sold), 8 SUM (s.amount_sold) 9 FROM sales s, products p 10 WHERE d_id =

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論