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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

Oracle高級技術---大數據處理交流內容分區(qū)技術報表優(yōu)化技術

并行處理應用經驗Oracle的分區(qū)技術

分區(qū)技術內容什么是分區(qū)?分區(qū)的好處?如何實施分區(qū)?如何評估分區(qū)的效果?

Oracle的分區(qū)技術基本原理分而治之SB_ZSXX按年度進行分區(qū)2003200420052006分區(qū)概述大數據對象(表,索引)被分成小物理段當分區(qū)表建立時,記錄基于分區(qū)字段值被存儲到相應分區(qū)。分區(qū)字段值可以修改。(rowmovementenabled)分區(qū)可以存儲在不同的表空間分區(qū)可以有不同的物理存儲參數分區(qū)支持IOT表,對象表,LOB字段,varrays等分區(qū)技術的效益和目標性能Select和DML操作只訪問指定分區(qū)并行DML操作Partition-wiseJoin可管理性:數據刪除,數據備份歷史數據清除提高備份性能指定分區(qū)的數據維護操作可用性將故障局限在分區(qū)中縮短恢復時間分區(qū)目標優(yōu)先級

高性能

–>數據維護能力->實施難度

–>高可用性(故障屏蔽能力)分區(qū)方法分區(qū)方法:范圍---8Hash---8i列表---9i組合---8iRange

partitioningHash

partitioningComposite

partitioningList

partitioning123CREATETABLEsales(acct_noNUMBER(5),personVARCHAR2(30),sales_amountNUMBER(8),week_noNUMBER(2))PARTITIONBYRANGE(week_no)(PARTITIONP1VALUESLESSTHAN(4)TABLESPACEdata0,PARTITIONP2VALUESLESSTHAN(8)TABLESPACEdata1,...…PARTITIONP13VALUESLESSTHAN(53)TABLESPACEdata12);分區(qū)字段:week_no.VALUESLESSTHAN

必須是確定值每個分區(qū)可以單獨指定物理屬性123范圍分區(qū)例最早、最經典的分區(qū)算法Range分區(qū)通過對分區(qū)字段值的范圍進行分區(qū)Range分區(qū)特別適合于按時間周期進行數據的存儲。日、周、月、年等。數據管理能力強數據遷移數據備份數據交換范圍分區(qū)的數據可能不均勻范圍分區(qū)與記錄值相關,實施難度和可維護性相對較差范圍分區(qū)特點Hash分區(qū)區(qū)例例createtableCUSTOMERS(...columndefinitions...)pctfree0nologgingstorage(initial40mnext40mpctincrease0)partitionbyhash(customer_no)partitions8storein(cust_data01,cust_data02)createtableCUSTOMERS(...columndefinitions...)pctfree0nologgingstorage(initial40mnext40mpctincrease0)partitionbyhash(customer_no)(partitioncust_p01tablespacecust_data01,partitioncust_p02tablespacecust_data02,partitioncust_p03tablespacecust_data03,partitioncust_p04tablespacecust_data04,partitioncust_p05tablespacecust_data05,partitioncust_p06tablespacecust_data06,partitioncust_p07tablespacecust_data07,partitioncust_p08tablespacecust_data08)Hash分區(qū)特點基于分區(qū)字段段的HASH值,自動將記記錄插入到指指定分區(qū)。分區(qū)數一般是是2的冪易于實施總體性能最佳佳適合于靜態(tài)數數據HASH分區(qū)適合于數數據的均勻存存儲HASH分區(qū)特別適合合于PDML和partition-wisejoins。。支持(hash)localindexes9i不支持(hash)globalindexes10g支持(hash)globalindexesHASH分區(qū)數據管理能力力弱HASH分區(qū)對數據值值無法控制列表分區(qū)例createtableaddresses(...columndefinitions...)pctfree0nologgingstorage(initial40mnext40mpctincrease0)partitionbylist(city_name)(partitionaddr_p01values('WELLINGTON')tablespaceaddr_data01,partitionaddr_p02values('CHRISTCHURCH')tablespaceaddr_data02,partitionaddr_p03values('DUNEDIN','INVERCARGILL')tablespaceaddr_data03,partitionaddr_p04values('AUCKLAND')tablespaceaddr_data04,partitionaddr_p05values('HAMILTON','ROTORUA','TAURANGA')tablespaceaddr_data05)列表表分分區(qū)區(qū)特特點點List分區(qū)區(qū)通通過過對對分分區(qū)區(qū)字字段段的的離離散散值值進進行行分分區(qū)區(qū)。。List分區(qū)區(qū)是是不不排排序序的的,,而而且且分分區(qū)區(qū)之之間間沒沒有有關關聯(lián)聯(lián)關關系系List分區(qū)區(qū)適適合合于于對對數數據據離離散散值值進進行行控控制制。。List分區(qū)區(qū)只只支支持持單單個個字字段段。。List分區(qū)區(qū)具具有有與與范范圍圍分分區(qū)區(qū)相相似似的的優(yōu)優(yōu)缺缺點點數據據管管理理能能力力強強List分區(qū)區(qū)的的數數據據可可能能不不均均勻勻List分區(qū)區(qū)與與記記錄錄值值相相關關,,實實施施難難度度和和可可維維護護性性相相對對較較差差復合合分分區(qū)區(qū)例例createtabledaily_trans_data(...columndefinitions...)partitionbyrange(trans_datetime)subpartitionbyhash(customer_no)subpartitions8storein(dtd_data01,dtd_data02)(partitiondtd_20010620valueslessthan(to_date('21-jun-2001','dd-mon-yyyy'))(subpartitiondtd_20010620_s01,subpartitiondtd_20010620_s02,subpartitiondtd_20010620_s03tablespacedtd_data03,subpartitiondtd_20010620_s04tablespacedtd_data04,subpartitiondtd_20010620_s05tablespacedtd_data05,subpartitiondtd_20010620_s06tablespacedtd_data06,subpartitiondtd_20010620_s07tablespacedtd_data07,subpartitiondtd_20010620_s08tablespacedtd_data08),partitiondtd_20010621valueslessthan(to_date('22-jun-2001','dd-mon-yyyy')),partitiondtd_20010622valueslessthan(to_date('23-jun-2001','dd-mon-yyyy'))subpartitions4)復合分區(qū)圖示示復合分區(qū)特點點Oracle支持的Composite分區(qū):Range-Hash,Range-List既適合于歷史史數據,又適適合于數據均均勻分布與范圍分區(qū)一一樣提供高可可用性和管理理性更好的PDML和partition-wisejoins性能實現(xiàn)粒度更細細的操作支持復合localindexes不支持復合compositeglobalindexes?分區(qū)索引不分區(qū)分區(qū)不分區(qū)

分區(qū)表索引√√√√GlobalNonpartitionedindexLocalpartitionedindexGlobalPartitionedIndex不同的分區(qū)索索引紹興杭州溫州03年04年…08年分區(qū)索引分區(qū)表索引的的分類:LocalPrefixedindexLocalNon-prefiexedindexGlobalPrefixedindexNonPartitionIndexGlobal索引的分區(qū)不不同與表分區(qū)區(qū)Local索引的分區(qū)與與表分區(qū)相同同Anindexisprefixedifitispartitionedonaleftprefixoftheindexcolumns.分區(qū)表上的非非分區(qū)索引等等同于Global索引分區(qū)索引Global索引必須是范范圍分區(qū)---9i之前Global索引可以是HASH分區(qū)--10g新特性Global索引不支持Bitmap索引Unique索引必須是prefixed,或者包含分區(qū)區(qū)字段Local索引(non-prefixed,non-unique)可以不包含分分區(qū)字段createindexcust_idx1oncustomers(customer_name)globalpartitionbyrange(customer_name)(partitioncust_p01valueslessthan(‘H’’)tablespacecust_index01,partitioncust_p02valueslessthan(‘N’)tablespacecust_index02,partitioncust_p03valueslessthan(‘T’’)tablespacecust_index03,partitioncust_p04valueslessthan(MAXVALUE)tablespacecust_index04)createindexcust_idx2oncustomers(customer_no)local(partitioncust_idx_p01tablespacecust_index01,partitioncust_idx_p02tablespacecust_index02,partitioncust_idx_p03tablespacecust_index03,partitioncust_idx_p04tablespacecust_index04,partitioncust_idx_p05tablespacecust_index05,partitioncust_idx_p06tablespacecust_index06,partitioncust_idx_p07tablespacecust_index07,partitioncust_idx_p08tablespacecust_index08)createindexcust_idx3oncustomers(customer_type)local;分區(qū)索索引舉舉例分區(qū)表表索引引的使使用OLTP系統(tǒng)中中的建建議Global和uniquelocalindex性能優(yōu)優(yōu)于nonuniquelocalindexLocalindex提供了了更好好的可可用性性數據倉倉庫系系統(tǒng)中中的建建議Localindex更適合合于數數據裝裝載和和分區(qū)區(qū)維護護在大量量數據據統(tǒng)計計時,,能充充分利利用Localindex并行查查詢能能力在性能能、高高可用用性和和可管管理性性之間間進行行平衡衡分區(qū)索索引選選擇策策略分區(qū)裁裁剪功功能Partitionpruning:Onlytherelevantpartitionsareaccessed.99-May99-Apr99-Feb99-Jan99-Mar99-JunsalesSQL>SELECTSUM(sales_amount)2FROMsales3WHEREsales_dateBETWEEN4TO_DATE(‘‘01-MAR-1999’’,5‘‘DD-MON-YYYY’’)AND6TO_DATE(‘‘31-MAY-1999’’,7‘‘DD-MON-YYYY’’);分區(qū)區(qū)裁裁剪剪舉舉例例1select*fromdaily_trans_summ2*wheretrans_datetimebetweento_date('25-jun-200108','DD-mon-yyyyhh24')andto_date('28-jun-200118','DD-mon-yyyyhh24')PartitionPartitionOperationOptionsObjectNameStartStop-----------------------------------------------------------------------------SELECTSTATEMENTPARTITIONRANGEITERATOR231234TABLEACCESSFULLDAILY_TRANS_SUMM2312341select*fromdaily_trans_summ2*wheretrans_datetimein('25-jun-2001','28-jun-2001')PartitionPartitionOperationOptionsObjectNameStartStop-----------------------------------------------------------------------------SELECTSTATEMENTPARTITIONRANGEINLISTKEY(INLIST)KEY(INLIST)TABLEACCESSFULLDAILY_TRANS_SUMMKEY(INLIST)KEY(INLIST)Nonpartition-wisejoinFullpartition-wisejoinPartialpartition-wisejoinQueryslavePartitionPartitionedtable123Partition-WiseJoinPartition-wiseJoinsTablesandindexesthatarepartitionedidenticallyareequi-partitioned.Afullpartition-wisejoinoccurswhenjoiningtwoequi-partitionedtablesthatarepartitionedonthejoinkey.Oraclesplitsthejoinintojoinsofpairsofpartitions.Apartialpartition-wisejoinoccurswhenonlyoneofthetablesispartitionedonthejoinkey.Partition-wisejoinsoccurwhenjoiningahashpartitiontabletOracleassignsparallelqueryslavestoprocessthepartitionjoins.Partition-wiseJoins舉例1select/*+full(c)*/c.customer_no,count(*)2fromcustomersc,daily_trans_datad3wherec.customer_no=d.customer_no4andd.trans_datetimebetweento_date('25-jun-2001','dd-mon-yyyy')5andto_date('28-jun-2001','dd-mon-yyyy')6*groupbyc.customer_noPartitionPartitionOperationOptionsObjectNameStartStop-----------------------------------------------------------------------------SELECTSTATEMENTPARTITIONHASHALL18SORTGROUPBYHASHJOINPARTITIONRANGEITERATOR5053TABLEACCESSFULLDAILY_TRANS_DATA393424TABLEACCESSFULLCUSTOMERS18分區(qū)表設計計原則表的大?。海寒敱淼拇蟠笮〕^1.5GB-2GB,或對于OLTP系統(tǒng),表的的記錄超過過1000萬,都應考考慮對表進進行分區(qū)。。數據訪問特特性:基于于表的大部部分查詢應應用,只訪訪問表中少少量的數據據。對于這這樣表進行行分區(qū),可可充分利用用分區(qū)排除除無關數據據查詢的特特性。數據維護::按時間段段刪除成批批的數據,,例如按月月刪除歷史史數據。對對于這樣的的表需要考考慮進行分分區(qū),以滿滿足維護的的需要。數據備份和和恢復:按時間周期期進行表空空間的備份份時,將分分區(qū)與表空空間建立對對應關系。。只讀數據::如果一個個表中大部部分數據都都是只讀數數據,通過過對表進行行分區(qū),可可將只讀數數據存儲在在只讀表空空間中,對對于數據庫庫的備份是是非常有益益的。并行數據操操作:對于于經常執(zhí)行行并行操作作(如ParallelInsert,ParallelUpdate等)的表應應考慮進行行分區(qū)。表的可用性性:當對表表的部分數數據可用性性要求很高高時,應考考慮進行表表分區(qū)。分區(qū)表的管管理功能分區(qū)的增加加(ADD)分區(qū)的刪除除(DROP))分區(qū)的合并并(MERGE)分區(qū)的清空空(TRUNCATE)分區(qū)的交換換(EXCHANGE)分區(qū)的壓縮縮(COALESE))分區(qū)的移動動(MOVE)分區(qū)的分離離(SPLIT)修改分區(qū)的的DefaultAttribute分區(qū)的更名名(RENAME)分區(qū)索引的的管理功能能分區(qū)索引的的刪除(DROP))分區(qū)索引的的修改(MODIFY)分區(qū)索引DefaultAttribute的修改分區(qū)索引的的重建(REBUILD))分區(qū)索引的的更名(RENAME)分區(qū)索引的的分離(SPLIT)分區(qū)索引的的Unusable分區(qū)表和Local索引OCT

2002SEP

2002AUG2002NOV

2001OCT

2001新月份數據據的加載和和索引的維維護NOV

2002NOV

2002NOV

2002NOV

2002NOV

2002NOV

2002NOV

2002NOV

2002NOV

2002NOV

2002...“滾動窗口口”操作-大量量數據高速速裝載OCT

2002SEP

2002NOV

2002NOV

2001NOV

2001OCT

2001OCT

2002SEP

2002NOV

2002DEC

2001NOV

2001OCT

2001OCT

2002SEP

2002NOV

2002DEC

2001NOV

2001OCT

2001OCT

2002SEP

2002NOV

2002DEC

2001NOV

2001OCT

2001OCT

2002SEP

2002NOV

2002DEC

2001NOV

2001OCT

2001OCT

2002SEP

2002NOV

2002DEC

2001NOV

2001OCT

2001OCT

2002SEP

2002NOV

2002DEC

2001NOV

2001OCT

2001OCT

2002SEP

2002NOV

2002DEC

2001NOV

2001OCT

2001NOV

2002刪除或歸檔檔最老月份份的數據OCT

2001OCT

2001新月份數據據的加載和和索引的維維護...分區(qū)表和Local索引“滾動窗口口”操作-大量量數據高速速裝載分區(qū)交換功功能通過交換數數據段,實實現(xiàn)分區(qū)和和非分區(qū)表表的數據交交換。以及及子分區(qū)和和分區(qū)表的的數據交換換非??旖莸牡臄祿苿觿臃绞健L靥貏e是沒有有validation和索引維護護操作時Local索引自動維維護Global索引必須重重建分區(qū)交換的的應用---全文文檢索12:00分區(qū)BF_DXX_stage中間表(1)1:00數據的加載載(2)建立context索引(3)partition的exchangeBF_DXX表*初始化化工作*整理工工作……2:00分分區(qū)1:00分區(qū)分區(qū)交換的的應用---全文文檢索第一步:1:00數數據的加載載insertintoBF_DXX_stage(SJ,TEXT3)values(to_date('2004.03.02','YYYY.MM.DD'),'大撒反對撒撒');第二步:建建立context索引CREATEINDEXIDX_BF_DXX_STAGEONBF_DXX_stage(text3)INDEXTYPEISCTXSYS.CONTEXTPARAMETERS('LEXERMYLEXERSTORAGEMYSTOREFILTERCTXSYS.NULL_FILTERMEMORY100M')parallel4;第三步:partition的交換altertableBF_DXXexchangepartitionp2withtableBF_DXX_stageincludingindexes;遷移表空間間(Transportabl第一步::exptransport_tablespace=yes第二步::FTP數據文件件和dmp文件第三步::imptransport_tablespace=yes地市系統(tǒng)imp卸載文件省級系統(tǒng)FTP數據文件卸載文件數據文件exp遷移表空空間技術術的作用用業(yè)務系統(tǒng)統(tǒng)數據向向數據倉倉庫系統(tǒng)統(tǒng)的遷移移對業(yè)務系系統(tǒng)和數數據倉庫庫系統(tǒng)的的數據進進行定期期歸檔數據倉庫庫向數據據集市的的數據遷遷移數據對外外發(fā)布按表空間間進行時時間點的的數據恢恢復(TSPITR)遷移表空間間技術的優(yōu)優(yōu)點性能大大高高于export/import或PL/SQL編寫的程序序由于Dmp文件只包含含表空間的的結構信息息,因此該該技術的真真正開銷在在于數據文文件的傳輸輸。對源系統(tǒng)的的影響非常常小只需要將被被遷移的表表空間設置置為只讀方方式可同時傳輸輸索引數據據,避免在在目的數據據庫中重建建索引分區(qū)交換的的應用---ETL在源系統(tǒng)中中,將需要要抽取的數數據以如下下語句形式式,抽取到到建立在單單獨表空間間上的中間間表中:CREATETABLE...ASSELECT…INSERT/*+APPEND*/ASSELECT…以TTS方式將將中間間表的的表空空間傳傳輸到到數據據倉庫庫之中中。exptransportable_tablespace=Yes…FTP中間表表表空空間的的數據據文件件imptransportable_tablespace=Yes…在數據據倉庫庫中對對中間間表進進行各各種數數據歸歸并等等清洗洗工作作,并并建立立需要要的各各種索索引。。通過exchange技術,,將中中間表表數據據及索索引直直接交交換到到分區(qū)區(qū)表中中。Altertable<分區(qū)表表>exchangepartition<分區(qū)名名>withtable<中間表表>includingindexes;分區(qū)交交換的的應用用---重復記記錄刪刪除問題描描述::在在使用用SQL*Loader進行數據加載載sor_acct_dcc_saamt_c表時,由于操操作失誤,重重復加載,導導致分區(qū)ETL_LOAD_DATE_0606出現(xiàn)重復記錄錄,也使得兩兩個唯一索引引:IDX_SAACNAMT_C_1,IDX_SAACNAMT_C_2的ETL_LOAD_DATE_0606分區(qū)不可用((UNUSABLE)。用戶在試圖重重新創(chuàng)建該分分區(qū)索引時,,出現(xiàn)如下錯錯誤:SQL>alterindexIDX_SAACNAMT_C_2rebuildpartitionETL_LOAD_DATE_0606;alterindexIDX_SAACNAMT_C_2rebuildpartitionETL_LOAD_DATE_0606*ORA-01452:cannotCREATEUNIQUEINDEX;duplicatekeysfound分區(qū)交換的應應用---重復記錄刪除除在試圖刪除該該分區(qū)的重復復記錄時,又又出現(xiàn)如下錯錯誤:SQL>deletefromsor_acct_dcc_saamt_cpartition(ETL_LOAD_DATE_0606)whererowidnotin(selectmin(rowid)fromsor_acct_dcc_saamt_cpartition(ETL_LOAD_DATE_0606)groupbyETL_LOAD_DATE,CUST_ACCT_NO,SA_CURR_COD,SA_CURR_IDEN);*ORA-01502:index'GYFX.IDX_SAACNAMT_C_1'orpartitionofsuchindexisinunusablestate分區(qū)交換的應應用---重復記錄刪除除簡單辦法是徹徹底刪除這兩兩個唯一索引引,重新創(chuàng)建建。數據量大,時時間太長。影響系統(tǒng)的可可用性。更完備的解決決方式創(chuàng)建一個與sor_acct_dcc_saamt_c結構一樣的臨臨時表test。SQL>createtabletestasselect*fromsor_acct_dcc_saamt_cwhere1=2;將sor_acct_dcc_saamt_c表分區(qū)ETL_LOAD_DATE_0606數據交換到臨臨時表test。SQL>altertablesor_acct_dcc_saamt_cexchangepartitionETL_LOAD_DATE_0606withtabletest;分區(qū)交換的應應用---重復記錄刪除除更完備的解決決方式刪除test中的重復記錄錄deletefromtestwhererowidnotin(selectmin(rowid)fromtestgroupbyETL_LOAD_DATE,CUST_ACCT_NO,SA_CURR_COD,SA_CURR_IDEN);因為test表沒有任何索索引,可避免免上述ORA-01502錯誤。將臨時表test數據交換回sor_acct_dcc_saamt_c表分區(qū)ETL_LOAD_DATE_0606。altertablesor_acct_dcc_saamt_cexchangepartitionETL_LOAD_DATE_0606withtabletest;分區(qū)交換的應應用---重復記錄刪除除更完備的解決決方式重新創(chuàng)建創(chuàng)建建該分區(qū)索引引IDX_SAACNAMT_C_1,IDX_SAACNAMT_C_2alterindexIDX_SAACNAMT_C_1rebuildpartitionETL_LOAD_DATE_0606tablespaceETL0_R_LOAD_IDX_200606;alterindexIDX_SAACNAMT_C_2rebuildpartitionETL_LOAD_DATE_0606tablespaceETL0_R_LOAD_IDX_200606;此時重復記錄錄已經刪除,,可避免上述述ORA-01452錯誤現(xiàn)有系統(tǒng)實施施分區(qū)的經驗驗分區(qū)對象的確確定:存儲空空間最大的前前20個表Select*from(Select*fromdba_segmentsorderbybytesdesc)whererownum<=20;分析大表的操操作行為Select*from(Selectsql_text,executionsfromv$sqlareawhereupper(sql_text)like‘%SB_ZSXX%’orderbyexecutionsdesc)whererownum<=20;綜合其它分分區(qū)因素的的考慮:性性能,數據據遷移,備備份,高可可用性,可可維護性分區(qū)的評估估性能方面相應速度資源消耗((CPU、內存、I/O)性能分析工工具的使用用:OracleTrace,Autotrace,TKPROF其它方面數據遷移能能力數據備份和和恢復數據擴展性性(Add,Drop,Exchange,Merge,…)數據高可用用性Oracle報表優(yōu)化技技術報表處理問問題報表處理是是大部分IT系統(tǒng)是最耗時、最最消耗資源源的模塊報表處理,,主要通過過FormulaOne、BO等報表處理工工具實現(xiàn)SQL語句基本都都是各種統(tǒng)統(tǒng)計運算語語句?!璖UM…GROUPBY各種報表的的表格單元元都是統(tǒng)計計運算語句句生成。統(tǒng)統(tǒng)計運算語語句量非常常大統(tǒng)計運算語語句,基本本都是從一一些交易明明細表或基基表,直接接進行匯總總運算操作作其他匯總數數據按月匯總的的逾期未歸還還貸款本金金的統(tǒng)計查詢交易明細查詢自動重寫匯總數據管管理-物物化視圖圖MaterializedView遼寧省和四四川省逾期91--180天天未歸還貸貸款本金的的貸款用戶戶總數?按地區(qū)匯總總的逾期未歸還還貸款本金金的統(tǒng)計物化視圖SQL查詢的實例例化物化視圖可可以設置成成查詢重寫寫功能刷新類型:CompleteorFastForceorNever刷新模式:ManualAutomated(同步或異步步)查詢重寫概概述查詢物化視視圖,而不不是基表,,將極大提提高查詢統(tǒng)統(tǒng)計性能。。查詢重寫功功能對應用用透明。不不需要特殊殊權限。查詢重寫與大小寫無無關不支持子查查詢物化視圖創(chuàng)創(chuàng)建例SQL>CREATEMATERIALIZEDVIEWsales_summary2TABLESPACEusers3PARALLEL(DEGREE4)4BUILDIMMEDIATE5ENABLEQUERYREWRITE6AS7SELECTd_name,8SUM(s.quantity_sold),8SUM(s.amount_sold)9FROMsaless,productsp10WHEREd_id=d_id11GROUPBYd_name;物化視圖創(chuàng)創(chuàng)建和查詢詢重寫例SQL>SELECTd_name,SUM(s.quantity_sold),2SUM(s.amount_sold)3FROMsaless,productsp4WHEREd_id=d_id5GROUPBYd_name;SQL>selectoperation,object_name2fromv$sql_plan3whereobject_namelike'SALES%';OPERATIONNAME---------------------------------------SELECTSTATEMENTTABLEACCESSSALES_SUMMARY報表優(yōu)化的基基本思路以報表為單位位,分析現(xiàn)有有報表的SQL語句。總結統(tǒng)統(tǒng)計運算SQL的共同規(guī)律,,作為設計物物化視圖的考考慮對象。定義相應的物物化視圖。包包括SQL查詢語句的編編寫,刷新方方式的確定等等評價原有統(tǒng)計計運算SQL語句的執(zhí)行計計劃,是否被被Oracle查詢重寫到相相應的物化視視圖評價如何在物物化視圖上創(chuàng)創(chuàng)建索引評估所有物化化視圖數據和和索引的空間間消耗情況,,從而確定物物化視圖數據據和索引表空空間的容量報表優(yōu)化示例例現(xiàn)有統(tǒng)計運算算語句SELECTts_stab.VIP_ORG_STAFF.VIP_ORGAN3_NAME,ts_stab.VIP_ORG_STAFF.VIP_ORGAN2_NAME,sum(ts_dyna.VIP_ACCT_ALL.T1)/100,sum(ts_dyna.VIP_ACCT_ALL.T29)/100))/100FROMts_stab.VIP_ORG_STAFF,ts_dyna.VIP_ACCT_ALLWHERE(ts_dyna.VIP_ACCT_ALL.STAFF_ID=ts_stab.VIP_ORG_STAFF.STAFF_ID)AND(((ts_stab.VIP_ORG_STAFF.VIP_ORGAN3)='org2'OR'ALL'='org2')AND((ts_stab.VIP_ORG_STAFF.VIP_ORGAN2)='ALL'OR'ALL'='ALL')AND((ts_dyna.VIP_ACCT_ALL.ACCOUNT_DATE)>='200401'AND(ts_dyna.VIP_ACCT_ALL.ACCOUNT_DATE)<='200401'))GROUPBYts_stab.VIP_ORG_STAFF.VIP_ORGAN3_NAME,ts_stab.VIP_ORG_STAFF.VIP_ORGAN2_NAME報表優(yōu)化示示例物化視圖定定義CREATEMATERIALIZEDVIEWMV_01TABLESPACETS_TAB_DYNPARALLEL(DEGREE2)BUILDIMMEDIATEREFRESHCOMPLETEONDEMANDENABLEQUERYREWRITEASSELECTts_stab.VIP_ORG_STAFF.VIP_ORGAN3_NAME,ts_stab.VIP_ORG_STAFF.VIP_ORGAN2_NAME,ts_stab.VIP_ORG_STAFF.VIP_ORGAN3,ts_stab.VIP_ORG_STAFF.VIP_ORGAN2,ts_dyna.VIP_ACCT_ALL.ACCOUNT_DATE,sum(ts_dyna.VIP_ACCT_ALL.T1),sum(ts_dyna.VIP_ACCT_ALL.T29)FROMts_stab.VIP_ORG_STAFF,ts_dyna.VIP_ACCT_ALLWHERE(ts_dyna.VIP_ACCT_ALL.STAFF_ID=ts_stab.VIP_ORG_STAFF.STAFF_ID)GROUPBYts_stab.VIP_ORG_STAFF.VIP_ORGAN3_NAME,ts_stab.VIP_ORG_STAFF.VIP_ORGAN2_NAME,ts_stab.VIP_ORG_STAFF.VIP_ORGAN3,ts_stab.VIP_ORG_STAFF.VIP_ORGAN2,ts_dyna.VIP_ACCT_ALL.ACCOUNT_DATE報表優(yōu)化示示例TABLESPACETS_TAB_DYN:物化視圖MV_01存放的表空空間。建議議為物化視視圖單獨設設立表空間間PARALLEL(DEGREE2):并行度設計計為2(與與目前的CPU個數相等))BUILDIMMEDIATE:創(chuàng)建MV_01的同時,產產生匯總數數據REFRESHCOMPLETEONDEMAND:完全刷新ENABLEQUERYREWRITE::啟動查詢語語句重寫功功能報表優(yōu)化示示例SELECT短語應包含含的字段原SELECT語句的所有有非統(tǒng)計運運算字段。。ts_stab.VIP_ORG_STAFF.VIP_ORGAN3_NAME,ts_stab.VIP_ORG_STAFF.VIP_ORGAN2_NAME,原SELECT語句中所有有查詢條件件涉及到的的字段。如如:ts_stab.VIP_ORG_STAFF.VIP_ORGAN3,ts_stab.VIP_ORG_STAFF.VIP_ORGAN2,ts_dyna.VIP_ACCT_ALL.ACCOUNT_DATE,原子化(Primitive)的統(tǒng)計運算算字段。即即去掉表達達式的統(tǒng)計計運算字段段sum(ts_dyna.VIP_ACCT_ALL.T1),sum(ts_dyna.VIP_ACCT_ALL.T29),報表優(yōu)化示示例創(chuàng)建物化視視圖上的索索引createindexidx_MV_01_01onMV_01(VIP_ORGAN3)tablespaceTS_IND_DYNA;物化視圖上上的刷新定期執(zhí)行如如下命令,,可自動進進行物化視視圖的刷新新execdbms_mview.refresh('TS_DYNA.MV_01');報表優(yōu)化示示例初始化參數數的設置query_rewrite_enabled:TRUEquery_rewrite_integrity:STALE_TOLERATED權限方面的的設置grantCREATEANYMATE

溫馨提示

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

評論

0/150

提交評論