




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
Oracle8數(shù)據(jù)庫系統(tǒng)改進表的存取性能-索引與數(shù)據(jù)簇分區(qū)選件-分區(qū)表與分區(qū)索引并行選件-SQL語句并行處理新的數(shù)據(jù)類型(多媒體數(shù)據(jù)類型)索引索引在數(shù)據(jù)庫應(yīng)用中,性能主要取決于存取表中數(shù)據(jù)的速度。索引可以快速找到待定的表記錄。索引維護與應(yīng)用:索引對用戶透明當(dāng)有索引且能提高應(yīng)用的性能時,Oracle自動使用索引。Oracle自動更新索引以使其與表同步。索引類型B樹索引(系統(tǒng)自動為主碼和唯一完整性約束建立)位圖索引索引表,分區(qū)索引,反向鍵值索引…。SMITHALLENWARDJONESMARTINBLAKECLARKSCOTTKINGTURNERADAMSJAMESFORDMILLERB樹索引createindex索引名on表名(列名)
ADAMSALLENBLAKECLARKFORDJAMESJONESKINGMARTINMILLERSCOTTSMITHTURNERWARDMILLERTURNERBLAKEJAMESKINGROWID對于索引列的每一個可能的值,都有獨立的位圖項。在位圖項中的每一位代表一個可能的ROWID,為1意味著該行包含關(guān)鍵值。例如:LOC列(3種取值)北京(010011)天津(100000)上海(001100)第二個記錄第一個記錄位圖函數(shù)可以將位的位置轉(zhuǎn)換為實際的ROWID。通過位圖索引的合并簡化查詢條件,從而過濾被訪問的數(shù)據(jù)集合。位圖索引d01合資d02合資d03合資d04外企d05國企d06合資dnotype天津北京上海上海北京北京loc
selectdnofromdepwheretype=‘合資’andlocin(‘北京’,‘上海’);合資北京上海 1000 1 1 01 d02 1 011 d03 0AND 0OR1=0 0 100 1 10 1 d06 位圖索引的例子位圖索引建立位圖索引;createbitmapindexdep_indexondep(type);createbitmapindexdep_indexondep(doc);位圖索引適用于列的值取值不多的情況、索引列含有越多的值,位圖項就越多,需要存儲索引的空間也越大。由于Oracle必須展開一個位圖索引的方式,所以不適于經(jīng)常插入或更新數(shù)據(jù)的應(yīng)用。位圖索引典型地用于決策系統(tǒng)與數(shù)據(jù)倉庫應(yīng)用中查詢數(shù)據(jù)。簇(聚集)索引當(dāng)cluster建立后,必須建立簇索引后,被聚集的表才能訪問。系統(tǒng)不會自動為簇建索引。例:createclusertdep_emp(depnochar(3));createtabledep(dno..,dname..,…)clusterdep_emp(dno);createtableemp(emp…,…dno...)clusterdep_emp(dno);createindexdep_emp_idxonclusterdep_emp;簇(聚集)索引簇索引表的存儲e01王山男d01佳月公司8200e02張麗女d01e10孫軍男d02運通公司2034d03安合物業(yè)6800來自emp來自depclusterkey分區(qū)選件分區(qū)選選件分區(qū)的的原因因表和索索引迅迅速膨膨脹數(shù)據(jù)倉倉庫和和決策策支持持的需需要什么是是分區(qū)區(qū)大的表表或索索引可可以拆拆分為為小的的易于于管理理的數(shù)數(shù)據(jù)片片斷,例例如將將銷售售表按按銷售售日期期拆分分成一一系列列數(shù)據(jù)據(jù)片斷斷其中每每一個個片斷斷稱為為一個個分區(qū)區(qū)(partition)被分區(qū)區(qū)的表表稱為為分區(qū)區(qū)表。。數(shù)據(jù)倉倉庫的的概念念數(shù)據(jù)倉倉庫就就是面面向主主題的的、集集成的的、穩(wěn)穩(wěn)定的的、不不同時時間的的數(shù)據(jù)據(jù)集合合,用用以支支持經(jīng)經(jīng)營管管理中中的決決策制制定過過程。。主題是是一個個在較較高層層次將將數(shù)據(jù)據(jù)歸類類的標(biāo)標(biāo)準(zhǔn),,每一一個主主題對對應(yīng)一一個宏宏觀的的分析析領(lǐng)域域數(shù)據(jù)倉倉庫的的集成成特性性是指指在數(shù)數(shù)據(jù)進進入數(shù)數(shù)據(jù)倉倉庫之之前,,必須須經(jīng)過過數(shù)據(jù)據(jù)加工工和集集成,,統(tǒng)一一原始始數(shù)據(jù)據(jù)中的的矛盾盾之處處,將將原始始數(shù)據(jù)據(jù)結(jié)構(gòu)構(gòu)做一一個從從面向向應(yīng)用用向面面向主主題的的轉(zhuǎn)變變。數(shù)據(jù)倉倉庫的的穩(wěn)定定性是是指數(shù)數(shù)據(jù)倉倉庫反反映的的是歷歷史數(shù)數(shù)據(jù)的的內(nèi)容容,而而不是是日常常事務(wù)務(wù)處理理產(chǎn)生生的數(shù)數(shù)據(jù),,進入入數(shù)據(jù)據(jù)倉庫庫后是是極少少或根根本不不修改改的數(shù)據(jù)倉倉庫的的概念念數(shù)據(jù)倉倉庫最最根本本的特特點是是物理理地存存放數(shù)數(shù)據(jù)。。這些些數(shù)據(jù)據(jù)并不不是最最新的的、專專有的的,而而是來來源于于其它它數(shù)據(jù)據(jù)庫的的。數(shù)據(jù)倉倉庫的的建立立并不不是要要取代代數(shù)據(jù)據(jù)庫,,它要要建立立在一一個較較全面面和完完善的的信息息應(yīng)用用的基基礎(chǔ)上上,用用于支支持高高層決決策分分析。。而事務(wù)務(wù)處理理數(shù)據(jù)據(jù)庫在在企業(yè)業(yè)的信信息環(huán)環(huán)境中中承擔(dān)擔(dān)的是是日常常操作作性的的的任任務(wù)。。數(shù)據(jù)倉倉庫是是數(shù)據(jù)據(jù)庫技技術(shù)的的一種種新的的應(yīng)用用,而而且到到目前前為止止,數(shù)數(shù)據(jù)倉倉庫還還是用用數(shù)據(jù)據(jù)庫管管理系系統(tǒng)來來管理理其中中的數(shù)數(shù)據(jù)。。分區(qū)只有表表和索索引可可以分分區(qū)。。分區(qū)對對于應(yīng)應(yīng)用人人員和和用戶戶是透透明的的。分區(qū)可可以控控制數(shù)數(shù)據(jù)的的存儲儲地點點:將數(shù)據(jù)據(jù)分散散存儲儲在多多個磁磁盤上上。將經(jīng)常常使用用的數(shù)數(shù)據(jù)放放在快快速的的磁盤盤上。。分區(qū)可可以有有不同同的物物理屬屬性::分區(qū)可可以有有不同同的存存儲參參數(shù)(tablespace,pctfree,pctused,等等等等)分區(qū)表表或索索引可可以跨跨表空空間存存儲,分分區(qū)不不可以以。同一模模式對對象的的所有有分區(qū)區(qū)必須須具有有相同同的邏邏輯屬屬性::相同的的列,數(shù)數(shù)據(jù)類類型,約約束。。分區(qū)的的作用用增加了了數(shù)據(jù)據(jù)的可可用性性不同的的分區(qū)區(qū)可以以跨表表空間間存儲儲,可可以進進行分分區(qū)級級的備備份和和恢復(fù)復(fù)。不同的的分區(qū)區(qū)可以以跨表表空間間存儲儲,降降低低了磁磁盤損損壞帶帶來的的數(shù)據(jù)據(jù)不可可用性性。不不可用用的分分區(qū)不不會影影響到到對其其它分分區(qū)的的查詢詢和維維護提高了了系統(tǒng)統(tǒng)性能能服務(wù)器器可以以進行行智能能的分分區(qū)檢檢測跳過與與查詢詢無關(guān)關(guān)的分分區(qū)訪訪問跳過不不在線線的分分區(qū)在物理理設(shè)備備上負負載均均衡將數(shù)據(jù)據(jù)分散散存儲儲在多多個磁磁盤上上,實實現(xiàn)現(xiàn)并行行存取取分區(qū)關(guān)關(guān)鍵字字分區(qū)關(guān)關(guān)鍵字字決定了了劃分分分區(qū)區(qū)的依依據(jù)只能是是標(biāo)準(zhǔn)準(zhǔn)數(shù)據(jù)據(jù)類型型:Number,Date,Character(VARCHAR2,CHAR)可以是是多至至16個的的列的的聯(lián)合合對關(guān)鍵鍵字的的修改改不能能導(dǎo)致致記錄錄在分分區(qū)之之間的的移動動分區(qū)的的數(shù)據(jù)據(jù)范圍圍LESSTHAN子子句句指指定定每每個個分分區(qū)區(qū)的的上上限限值值。。除第第一一個個分分區(qū)區(qū)外外,,每每一一個個分分區(qū)區(qū)都都有有一一個個隱隱含含的的下下限限值值((即即前前一一個個分分區(qū)區(qū)的的上上限限值值))。。最后后一一個個分分區(qū)區(qū)的的上上限限值值可可以以設(shè)設(shè)定定為為MAXVALUE必須須按按照照升升序序排排列列來來聲聲明明分分區(qū)區(qū)。。建立立分分區(qū)區(qū)表表例例1CREATETABLEsales97(acct_nonumber(5),product_idnumber(12),qtynumber(8),sales_datedate)PARTITIONBYRANGE(sales_date)(PARTITIONp1VALUESLESSTHAN(to_date('01-4月月-1997','dd-mon-yyyy'))TABLESPACEp1_space,PARTITIONp2VALUESLESSTHAN(to_date('01-7月月-1997','dd-mon-yyyy'))TABLESPACEp2_space,PARTITIONp3VALUESLESSTHAN(to_date('01-10月月-1997','dd-mon-yyyy'))TABLESPACEp3_space,PARTITIONp4VALUESLESSTHAN(MAXVALUE));建立立分分區(qū)區(qū)表表例例2CREATETABLEstu_score(stu_numNUMBER(5),scorenumbernotnull,test_yearnumbernotnull,test_monthnumbernotnull,test_daynumbernotnull)PARTITIONBYRANGE(test_year,test_month,test_day)(PARTITIONscore_q1VALUESLESSTHAN(1997,07,01)TABLESPACEeducation1,PARTITIONscore_q2VALUESLESSTHAN(1998,02,01)TABLESPACEeducation2)查看看分分區(qū)區(qū)情情況況查分分區(qū)區(qū)表表分分區(qū)區(qū)數(shù)數(shù)selectpartition_countfromuser_part_tableswheretable_name='SALES97'PARTITION_COUNT4查分區(qū)表表分區(qū)劃劃分情況況情況selectpartition_name,tablespace_name,partition_position,high_valuefromuser_tab_partitionswheretable_name='STU_SCORE’’;SCORE_Q1EDUCATION111997,07,01SCORE_Q2EDUCACION221998,02,01建立分區(qū)區(qū)注意事事項設(shè)置分區(qū)區(qū)的界限限VALUESLESSTHAN定義義了分區(qū)區(qū)的上界界VALUESLESSTHAN必須須取值Number,Character,DateMAXVALUE定義義分區(qū)的的最上界界任何合法法的存儲儲子句均均可用于于分區(qū)(tablespace,pctfree...)沒有為單單獨的分分區(qū)設(shè)置置存儲子子句時,使用用基表的的存儲子子句在分區(qū)表表中不能能包含LONG類型的的列。系統(tǒng)為每每一分區(qū)區(qū)設(shè)置一一個隱含含的CHECK約束(分區(qū)的的最高限限制是MAXVALUE時除除外)。。聚集表不不能分區(qū)區(qū)分區(qū)表的的訪問分區(qū)對表表名的擴擴展:[模式名名.]表表名[PARTITION(分區(qū)名名)]例:SELECT*FROMsales97WHEREqty>1000ANDsales_dateBETWEEN‘‘01-4月-97’AND‘30-6月-97’;指定分區(qū)區(qū)SELECT*FROMsales97PARTITION(p2)WHEREqty>1000;INSERTINTOsales97PARTITION(p4)SELECT*FROMlastest_data;注意:分分區(qū)表名名的不兼兼容性分區(qū)表的的訪問分區(qū)值的的檢查insertintostu_scorevalues(98007,50,1998,2,1);錯誤位于于第1行行:ORA-14400:插入入的分區(qū)區(qū)鍵超出出最高的的合法分分區(qū)鍵。。使用別名名select*fromstu_scorepartition(score_q1)q1whereq1.score>85建立視圖圖createviewsco_q1asselect*fromstu_scorepartition(score_q1);分區(qū)索引引一般索引引(非分分區(qū)索引引)CREATEINDEXsales97_idxONsales97(sales_date);分區(qū)索引引—索引引分區(qū)只有當(dāng)索索引本身身足夠大大且適于于分區(qū)時時,索引引分區(qū)才才是有意意義的。。索引分區(qū)區(qū)可提高高可用性性,提供供并行索索引掃描描,提提高性能能。選擇分區(qū)區(qū)索引的的主列((索引列列)與選選擇非分分區(qū)索引引主列沒沒有區(qū)別別(根據(jù)據(jù)where子子句的的應(yīng)用))。分區(qū)索引引策略一旦決定定為表創(chuàng)創(chuàng)建一個個分區(qū)索索引,必必須決定定如何組組織、劃劃分該索索引的分分區(qū)。兩種選擇擇:全局分區(qū)區(qū)索引(GLOBAL):按按自定的的索引關(guān)關(guān)鍵字來來分區(qū),,對等分區(qū)區(qū)索引,也稱稱局部索索引(LOCAL):創(chuàng)建建與分區(qū)區(qū)表的各各分區(qū)一一一對應(yīng)應(yīng)的索引引分區(qū)GLOBAL分區(qū)表分區(qū)表非分區(qū)表表LOCAL分區(qū)索引引對等分區(qū)區(qū)索引非分區(qū)索索引對等分區(qū)對象象定義:下列列屬性完全一一樣的兩個模模式對象有相同的分區(qū)區(qū)關(guān)鍵字相同數(shù)量的分分區(qū)相同的分區(qū)界界限使用對等分區(qū)區(qū)的優(yōu)點:對等分區(qū)對象象是主、細表表。全部對應(yīng)應(yīng)的主細記錄錄在相應(yīng)的數(shù)數(shù)據(jù)分區(qū)中,,可很快完成成兩個表的連連接。在這種種情況下,磁磁盤存取的減減少類似于使使用數(shù)據(jù)簇((聚集)來““予連接”主主細表。對等分區(qū)的對對象是表和索索引::當(dāng)查詢時,特特定索引分區(qū)區(qū)中的全部鍵鍵值只引用相相應(yīng)表分區(qū)中中的記錄。當(dāng)一個分區(qū)不不可用時只有有相應(yīng)的分區(qū)區(qū)索引不可用用,不影響其其他分區(qū)及分分區(qū)索引,因因此提高數(shù)據(jù)據(jù)可用性。當(dāng)更新一個表表分區(qū)的數(shù)據(jù)據(jù)時,只須調(diào)調(diào)整相應(yīng)的分分區(qū)索引。分區(qū)表與對等等分區(qū)索引建分區(qū)表CREATETABLEsales97(acct_noNUMBER(5),product_idNUMBER(12),qtyNUMBER(8),sales_dateDATE)PARTITIONBYRANGE(sales_date)(PARTITIONq1VALUESLESSTHAN……,PARTITIONq2VALUESLESSTHAN……,PARTITIONq3VALUESLESSTHAN……,PARTITIONq4VALUESLESSTHAN…….);建分區(qū)索引與對應(yīng)分區(qū)表表構(gòu)成對等分分區(qū)對象,。。使用LOCAL屬性CREATEINDEXsales_idxONsales97(sales_date)LOCAL(PARTITIONindex_q1,PARTITIONindex_q2,PARTITIONindex_q3,PARTITIONindex_q4);全局分區(qū)索引引與分區(qū)表不構(gòu)構(gòu)成對等分區(qū)區(qū)對象,按索引碼分區(qū)區(qū),而不是是按表的分區(qū)區(qū)關(guān)鍵字使用GLOBAL全局分區(qū)索引引能夠包含相相應(yīng)表全部分分區(qū)的鍵值,,在OLTP環(huán)境下提供供比分區(qū)索引引更好的性能能。CREATEINDEXproduct_idxONsales97(product_id)GLOBALPARTITIONBYRANGE(product_id)(PARTITIONpidx1VALUESLESSTHAN(100)tablespaceusers,PARTITIONpidx2VALUESLESSTHAN(200)tablespacestudents,PARTITIONpidx3VALUESLESSTHAN(MAXVALUE));分區(qū)索引例對等分區(qū)索引引(local)createindexstu_idx((97,7,198,2,1)onstu_score(test_year,test_month,test_day)local(partitionindex_q1,partitionindex_q2);全局分區(qū)索引引(global)createindexstu_g_idxonstu_score(stu_num)globalpartitionbyrange(stu_num)(partitionpidx1valueslessthan(95000)tablespaceusers,partitionpidx2valueslessthan(96000)tablespacestudents,partitionpidx3valueslessthan(maxvalue));查看分區(qū)索引引selectpartition_name,high_value,statusfromuser_ind_partitionswhereindex_name='STU_IDX';
INDEX_Q11997,07,01USABLEINDEX_Q21998,02,01USABLEselectpartition_name,high_value,statusfromuser_ind_partitionswhereindex_name=‘STU_G_IDX’;
PIDX195000USABLEPIDX296000USABLEPIDX3MAXVALUEUSABLE分區(qū)表的管理理分區(qū)可獨立管管理,分區(qū)操操作僅在單一一分區(qū)上發(fā)生生作用。分區(qū)級的操作作:altertable…Add分區(qū)區(qū)altertable…Drop分區(qū)…modify分區(qū)…Move分區(qū)…Split分區(qū)…Rename分區(qū)…Exchange分分區(qū)…Imported/Exported…Load分區(qū)數(shù)據(jù)據(jù)分區(qū)索引的管管理分區(qū)索引的管管理類似于分分區(qū)表的管理理alterindexdroppartition(只對global索索引)alterindexsplitpartition(只對對global索引)alterindexrenamepartitionalterindexrebuildpartitionalterindexmodifypartitionalterindexunusablealterindexstu_idxrebuildpartitionindex_q1;alterindexstu_g_idxrebuildpartitionpidx1;分區(qū)表的維維護-增增加分區(qū)區(qū)ALTERTABLEstu_scoreADDPARTITIONscore_q3VALUESLESSTHAN(1998,07,01)TABLESPACEstudents;常用來維護護歷史數(shù)據(jù)據(jù),用來來增加另外外時間段的的數(shù)據(jù)。用于在分區(qū)區(qū)表的高端端增加分區(qū)區(qū)如果增加的的分區(qū)在分分區(qū)表的中中間,或最最后分區(qū)邊邊界是MAXVALUE時在在高端增加加分區(qū),要要用其他辦辦法(拆分分分區(qū))如果分區(qū)表表有對等分分區(qū)索引,,則分區(qū)索索引會隨之之增加(分分區(qū)索引名名用表分區(qū)區(qū)名)。分區(qū)索引的的自動調(diào)整整selectpartition_name,high_value,statusfromuser_ind_partitionswhereindex_name='STU_IDX';INDEX_Q11997,07,01USABLEINDEX_Q21998,02,01USABLESCORE_Q31998,07,01USABLE((改名名之前)索引改名::alterindexstu_idxrenamepartitionscore_q3toindex_q3;select…whereindex_name=‘STU_G_IDX’;PIDX195000USABLEPIDX296000USABLE沒沒有變化化PIDX3MAXVALUEUSABLE分區(qū)表的維維護—刪除除分區(qū)ALTERTABLEstu_scoreDROPPARTITIONscore_q3;用于刪除歷歷史數(shù)據(jù)不想刪除分分區(qū)中的數(shù)數(shù)據(jù)時,應(yīng)應(yīng)首先將將分區(qū)數(shù)據(jù)據(jù)合并到鄰鄰近分區(qū)相應(yīng)分區(qū)索索引將被刪刪除全局索引變變?yōu)椴豢捎糜茫ㄐ枰刂貥?gòu))刪除分區(qū)——索引selectpartition_name,high_value,statusfromuser_ind_partitionswhereindex_name='STU_IDX';INDEX_Q11997,07,01USABLEINDEX_Q21998,02,01USABLEselectpartition_name,high_value,statusfromuser_ind_partitionswhereindex_name=‘STU_G_IDX’;PIDX195000UNUSABLEPIDX296000UNUSABLEPIDX3MAXVALUEUNUSABLE分區(qū)表操作作—刪除分分區(qū)記錄ALTERTABLEstu_scoreTRUNCATEPARTITIONscore_q3;也可以使用用SQL語語句中的Delete刪除分區(qū)中中的數(shù)據(jù),,但會比較較慢。表中數(shù)據(jù)清清空以后,,對等分區(qū)區(qū)索引會自自動變化。。非對等分區(qū)區(qū)索引和一一般索引變變?yōu)椴豢捎糜脿顟B(tài)。SCORE_Q2STUDENTS1998,02,01表表分區(qū)區(qū)SCORE_Q3STUDENTS1998,07,01SCORE_Q1USERS1997,07,01INDEX_Q21998,02,01USABLE索索引分分區(qū)INDEX_Q11997,07,01USABLEINDEX_Q31998,07,01USABLEPIDX195000UNUSABLE全全局分分區(qū)PIDX296000UNUSABLEPIDX3MAXVALUEUNUSABLE索引不可用用可能使索引引不可用(IU)的的操作清除記錄的的分區(qū)操作作(TRUNCATEPARTITION)跳過局部索索引(LOCAL)的Import對數(shù)據(jù)庫的的直接SQL*LOADER改變ROWID的分分區(qū)操作(MOVE/SPLITPARTITION)如果索引分分區(qū)被標(biāo)記記為IU,用戶發(fā)發(fā)出使用該該索引分區(qū)區(qū)的SELECT或或DML語句時,將得到到錯誤提示示。這時需需要重建索索引。select*fromstu_scorewherestu_num=950001錯誤位于第第1行:ORA-01502:索引引‘WXY.STU_G_IDX’’或這類類索引的分分區(qū)是在不不可使用的的狀態(tài)重建索引alterindexrebuildpartition可以為local或或global分區(qū)區(qū)索引重建建某個分區(qū)區(qū)。例alterindexstu_g_idxrebuildpartitionpidx1;alterindexstu_g_idxrebuildpartitionpidx2;alterindexstu_g_idxrebuildpartitionpidx3;重建索引還還可以改變變表空間等等其他存儲儲屬性。alterindexstu_g_idxrebuildpartitionpidx1tablespacestudent2分區(qū)表的維維護—修改改分區(qū)修改分區(qū)的的物理屬性性altertablestu_scoremodifypartitionscore_q1storage(maxextents50);置分區(qū)表對對應(yīng)的局部部索引為不不可用狀態(tài)態(tài)。altertablestu_scoremodifypartitionscore_q1unusablelocalindexes;,用于插插入和轉(zhuǎn)入入數(shù)據(jù)。為使局部索索引可用,必須重重建索引分分區(qū)重建已被標(biāo)標(biāo)記為iu的局部分分區(qū)索引altertablestu_scoremodifypartitionscore_q1rebuildunusablelocalindexes分區(qū)表的操操作—重命命名分區(qū)修改分區(qū)名名ALTERTABLEstu_scoreRENAMEPARTITIONscore_q3toscore_qq3;附:修改表表名ALTERTABLEstu_scoreRENAMEtostudent_score;分區(qū)表的操操作—移動動分區(qū)ALTERTABLEMOVEPARTITION移動表分區(qū)區(qū)到另外一一個數(shù)據(jù)段上。新的數(shù)數(shù)據(jù)段產(chǎn)生生,舊的的數(shù)據(jù)段刪刪除(可在在原表空間間,也可移移到其他表表空間。用于將分區(qū)區(qū)移動到其其它設(shè)備上上,或用于于減少分區(qū)區(qū)碎片。相應(yīng)的分區(qū)區(qū)索引和其其他類型的的索引都應(yīng)應(yīng)該重建。。altertablestu_scoremovepartitionscore_q1<tablespaceeducation>;分區(qū)表的操操作—拆分分分區(qū)ALTERTABLESPLITPARTITION將分區(qū)在分分區(qū)范圍內(nèi)內(nèi)拆分為兩兩個分區(qū)創(chuàng)建了兩個個分區(qū),每每一個新新分區(qū)有單單獨的數(shù)據(jù)據(jù)段,新新的物理屬屬性,舊舊分區(qū)被刪刪除相應(yīng)的局部部索引也被被SPLIT,并并被標(biāo)記為為IU全局索引和和非分區(qū)索索引被標(biāo)記記為IUaltertablestu_scoresplitpartitionscore_q2at(1997,10,1)into(partitionscore_q21,partitionscore_q22);分區(qū)名分分區(qū)區(qū)上限值分分區(qū)索引引SCORE_Q11997,07,01INDEX_Q1SCORE_Q211997,10,01SCORE_Q21SCORE_Q221998,02,01SCORE_Q22SCORE_Q31998,07,01INDEX_Q3分區(qū)表的操操作—交換換數(shù)據(jù)ALTERTABLEEXCHANGEPARTITION用于非分區(qū)區(qū)表和分區(qū)區(qū)表的一個個分區(qū)之間間的雙向交交換??梢砸越粨Q數(shù)據(jù)據(jù)和索引段段物理屬性不不變可以帶withvalidation或withoutvalidation。當(dāng)數(shù)數(shù)據(jù)不在分分區(qū)范圍時時,WITHVALIDATION將報錯錯。WITHOUTVALIDATION假假定數(shù)據(jù)均均在分區(qū)范范圍。例:altertablestu_scoreexchangepartitionscore_q1withtablestu_score97withoutvalidation;分區(qū)表操作作—合并分分區(qū)使用IMPORT/EXPORT可以以將鄰近分分區(qū)合并為為一個分區(qū)區(qū)使用Export從從低層分區(qū)區(qū)取出要合合并的數(shù)據(jù)據(jù)使用SQL語句DROP已經(jīng)經(jīng)Exported的分區(qū)使用Import將將取出的數(shù)數(shù)據(jù)合并到到鄰近分區(qū)區(qū)使用SQL語句實現(xiàn)現(xiàn)分區(qū)的合合并insertintostu_tempselect*fromstu_scorepartition(score_q1);;altertablestu_scoredroppartitionscore_q1;;insertintostu_scoreselect*fromstu_temp;SQL語語句句的的并并行行處處理理什么么是是Oracle的的并并行行并行行服服務(wù)務(wù)器器選選項項允許許多多個個數(shù)數(shù)據(jù)據(jù)庫庫實實例例運運行行在在一一個個松松散散耦耦合合多多處處理理器器系系統(tǒng)統(tǒng)((或或集集群群系系統(tǒng)統(tǒng)))的的不不同同接接點點上上,,同同時時存存取取一一個個Oracle物物理理數(shù)數(shù)據(jù)據(jù)庫庫,,從從而而為為用用戶戶提提供供了了多多種種數(shù)數(shù)據(jù)據(jù)庫庫存存取取路路徑徑。。并行行、、容容錯錯并行行SQL語語句句處處理理將一一個個SQL語語句句((如如查查詢詢))分分為為幾幾個個子子任任務(wù)務(wù),,然然后后啟啟動動多多個個進進程程并并行行處處理理子子任任務(wù)務(wù),,并并將將結(jié)結(jié)果果快快速速返返回回給給用用戶戶。。利用用多多進進程程、、多多CPU,,縮縮短短語語句句執(zhí)執(zhí)行行時時間間。。SQL語語句句的的并并行行執(zhí)執(zhí)行行不不需需要要并并行行服服務(wù)務(wù)器器選選項項。。串行行處處理理掃描描emp表表掃描描dep表表連接接排序序CPUCPUCPUCPU查詢詢結(jié)結(jié)果果Selectename,age,dnamefromemp,depwhereemp.dno=dep.dnoorderbyage;單個個進進程程執(zhí)執(zhí)行行一一條條SQL語語句句SQL語語句句的的并并行行處處理理Selectename,age,dnamefromemp,depwhereemp.dno=dep.dnoorderbyage;掃描emp表掃描dep表連接排序CPUCPUCPUCPU查詢結(jié)結(jié)果多個進進程執(zhí)執(zhí)行一一條SQL語句句并行處處理的的條件件軟件環(huán)環(huán)境——并并行行SQL處處理系系統(tǒng)。。一個并并行的的SQL處處理系系統(tǒng)接接受一一個SQL請求求,智智能地地將它它分解解為幾幾個較較小的的可以以并行行的子子任務(wù)務(wù),然然后使使用所所有空空閑的的CPU并行處處理這這些子子任務(wù)務(wù),以以達到到縮短短總處處理時時間的的目的的。Oracle服服務(wù)器器使用用一種種特殊殊的操操作系系統(tǒng)進進程結(jié)結(jié)構(gòu),,并行行處理理對數(shù)數(shù)據(jù)庫庫的某某些請請求。。硬件——多多CPU系統(tǒng)統(tǒng)并行SQL語句句的硬硬件環(huán)環(huán)境SMP(symmetricmultiprocessor)對對稱多多處理理機CPUCPUCPU內(nèi)存可以被被并行行處理理的操操作select(掃描描表),update,deleteinsert……select連接操操作((join)聚合操操作(統(tǒng)計計)notin,groupby,orderbyselectdistinct,unioncreatetable……asselectcreateindex,rebuildindexsplitpartiton,movepartition,rebuildindexpartition從SQL語語句中中調(diào)用用PL/SQL函數(shù)數(shù)。并行機機制-協(xié)調(diào)調(diào)進程程一個協(xié)協(xié)調(diào)進進程(coordinator)調(diào)度度多個個從屬屬進程程(slaveprocesses)并并行執(zhí)執(zhí)行SQL語句句。Select*fromemp;串行進進程Emp表Select*fromemp;協(xié)調(diào)進進程Emp表并行進進程并行機機制并行優(yōu)優(yōu)化器器當(dāng)用戶戶執(zhí)行行SQL語語句時時,優(yōu)優(yōu)化器器確定定是否否以并并行方方式執(zhí)執(zhí)行語語句,,以及及每一一個操操作的的并行行度是是多少少。并行進進程池池在啟動動一個個數(shù)據(jù)據(jù)庫實實例后后,Oracle建建立立一個個并行行進程程池。。當(dāng)開開始并并行操操作時時,協(xié)協(xié)調(diào)進進程從從并行行池中中獲得得并行行進程程資源源,并并把它它們分分配給給有關(guān)關(guān)操作作。實行并并行步步驟SQL語句句的前前臺進進程變變?yōu)椴⒉⑿袇f(xié)協(xié)調(diào)進進程。。協(xié)調(diào)進進程根根據(jù)并并行度度從并并行池池中獲獲得所所需數(shù)數(shù)量的的從屬屬并行行進程程。系統(tǒng)將將SQL語語句化化為一一系列列的操操作,,每個個操作作都盡盡可能能地并并行執(zhí)執(zhí)行。。當(dāng)語句句處理理完畢畢,協(xié)協(xié)調(diào)進進程返返回結(jié)結(jié)果給給用戶戶進程程,并并釋放放從屬屬并行行進程程(回回進程程池))。并行方方法塊并行行按ROWID的的范圍圍并行行適用于于查詢詢(包包括select語句和和在DML和和DCL中中的子子查詢詢)。。適用于于movesplit分分區(qū),,rebuild分分區(qū)區(qū)….適用于于分區(qū)區(qū)/非非分區(qū)區(qū)的表表和索索引。。分區(qū)并并行適用于于對分分區(qū)表表和分分區(qū)索索引的的操作作。從屬進進程并并行適用于于往非非分區(qū)區(qū)表中中插入入數(shù)據(jù)據(jù)。插入記記錄時時,將將記記錄分分?jǐn)偟降礁鱾€個從屬屬進程程分別別插入入因新記記錄還還沒有有rowid,所以以無法法塊并并行。。并行計計劃優(yōu)化器器確定定了一一條語語句的的執(zhí)行行計劃劃協(xié)調(diào)器器決定定計劃劃中的的每一一個操作的并行行方法法塊并行行、分分區(qū)并并行……優(yōu)化器器確定定執(zhí)行行計劃劃中操操作的的執(zhí)行行順序序語句的的數(shù)據(jù)流流操作之之間的的并行行需要其其他操操作輸輸出的的操作作稱為為父操操作父操作作子操作作::消消費費者生生產(chǎn)者者兩種并并行一個操操作的的并行行intro-operation并并行行數(shù)據(jù)流流中不不同操操作之之間的的并行行inter-operation并并行行并行模模式Select*fromemporderbyename;(無索索引))如果并并行度度為4,意意味著著對于于任何何給定定的操操作,,可以以激活活4個個并行行進程程。。實際上上8個個進程程執(zhí)行行該語語句。。Introinterintro用戶進進程協(xié)調(diào)進程A-GH-MN-ST-ZscanscanscanscanEmp表并行度指定定為執(zhí)行一個個單一操作作而啟動的的進程數(shù)叫叫并行度語句級指定定PARALLEL子子句PARALLEL(DEGREE4)語句提示hint/*+parallel(emp,3)*/表和索引級級在建表和索索引的語句句中指定。。隱含指定基于CPU數(shù)、存儲儲表的設(shè)備備(磁盤))數(shù)、分區(qū)區(qū)數(shù)等并行度確定定并行協(xié)調(diào)程程序決定并并行度的依依據(jù):檢查在SQL語句中的hint或或parallel子句。。檢查在表和和索引定義義語句中的的指定。使用隱含并并行度指定定。一旦確定并并行度,它它將成為有有關(guān)操作的的并行度,,即協(xié)調(diào)進進程為一操操作申請的的并行進程程數(shù)。而實實際進程數(shù)數(shù)還取決于于進程池中中的可用資資源。并行子句語語法Parallel子子句語法((在DDL語句中使使用)用于createtable,createindex,createclusteraltertable,alterindex……rebuild,alterclusteralterdatabase…recoverhint指指定(在在DML語語句中使用用)/*+parallel(表名,并并行度)*/noparallellparallell()degreeinstancesintegerdefault并行執(zhí)行SQL語句句例以并行度4同時執(zhí)行行掃描和更更新update/*+parallel(emp,4)*/empsetsal=sal+100whereage>50;以并行度3執(zhí)行插入入語句insert/*+parallel(emp2,3)*/intoemp2select/*+parallel(emp1,5)*/fromemp1;以并行度4執(zhí)行刪除除語句delete/*+parallel(tab1,4)*/fromtab1wherecol1>50andcol1<10000;并行執(zhí)行SQL語句句例在DDL語語句中指指定parallel子句((并行度為為5)該命命令執(zhí)行時時使用10個進程,,5個用于于掃描emp1表表,5個個用于向emp2表表中添加數(shù)數(shù)據(jù)。CREATETABLEemp2PARALLEL(DEGREE5)ASSELECT*FROMemp1WHEREdeptno=10;下面的命令令使用10個進程構(gòu)構(gòu)造索引,5個用用于掃描EMP表,另外5個用于向向EMP_IDX中中添加數(shù)據(jù)據(jù)CREATEINDEXemp_idxONemp(ename)PARALLEL(DEGREE5);并行度確定定例在DML語語句(查詢詢)中指定定并行度2select/*+parallel(emp22)*/*fromemp2whereage>50;采用表定義義隱含并行行度值(5)select*fromemp2whereage>50;采用系統(tǒng)隱隱含值select*fromemp1whereage>50;PARALLEL(DEGREE1INSTANCES1)等同同于NOPARALLELdegree單單實例中的的并行instances實例例間的并行行(沒有并并行服務(wù)器器時忽略))兩種并行度度分別在并行行服務(wù)器的的5個實例例上各啟動動5個恢復(fù)復(fù)進程,共共25個個進程。ALTERDATABASERECOVERTABLESPACEbinkyPARALLEL(DEGREE5INSTANCES5);改變EMP1表的預(yù)預(yù)定義并行行度ALTERTABLEemp1PARALLEL(DEGREE2);并行DML模式為使并行DML生效效,會話需需要PARALLELDML模式((特殊的鎖鎖、空間分分配等)ALTERSESSIONENABLEPARALLELDML;一個事物可可以包含多多個修改不不同表的并并行DML,但對對于某個表表作了并行行DML修修改后,不不能在此此事務(wù)中再再對該表作作任何形式式的訪問。。查詢(包括括DML語句中的子子查詢)和和DDL語語句不受此此影響。其他約束在并行DML操作中中不支持觸觸發(fā)器對自身的引引用和連帶帶刪除必須須被禁止并行插入刪刪除和修改改不支持包包含對象類類型的表不支持聚集集表復(fù)制功能中中不支持并并行DML并行工作的的平衡適當(dāng)指定并并行度可以以優(yōu)化性能能、平衡并并行操作例:emp表有10個分區(qū)并行度=1并行度=5并行度=10并行度=9并行度=4處理時間不不等于分分區(qū)數(shù)數(shù)/進進程數(shù)大型對象-新數(shù)據(jù)類類型支持多媒體體數(shù)據(jù)大型對象-多媒體數(shù)數(shù)據(jù)類型三種類型的的LOB二進制LOB(BLOB):無結(jié)構(gòu)構(gòu)的二進制制大對象字符LOB(CLOB)::字符數(shù)據(jù)據(jù)(不支持持變寬字符符集)二進制文件件(BFILE):最大長長度由OS定對于LOB類型數(shù)據(jù)據(jù),表的列列值為一定定位器值,,標(biāo)明數(shù)據(jù)據(jù)存放的位位置:BLOB和和CLOB:指向向一個分開開的由數(shù)據(jù)據(jù)庫分配的的保存LOB的位置置。BFILE:指向一一個外部文文件。LOB數(shù)據(jù)據(jù)沒有必要要與一般數(shù)數(shù)據(jù)存放在在一起。僅僅在需要時時才訪問它它們。LOB可以以是對象類類型的屬性性每行只能有有一個LONGLONG在在線存儲LONG<=2GLONG不不能復(fù)制LONG不不能記錄日日志OCI可以以處理該類類型數(shù)據(jù)。。varchar24k字字符比較每行可以包包含多個LOBLOB可以以離線存儲儲LOB<=4GLOB可以以復(fù)制LOB的操操作可以記記錄在日志志中LOB與LONG[RAW]的比較多媒體數(shù)據(jù)據(jù)類型應(yīng)用用(LOB例)CREATETABLEperson( pnameVARCHAR2(10),resumeCLOB,photoBLOB,homepageBFILE)LOB(resume,photo)STOREAS(TABLESPACEresume_spaceSTORAGE(INITIAL5mNEXT1mPCTINCREASE0));對LOB數(shù)數(shù)據(jù)所使用用的空間另另行指定存存儲參數(shù)LOB子句句多媒體數(shù)據(jù)據(jù)類型(LOB設(shè)置置)CHUNK的尺寸決決定訪問LOB數(shù)據(jù)據(jù)時一次處處理數(shù)據(jù)塊塊的個數(shù)如果LOB以大數(shù)據(jù)據(jù)量讀寫時時,將CHUNK設(shè)大如果LOB以小數(shù)據(jù)據(jù)量讀寫時時,將CHUNK設(shè)小如果LOB被經(jīng)常訪訪問,設(shè)置置CACHE,缺缺省為NOCACHECREATETABLEperson_tab( …)LOB(resume,picture)STOREAS(TABLESPACElob_tablespaceCHUNK4NOCACHE);初始化LOB數(shù)據(jù)Insertintopersonvalues(‘張張大年’,empty_clob(),empty_blob(),bfilename(‘person_dir’,’person.html’));函數(shù)empty_clob()和empty_blob()返回一個空空的LOB定位器值值(與空值值不一樣))。函數(shù)bfilename(邏邏輯目錄名名,文件名名)返回一個bfile定位器值值,它與一一個位于服服務(wù)器文件件系統(tǒng)中的的物理文件相連。。建立邏輯目目錄名(數(shù)數(shù)據(jù)庫對象象):createdirectoryperson_diras‘‘/user/person’;BFILE與邏輯目目錄使用BFILE將LOB存儲儲在數(shù)據(jù)庫庫外BFILE只讀,只只能在ORACLE外創(chuàng)建建和更新通過數(shù)據(jù)庫庫對象DIRECTORY定定位外部文文件用戶對于DIRECTORY的訪問需需經(jīng)過授權(quán)權(quán)(不是在在某個模式式下建目錄錄對象)。。創(chuàng)建DIRECTORY對象象時:不檢查實際際目錄、文文件是否存存在。應(yīng)先創(chuàng)建相相應(yīng)的物理理路徑不要將DIRECTORY設(shè)設(shè)置在ORACLE數(shù)據(jù)文件件目錄ORACLE必須對對該目錄有有讀權(quán)限。。嚴(yán)格控制CREATE或DROPANYDIRECTORY權(quán)限的授授予BFILE與邏輯目目錄以管理員帳號號執(zhí)行下列語語句CREATEDIRECTORYmydirAS‘/home/image’’;GRANTREADONDIRECTORYmydirtouesr01;以user01帳號執(zhí)行行下列語句CREATETABLEmytable(idNUMBER,image_colBFILE);INSERTINTOmytableVALUES(139,filename(‘mydir’,‘‘world.gif’));復(fù)制LOB數(shù)數(shù)據(jù)在SQL語句句中復(fù)制LOB數(shù)據(jù)Insertintopersonselect'王中里里',photo,homepagefrompersonwherepname=‘‘張大年’;在SQL*Plus平臺臺上只能對一一般數(shù)據(jù)I/OSQL>select*fromperson;列或?qū)傩灶愋托蜔o法通過SQL*Plus顯顯示更新LOB數(shù)數(shù)據(jù)自動加行鎖不不適用于LOB數(shù)據(jù)。要要讀加鎖selectpnamefrompersonwherepname=‘張大年年’forupdate;updat
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年高中歷史第四單元王安石變法4.1社會危機四伏和慶歷新政練習(xí)含解析新人教版選修1
- 賣買游戲合同范例
- 個人轉(zhuǎn)讓閑置住宅合同范本
- 2025陜西省建筑安全員-A證考試題庫附答案
- 二年級口算題目全集100道
- 2025年江西省安全員A證考試題庫附答案
- 二年級口算題目大全100道
- 二年級口算題庫匯編100道
- 二年級口算題目大全100道
- 個人沙金開采合同范本
- 2024年物資采購?fù)稑?biāo)書:標(biāo)準(zhǔn)格式3篇
- 電氣成套廠檢驗員培訓(xùn)
- 新入職消防安全培訓(xùn)
- 醫(yī)保信息系統(tǒng)數(shù)據(jù)安全管理制度
- 第18課排序計算有方法(教案)四年級全一冊信息技術(shù)人教版
- 統(tǒng)編版五年級語文下冊1古詩三首《四時田園雜興(其三十一)》課件
- 酒店2024年保安部工作計劃024酒店工作計劃
- 規(guī)?;i場生物安全
- 2025年春節(jié)后復(fù)產(chǎn)復(fù)工方案及安全技術(shù)措施
- 維修基金使用合同范例
- c語言課件教學(xué)下載
評論
0/150
提交評論