版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
Oracle8數(shù)據(jù)庫系統(tǒng)改進表的存取性能-索引與數(shù)據(jù)簇分區(qū)選件-分區(qū)表與分區(qū)索引并行選件-SQL語句并行處理新的數(shù)據(jù)類型(多媒體數(shù)據(jù)類型)Oracle8數(shù)據(jù)庫系統(tǒng)改進表的存取性能-索引與數(shù)據(jù)簇1索引索引2索引在數(shù)據(jù)庫應(yīng)用中,性能主要取決于存取表中數(shù)據(jù)的速度。索引可以快速找到待定的表記錄。索引維護與應(yīng)用:索引對用戶透明當有索引且能提高應(yīng)用的性能時,Oracle自動使用索引。Oracle自動更新索引以使其與表同步。索引類型B樹索引(系統(tǒng)自動為主碼和唯一完整性約束建立)位圖索引索引表,分區(qū)索引,反向鍵值索引…。索引在數(shù)據(jù)庫應(yīng)用中,性能主要取決于存取表中數(shù)據(jù)的速度。SMITHALLENWARDJONESMARTINBLAKECLARKSCOTTKINGTURNERADAMSJAMESFORDMILLERB樹索引createindex索引名on表名(列名)
ADAMSALLENBLAKECLARKFORDJAMESJONESKINGMARTINMILLERSCOTTSMITHTURNERWARDMILLERTURNERBLAKEJAMESKINGROWIDSMITHMARTINTURNERB樹索引ADAMSBLAK對于索引列的每一個可能的值,都有獨立的位圖項。在位圖項中的每一位代表一個可能的ROWID,為1意味著該行包含關(guān)鍵值。例如:LOC列(3種取值)北京(010011)天津(100000)上海(001100)第二個記錄第一個記錄位圖函數(shù)可以將位的位置轉(zhuǎn)換為實際的ROWID。通過位圖索引的合并簡化查詢條件,從而過濾被訪問的數(shù)據(jù)集合。位圖索引d01合資d02合資d03合資d04外企d05國企d06合資dnotype天津北京上海上海北京北京loc對于索引列的每一個可能的值,都有獨立的位圖項。位圖索引d01
selectdnofromdepwheretype=‘合資’andlocin(‘北京’,‘上海’);合資北京上海 1000 1 1 01 d02 1 011 d03 0AND 0OR1=0 0 100 1 10 1 d06 位圖索引的例子selectdnofromdep位圖索引的例子位圖索引建立位圖索引;createbitmapindexdep_indexondep(type);createbitmapindexdep_indexondep(doc);位圖索引適用于列的值取值不多的情況、索引列含有越多的值,位圖項就越多,需要存儲索引的空間也越大。由于Oracle必須展開一個位圖索引的方式,所以不適于經(jīng)常插入或更新數(shù)據(jù)的應(yīng)用。位圖索引典型地用于決策系統(tǒng)與數(shù)據(jù)倉庫應(yīng)用中查詢數(shù)據(jù)。位圖索引建立位圖索引;簇(聚集)索引當cluster建立后,必須建立簇索引后,被聚集的表才能訪問。系統(tǒng)不會自動為簇建索引。例:createclusertdep_emp(depnochar(3));createtabledep(dno..,dname..,…)clusterdep_emp(dno);createtableemp(emp…,…dno...)clusterdep_emp(dno);createindexdep_emp_idxonclusterdep_emp;簇(聚集)索引當cluster建立后,必須建立簇索引后,被聚簇(聚集)索引簇索引表的存儲e01王山男d01佳月公司8200e02張麗女d01e10孫軍男d02運通公司2034d03安合物業(yè)6800來自emp來自depclusterkey簇(聚集)索引簇索引表的存儲分區(qū)選件分區(qū)選件10分區(qū)選件分區(qū)的原因表和索引迅速膨脹數(shù)據(jù)倉庫和決策支持的需要什么是分區(qū)大的表或索引可以拆分為小的易于管理的數(shù)據(jù)片斷,例如將銷售表按銷售日期拆分成一系列數(shù)據(jù)片斷其中每一個片斷稱為一個分區(qū)(partition)被分區(qū)的表稱為分區(qū)表。分區(qū)選件分區(qū)的原因數(shù)據(jù)倉庫的概念數(shù)據(jù)倉庫就是面向主題的、集成的、穩(wěn)定的、不同時間的數(shù)據(jù)集合,用以支持經(jīng)營管理中的決策制定過程。主題是一個在較高層次將數(shù)據(jù)歸類的標準,每一個主題對應(yīng)一個宏觀的分析領(lǐng)域數(shù)據(jù)倉庫的集成特性是指在數(shù)據(jù)進入數(shù)據(jù)倉庫之前,必須經(jīng)過數(shù)據(jù)加工和集成,統(tǒng)一原始數(shù)據(jù)中的矛盾之處,將原始數(shù)據(jù)結(jié)構(gòu)做一個從面向應(yīng)用向面向主題的轉(zhuǎn)變。數(shù)據(jù)倉庫的穩(wěn)定性是指數(shù)據(jù)倉庫反映的是歷史數(shù)據(jù)的內(nèi)容,而不是日常事務(wù)處理產(chǎn)生的數(shù)據(jù),進入數(shù)據(jù)倉庫后是極少或根本不修改的數(shù)據(jù)倉庫的概念數(shù)據(jù)倉庫就是面向主題的、集成的、穩(wěn)定的、不同時數(shù)據(jù)倉庫的概念數(shù)據(jù)倉庫最根本的特點是物理地存放數(shù)據(jù)。這些數(shù)據(jù)并不是最新的、專有的,而是來源于其它數(shù)據(jù)庫的。數(shù)據(jù)倉庫的建立并不是要取代數(shù)據(jù)庫,它要建立在一個較全面和完善的信息應(yīng)用的基礎(chǔ)上,用于支持高層決策分析。而事務(wù)處理數(shù)據(jù)庫在企業(yè)的信息環(huán)境中承擔的是日常操作性的的任務(wù)。數(shù)據(jù)倉庫是數(shù)據(jù)庫技術(shù)的一種新的應(yīng)用,而且到目前為止,數(shù)據(jù)倉庫還是用數(shù)據(jù)庫管理系統(tǒng)來管理其中的數(shù)據(jù)。數(shù)據(jù)倉庫的概念數(shù)據(jù)倉庫最根本的特點是物理地存放數(shù)據(jù)。這些數(shù)據(jù)分區(qū)只有表和索引可以分區(qū)。分區(qū)對于應(yīng)用人員和用戶是透明的。分區(qū)可以控制數(shù)據(jù)的存儲地點:將數(shù)據(jù)分散存儲在多個磁盤上。將經(jīng)常使用的數(shù)據(jù)放在快速的磁盤上。分區(qū)可以有不同的物理屬性:分區(qū)可以有不同的存儲參數(shù)(tablespace,pctfree,pctused,等等)分區(qū)表或索引可以跨表空間存儲,分區(qū)不可以。同一模式對象的所有分區(qū)必須具有相同的邏輯屬性:相同的列,數(shù)據(jù)類型,約束。分區(qū)只有表和索引可以分區(qū)。分區(qū)的作用增加了數(shù)據(jù)的可用性不同的分區(qū)可以跨表空間存儲,可以進行分區(qū)級的備份和恢復(fù)。不同的分區(qū)可以跨表空間存儲,降低了磁盤損壞帶來的數(shù)據(jù)不可用性。不可用的分區(qū)不會影響到對其它分區(qū)的查詢和維護提高了系統(tǒng)性能服務(wù)器可以進行智能的分區(qū)檢測跳過與查詢無關(guān)的分區(qū)訪問跳過不在線的分區(qū)在物理設(shè)備上負載均衡將數(shù)據(jù)分散存儲在多個磁盤上,實現(xiàn)并行存取分區(qū)的作用增加了數(shù)據(jù)的可用性分區(qū)關(guān)鍵字分區(qū)關(guān)鍵字決定了劃分分區(qū)的依據(jù)只能是標準數(shù)據(jù)類型:Number,Date,Character(VARCHAR2,CHAR)可以是多至16個的列的聯(lián)合對關(guān)鍵字的修改不能導(dǎo)致記錄在分區(qū)之間的移動分區(qū)的數(shù)據(jù)范圍LESSTHAN子句指定每個分區(qū)的上限值。除第一個分區(qū)外,每一個分區(qū)都有一個隱含的下限值(即前一個分區(qū)的上限值)。最后一個分區(qū)的上限值可以設(shè)定為MAXVALUE必須按照升序排列來聲明分區(qū)。分區(qū)關(guān)鍵字分區(qū)關(guān)鍵字建立分區(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ū)表例1CREATETABLEsales97建立分區(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ū)表例2CREATETABLEstu_score查看分區(qū)情況查分區(qū)表分區(qū)數(shù)selectpartition_countfromuser_part_tableswheretable_name='SALES97'PARTITION_COUNT
4查分區(qū)表分區(qū)劃分情況情況selectpartition_name,tablespace_name,partition_position,high_valuefromuser_tab_partitionswheretable_name='STU_SCORE’;SCORE_Q1EDUCATION111997,07,01SCORE_Q2EDUCACION221998,02,01查看分區(qū)情況查分區(qū)表分區(qū)數(shù)建立分區(qū)注意事項設(shè)置分區(qū)的界限VALUESLESSTHAN定義了分區(qū)的上界VALUESLESSTHAN必須取值Number,Character,DateMAXVALUE定義分區(qū)的最上界任何合法的存儲子句均可用于分區(qū)(tablespace,pctfree...)沒有為單獨的分區(qū)設(shè)置存儲子句時,使用基表的存儲子句在分區(qū)表中不能包含LONG類型的列。系統(tǒng)為每一分區(qū)設(shè)置一個隱含的CHECK約束(分區(qū)的最高限制是MAXVALUE時除外)。聚集表不能分區(qū)建立分區(qū)注意事項設(shè)置分區(qū)的界限分區(qū)表的訪問分區(qū)對表名的擴展:[模式名.]表名[PARTITION(分區(qū)名)]例:SELECT*FROMsales97WHEREqty>1000ANDsales_dateBETWEEN‘01-4月-97’AND‘30-6月-97’;指定分區(qū)SELECT*FROMsales97PARTITION(p2) WHEREqty>1000;INSERTINTOsales97PARTITION(p4) SELECT*FROMlastest_data;注意:分區(qū)表名的不兼容性分區(qū)表的訪問分區(qū)對表名的擴展:分區(qū)表的訪問分區(qū)值的檢查insertintostu_scorevalues(98007,50,1998,2,1);錯誤位于第1行:ORA-14400:插入的分區(qū)鍵超出最高的合法分區(qū)鍵。使用別名select*fromstu_scorepartition(score_q1)q1whereq1.score>85建立視圖createviewsco_q1asselect*fromstu_scorepartition(score_q1);分區(qū)表的訪問分區(qū)值的檢查分區(qū)索引一般索引(非分區(qū)索引)CREATEINDEXsales97_idx ONsales97(sales_date);分區(qū)索引—索引分區(qū)只有當索引本身足夠大且適于分區(qū)時,索引分區(qū)才是有意義的。索引分區(qū)可提高可用性,提供并行索引掃描,提高性能。選擇分區(qū)索引的主列(索引列)與選擇非分區(qū)索引主列沒有區(qū)別(根據(jù)where子句的應(yīng)用)。分區(qū)索引一般索引(非分區(qū)索引)分區(qū)索引策略一旦決定為表創(chuàng)建一個分區(qū)索引,必須決定如何組織、劃分該索引的分區(qū)。兩種選擇:全局分區(qū)索引(GLOBAL):按自定的索引關(guān)鍵字來分區(qū),對等分區(qū)索引,也稱局部索引(LOCAL):創(chuàng)建與分區(qū)表的各分區(qū)一一對應(yīng)的索引分區(qū)GLOBAL分區(qū)表分區(qū)表非分區(qū)表LOCAL分區(qū)索引對等分區(qū)索引非分區(qū)索引分區(qū)索引策略一旦決定為表創(chuàng)建一個分區(qū)索引,必須決定如何組織、對等分區(qū)對象定義:下列屬性完全一樣的兩個模式對象有相同的分區(qū)關(guān)鍵字相同數(shù)量的分區(qū)相同的分區(qū)界限使用對等分區(qū)的優(yōu)點:對等分區(qū)對象是主、細表。全部對應(yīng)的主細記錄在相應(yīng)的數(shù)據(jù)分區(qū)中,可很快完成兩個表的連接。在這種情況下,磁盤存取的減少類似于使用數(shù)據(jù)簇(聚集)來“予連接”主細表。對等分區(qū)的對象是表和索引::
當查詢時,特定索引分區(qū)中的全部鍵值只引用相應(yīng)表分區(qū)中的記錄。
當一個分區(qū)不可用時只有相應(yīng)的分區(qū)索引不可用,不影響其他分區(qū)及分區(qū)索引,因此提高數(shù)據(jù)可用性。
當更新一個表分區(qū)的數(shù)據(jù)時,只須調(diào)整相應(yīng)的分區(qū)索引。對等分區(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ū)索引建分區(qū)表全局分區(qū)索引與分區(qū)表不構(gòu)成對等分區(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ū)表不構(gòu)成對等分區(qū)對象,分區(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ū)索引例對等分區(qū)索引(local)查看分區(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ū)索引selectpartition_name,hi分區(qū)表的管理分區(qū)可獨立管理,分區(qū)操作僅在單一分區(qū)上發(fā)生作用。分區(qū)級的操作:altertable…Add分區(qū)altertable…Drop分區(qū)…modify分區(qū)…Move分區(qū)…Split分區(qū)…Rename分區(qū)…Exchange分區(qū)…Imported/Exported…Load分區(qū)數(shù)據(jù)分區(qū)表的管理分區(qū)可獨立管理,分區(qū)操作僅在單一分區(qū)上發(fā)生作用。分區(qū)索引的管理分區(qū)索引的管理類似于分區(qū)表的管理alterindexdroppartition(只對global索引)alterindexsplitpartition(只對global索引)alterindexrenamepartitionalterindexrebuildpartitionalterindexmodifypartitionalterindexunusablealterindexstu_idxrebuildpartitionindex_q1;alterindexstu_g_idxrebuildpartitionpidx1;分區(qū)索引的管理分區(qū)索引的管理類似于分區(qū)表的管理分區(qū)表的維護-增加分區(qū)ALTERTABLE
stu_score
ADDPARTITION
score_q3 VALUESLESSTHAN(1998,07,01) TABLESPACEstudents;常用來維護歷史數(shù)據(jù),用來增加另外時間段的數(shù)據(jù)。用于在分區(qū)表的高端增加分區(qū)如果增加的分區(qū)在分區(qū)表的中間,或最后分區(qū)邊界是MAXVALUE時在高端增加分區(qū),要用其他辦法(拆分分區(qū))如果分區(qū)表有對等分區(qū)索引,則分區(qū)索引會隨之增加(分區(qū)索引名用表分區(qū)名)。分區(qū)表的維護-增加分區(qū)ALTERTABLEstu分區(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ū)索引的自動調(diào)整selectpartition_name分區(qū)表的維護—刪除分區(qū)ALTERTABLEstu_scoreDROPPARTITIONscore_q3;用于刪除歷史數(shù)據(jù)不想刪除分區(qū)中的數(shù)據(jù)時,應(yīng)首先將分區(qū)數(shù)據(jù)合并到鄰近分區(qū)相應(yīng)分區(qū)索引將被刪除全局索引變?yōu)椴豢捎茫ㄐ枰貥?gòu))分區(qū)表的維護—刪除分區(qū)ALTERTABLEstu_sco刪除分區(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ū)—索引selectpartition_name,h分區(qū)表操作—刪除分區(qū)記錄ALTERTABLEstu_scoreTRUNCATEPARTITIONscore_q3;也可以使用SQL語句中的Delete刪除分區(qū)中的數(shù)據(jù),但會比較慢。表中數(shù)據(jù)清空以后,對等分區(qū)索引會自動變化。非對等分區(qū)索引和一般索引變?yōu)椴豢捎脿顟B(tài)。
SCORE_Q2STUDENTS1998,02,01表分區(qū)SCORE_Q3STUDENTS1998,07,01SCORE_Q1USERS1997,07,01
INDEX_Q21998,02,01USABLE索引分區(qū)INDEX_Q11997,07,01USABLEINDEX_Q31998,07,01USABLE
PIDX195000UNUSABLE全局分區(qū)PIDX296000UNUSABLEPIDX3MAXVALUEUNUSABLE分區(qū)表操作—刪除分區(qū)記錄ALTERTABLEstu_sc索引不可用可能使索引不可用(IU)的操作清除記錄的分區(qū)操作(TRUNCATEPARTITION)跳過局部索引(LOCAL)的Import對數(shù)據(jù)庫的直接SQL*LOADER改變ROWID的分區(qū)操作(MOVE/SPLITPARTITION)如果索引分區(qū)被標記為IU,用戶發(fā)出使用該索引分區(qū)的SELECT或DML語句時,將得到錯誤提示。這時需要重建索引。select*fromstu_scorewherestu_num=950001錯誤位于第1行:ORA-01502:索引‘WXY.STU_G_IDX’或這類索引的分區(qū)是在不可使用的狀態(tài)索引不可用可能使索引不可用(IU)的操作重建索引alterindexrebuildpartition可以為local或global分區(qū)索引重建某個分區(qū)。例alterindexstu_g_idxrebuildpartitionpidx1;alterindexstu_g_idxrebuildpartitionpidx2;alterindexstu_g_idxrebuildpartitionpidx3;重建索引還可以改變表空間等其他存儲屬性。alterindexstu_g_idxrebuildpartitionpidx1tablespacestudent2重建索引alterindexrebuildpartit分區(qū)表的維護—修改分區(qū)修改分區(qū)的物理屬性altertablestu_scoremodifypartitionscore_q1storage(maxextents50);置分區(qū)表對應(yīng)的局部索引為不可用狀態(tài)。altertablestu_scoremodifypartitionscore_q1unusablelocalindexes;,用于插入和轉(zhuǎn)入數(shù)據(jù)。為使局部索引可用,必須重建索引分區(qū)重建已被標記為iu的局部分區(qū)索引altertablestu_scoremodifypartitionscore_q1rebuildunusablelocalindexes分區(qū)表的維護—修改分區(qū)修改分區(qū)的物理屬性分區(qū)表的操作—重命名分區(qū)修改分區(qū)名ALTERTABLEstu_scoreRENAMEPARTITIONscore_q3toscore_qq3;附:修改表名ALTERTABLEstu_scoreRENAMEtostudent_score;分區(qū)表的操作—重命名分區(qū)修改分區(qū)名分區(qū)表的操作—移動分區(qū)ALTERTABLEMOVEPARTITION移動表分區(qū)到另外一個數(shù)據(jù)段上。新的數(shù)據(jù)段產(chǎn)生,舊的數(shù)據(jù)段刪除(可在原表空間,也可移到其他表空間。用于將分區(qū)移動到其它設(shè)備上,或用于減少分區(qū)碎片。相應(yīng)的分區(qū)索引和其他類型的索引都應(yīng)該重建。altertablestu_scoremovepartitionscore_q1<tablespaceeducation>;分區(qū)表的操作—移動分區(qū)ALTERTABLEMOVEPA分區(qū)表的操作—拆分分區(qū)ALTERTABLESPLITPARTITION將分區(qū)在分區(qū)范圍內(nèi)拆分為兩個分區(qū)創(chuàng)建了兩個分區(qū),每一個新分區(qū)有單獨的數(shù)據(jù)段,新的物理屬性,舊分區(qū)被刪除相應(yīng)的局部索引也被SPLIT,并被標記為IU全局索引和非分區(qū)索引被標記為IUaltertablestu_scoresplitpartitionscore_q2at(1997,10,1)into(partitionscore_q21,partitionscore_q22);
分區(qū)名分區(qū)上限值分區(qū)索引
SCORE_Q11997,07,01INDEX_Q1SCORE_Q211997,10,01SCORE_Q21SCORE_Q221998,02,01SCORE_Q22SCORE_Q31998,07,01INDEX_Q3分區(qū)表的操作—拆分分區(qū)ALTERTABLESPLITP分區(qū)表的操作—交換數(shù)據(jù)ALTERTABLEEXCHANGEPARTITION用于非分區(qū)表和分區(qū)表的一個分區(qū)之間的雙向交換。可以交換數(shù)據(jù)和索引段物理屬性不變可以帶withvalidation或withoutvalidation。當數(shù)據(jù)不在分區(qū)范圍時,WITHVALIDATION將報錯。WITHOUTVALIDATION假定數(shù)據(jù)均在分區(qū)范圍。例:altertablestu_scoreexchangepartitionscore_q1withtablestu_score97withoutvalidation;分區(qū)表的操作—交換數(shù)據(jù)ALTERTABLEEXCHANG分區(qū)表操作—合并分區(qū)使用IMPORT/EXPORT可以將鄰近分區(qū)合并為一個分區(qū)使用Export從低層分區(qū)取出要合并的數(shù)據(jù)使用SQL語句DROP已經(jīng)Exported的分區(qū)使用Import將取出的數(shù)據(jù)合并到鄰近分區(qū)使用SQL語句實現(xiàn)分區(qū)的合并insertintostu_tempselect*fromstu_scorepartition(score_q1);altertablestu_scoredroppartitionscore_q1;insertintostu_scoreselect*fromstu_temp;分區(qū)表操作—合并分區(qū)使用IMPORT/EXPORT可以將鄰近SQL語句的并行處理SQL語句的并行處理45什么是Oracle的并行并行服務(wù)器選項允許多個數(shù)據(jù)庫實例運行在一個松散耦合多處理器系統(tǒng)(或集群系統(tǒng))的不同接點上,同時存取一個Oracle物理數(shù)據(jù)庫,從而為用戶提供了多種數(shù)據(jù)庫存取路徑。并行、容錯并行SQL語句處理將一個SQL語句(如查詢)分為幾個子任務(wù),然后啟動多個進程并行處理子任務(wù),并將結(jié)果快速返回給用戶。利用多進程、多CPU,縮短語句執(zhí)行時間。SQL語句的并行執(zhí)行不需要并行服務(wù)器選項。什么是Oracle的并行并行服務(wù)器選項串行處理掃描emp表掃描dep表連接排序CPUCPUCPUCPU查詢結(jié)果Selectename,age,dnamefromemp,depwhereemp.dno=dep.dnoorderbyage;單個進程執(zhí)行一條SQL語句串行處理掃描emp表掃描dep表連接排序CPUCPUCPUCSQL語句的并行處理Selectename,age,dnamefromemp,depwhereemp.dno=dep.dnoorderbyage;掃描emp表掃描dep表連接排序CPUCPUCPUCPU查詢結(jié)果多個進程執(zhí)行一條SQL語句SQL語句的并行處理Selectename,age,dna并行處理的條件軟件環(huán)境—并行SQL處理系統(tǒng)。一個并行的SQL處理系統(tǒng)接受一個SQL請求,智能地將它分解為幾個較小的可以并行的子任務(wù),然后使用所有空閑的CPU并行處理這些子任務(wù),以達到縮短總處理時間的目的。Oracle服務(wù)器使用一種特殊的操作系統(tǒng)進程結(jié)構(gòu),并行處理對數(shù)據(jù)庫的某些請求。硬件—多CPU系統(tǒng)并行處理的條件軟件環(huán)境—并行SQL處理系統(tǒng)。并行SQL語句的硬件環(huán)境SMP(symmetricmultiprocessor)對稱多處理機CPUCPUCPU內(nèi)存并行SQL語句的硬件環(huán)境SMP(symmetricmult可以被并行處理的操作select(掃描表),update,deleteinsert…select連接操作(join)聚合操作(統(tǒng)計)notin,groupby,orderbyselectdistinct,unioncreatetable…asselectcreateindex,rebuildindexsplitpartiton,movepartition,rebuildindexpartition從SQL語句中調(diào)用PL/SQL函數(shù)??梢员徊⑿刑幚淼牟僮鱯elect(掃描表),update并行機制-協(xié)調(diào)進程一個協(xié)調(diào)進程(coordinator)調(diào)度多個從屬進程(slaveprocesses)并行執(zhí)行SQL語句。Select*fromemp;串行進程Emp表Select*fromemp;協(xié)調(diào)進程Emp表并行進程并行機制-協(xié)調(diào)進程一個協(xié)調(diào)進程(coordinator)調(diào)度并行機制并行優(yōu)化器當用戶執(zhí)行SQL語句時,優(yōu)化器確定是否以并行方式執(zhí)行語句,以及每一個操作的并行度是多少。并行進程池在啟動一個數(shù)據(jù)庫實例后,Oracle建立一個并行進程池。當開始并行操作時,協(xié)調(diào)進程從并行池中獲得并行進程資源,并把它們分配給有關(guān)操作。實行并行步驟SQL語句的前臺進程變?yōu)椴⑿袇f(xié)調(diào)進程。協(xié)調(diào)進程根據(jù)并行度從并行池中獲得所需數(shù)量的從屬并行進程。系統(tǒng)將SQL語句化為一系列的操作,每個操作都盡可能地并行執(zhí)行。當語句處理完畢,協(xié)調(diào)進程返回結(jié)果給用戶進程,并釋放從屬并行進程(回進程池)。并行機制并行優(yōu)化器并行方法塊并行按ROWID的范圍并行適用于查詢(包括select語句和在DML和DCL中的子查詢)。適用于movesplit分區(qū),rebuild分區(qū)….適用于分區(qū)/非分區(qū)的表和索引。分區(qū)并行適用于對分區(qū)表和分區(qū)索引的操作。從屬進程并行適用于往非分區(qū)表中插入數(shù)據(jù)。插入記錄時,將記錄分攤到各個從屬進程分別插入因新記錄還沒有rowid,所以無法塊并行。并行方法塊并行并行計劃優(yōu)化器確定了一條語句的執(zhí)行計劃協(xié)調(diào)器決定計劃中的每一個操作的并行方法塊并行、分區(qū)并行…優(yōu)化器確定執(zhí)行計劃中操作的執(zhí)行順序語句的數(shù)據(jù)流操作之間的并行需要其他操作輸出的操作稱為父操作父操作子操作:消費者生產(chǎn)者兩種并行一個操作的并行intro-operation并行數(shù)據(jù)流中不同操作之間的并行inter-operation并行并行計劃優(yōu)化器確定了一條語句的執(zhí)行計劃并行模式Select*fromemporderbyename;(無索引)如果并行度為4,意味著對于任何給定的操作,可以激活4個并行進程。實際上8個進程執(zhí)行該語句。Introinterintro用戶進程協(xié)調(diào)進程A-GH-MN-ST-ZscanscanscanscanEmp表并行模式Select*fromemporderby并行度指定為執(zhí)行一個單一操作而啟動的進程數(shù)叫并行度語句級指定PARALLEL子句PARALLEL(DEGREE4)語句提示hint/*+parallel(emp,3)*/ 表和索引級在建表和索引的語句中指定。隱含指定基于CPU數(shù)、存儲表的設(shè)備(磁盤)數(shù)、分區(qū)數(shù)等并行度指定為執(zhí)行一個單一操作而啟動的進程數(shù)叫并行度并行度確定并行協(xié)調(diào)程序決定并行度的依據(jù):檢查在SQL語句中的hint或parallel子句。檢查在表和索引定義語句中的指定。使用隱含并行度指定。一旦確定并行度,它將成為有關(guān)操作的并行度,即協(xié)調(diào)進程為一操作申請的并行進程數(shù)。而實際進程數(shù)還取決于進程池中的可用資源。并行度確定并行協(xié)調(diào)程序決定并行度的依據(jù):并行子句語法Parallel子句語法(在DDL語句中使用)用于createtable,createindex,createclusteraltertable,alterindex…rebuild,alterclusteralterdatabase…recoverhint指定(在DML語句中使用)/*+parallel(表名,并行度)*/noparallellparallell()degreeinstancesintegerdefault并行子句語法Parallel子句語法(在DDL語句中使用)n并行執(zhí)行SQL語句例以并行度4同時執(zhí)行掃描和更新
update/*+parallel(emp,4)*/emp setsal=sal+100whereage>50;以并行度3執(zhí)行插入語句insert/*+parallel(emp2,3)*/ intoemp2 select/*+parallel(emp1,5)*/fromemp1;以并行度4執(zhí)行刪除語句delete/*+parallel(tab1,4)*/fromtab1 wherecol1>50andcol1<10000;并行執(zhí)行SQL語句例以并行度4同時執(zhí)行掃描和更新并行執(zhí)行SQL語句例在DDL語句中指定parallel子句(并行度為5)該命令執(zhí)行時使用10個進程,5個用于掃描emp1表,5個用于向emp2表中添加數(shù)據(jù)。CREATETABLEemp2 PARALLEL(DEGREE5) ASSELECT*FROMemp1WHEREdeptno=10;下面的命令使用10個進程構(gòu)造索引,5個用于掃描EMP表,另外5個用于向EMP_IDX中添加數(shù)據(jù)CREATEINDEXemp_idx ONemp(ename)PARALLEL(DEGREE5);并行執(zhí)行SQL語句例在DDL語句中指定parallel子句并行度確定例在DML語句(查詢)中指定并行度2select/*+parallel(emp22)*/*fromemp2whereage>50;采用表定義隱含并行度值(5)select*fromemp2whereage>50;采用系統(tǒng)隱含值select*fromemp1whereage>50;PARALLEL(DEGREE1INSTANCES1)等同于NOPARALLELdegree單實例中的并行instances實例間的并行(沒有并行服務(wù)器時忽略)并行度確定例在DML語句(查詢)中指定并行度2兩種并行度分別在并行服務(wù)器的5個實例上各啟動5個恢復(fù)進程,共25個進程。ALTERDATABASERECOVER TABLESPACEbinky PARALLEL(DEGREE5INSTANCES5);改變EMP1表的預(yù)定義并行度ALTERTABLEemp1 PARALLEL(DEGREE2);兩種并行度分別在并行服務(wù)器的5個實例上各啟動5個恢復(fù)進程,并行DML模式為使并行DML生效,會話需要PARALLELDML模式(特殊的鎖、空間分配等)ALTERSESSIONENABLEPARALLELDML;一個事物可以包含多個修改不同表的并行DML,但對于某個表作了并行DML修改后,不能在此事務(wù)中再對該表作任何形式的訪問。查詢(包括DML語句中的子查詢)和DDL語句不受此影響。其他約束在并行DML操作中不支持觸發(fā)器對自身的引用和連帶刪除必須被禁止并行插入刪除和修改不支持包含對象類型的表不支持聚集表復(fù)制功能中不支持并行DML并行DML模式為使并行DML生效,會話需要PARALLEL并行工作的平衡適當指定并行度可以優(yōu)化性能、平衡并行操作例:emp表有10個分區(qū)并行度=1并行度=5并行度=10并行度=9并行度=4處理時間不等于分區(qū)數(shù)/進程數(shù)并行工作的平衡適當指定并行度可以優(yōu)化性能、平衡并行操作大型對象-新數(shù)據(jù)類型
支持多媒體數(shù)據(jù)大型對象-新數(shù)據(jù)類型
支持多媒體數(shù)據(jù)66大型對象-多媒體數(shù)據(jù)類型三種類型的LOB二進制LOB(BLOB):無結(jié)構(gòu)的二進制大對象字符LOB(CLOB):字符數(shù)據(jù)(不支持變寬字符集)二進制文件(BFILE):最大長度由OS定對于LOB類型數(shù)據(jù),表的列值為一定位器值,標明數(shù)據(jù)存放的位置:BLOB和CLOB:指向一個分開的由數(shù)據(jù)庫分配的保存LOB的位置。BFILE:指向一個外部文件。LOB數(shù)據(jù)沒有必要與一般數(shù)據(jù)存放在一起。僅在需要時才訪問它們。LOB可以是對象類型的屬性大型對象-多媒體數(shù)據(jù)類型三種類型的LOB每行只能有一個LONGLONG在線存儲LONG<=2GLONG不能復(fù)制LONG不能記錄日志OCI可以處理該類型數(shù)據(jù)。varchar24k字符比較每行可以包含多個LOBLOB可以離線存儲LOB<=4GLOB可以復(fù)制LOB的操作可以記錄在日志中
LOB與LONG[RAW]的比較每行只能有一個LONG比較每行可以包含多個LOBLOB與多媒體數(shù)據(jù)類型應(yīng)用(LOB例)CREATETABLEperson( pnameVARCHAR2(10), resumeCLOB, photoBLOB, homepageBFILE) LOB(resume,photo)STOREAS(TABLESPACEresume_spaceSTORAGE(INITIAL5mNEXT1mPCTINCREASE0));對LOB數(shù)據(jù)所使用的空間另行指定存儲參數(shù)LOB子句多媒體數(shù)據(jù)類型應(yīng)用(LOB例)CREATETABLEpe多媒體數(shù)據(jù)類型(LOB設(shè)置)CHUNK的尺寸決定訪問LOB數(shù)據(jù)時一次處理數(shù)據(jù)塊的個數(shù)如果LOB以大數(shù)據(jù)量讀寫時,將CHUNK設(shè)大如果LOB以小數(shù)據(jù)量讀寫時,將CHUNK設(shè)小如果LOB被經(jīng)常訪問,設(shè)置CACHE,缺省為NOCACHECREATETABLEperson_tab( …)LOB(resume,picture)STOREAS(TABLESPACElob_tablespaceCHUNK4 NOCACHE);多媒體數(shù)據(jù)類型(LOB設(shè)置)CHUNK的尺寸決定訪問LOB數(shù)初始化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ù)據(jù)庫對象):createdirectoryperson_diras‘/user/person’;初始化LOB數(shù)據(jù)InsertintopersonBFILE與邏輯目錄使用BFILE將LOB存儲在數(shù)據(jù)庫外BFILE只讀,只能在ORACLE外創(chuàng)建和更新通過數(shù)據(jù)庫對象DIRECTORY定位外部文件用戶對于DIRECTORY的訪問需經(jīng)過授權(quán)(不是在某個模式下建目錄對象)。創(chuàng)建DIRECTORY對象時:不檢查實際目錄、文件是否存在。應(yīng)先創(chuàng)建相應(yīng)的物理路徑不要將DIRECTORY設(shè)置在ORACLE數(shù)據(jù)文件目錄ORACLE必須對該目錄有讀權(quán)限。嚴格控制CREATE或DROPANYDIRECTORY權(quán)限的授予BFILE與邏輯目錄使用BFILE將LOB存儲在數(shù)據(jù)庫外BFILE與邏輯目錄以管理員帳號執(zhí)行下列語句CREATEDIRECTORYmydirAS‘/home/image’;GRANTREADONDIRECTORYmydirtouesr01;以user01帳號執(zhí)行下列語句CREATETABLEmytable(idNUMBER,image_colBFILE);INSERTINTOmytableVALUES(139,filename(‘mydir’,‘world.gif’));BFILE與邏輯目錄以管理員帳號執(zhí)行下列語句復(fù)制LOB數(shù)據(jù)在SQL語句中復(fù)制LOB數(shù)據(jù)Insertintopersonselect'王中里',photo,homepagefrompersonwherepname=‘張大年’;在SQL*Plus平臺上只能對一般數(shù)據(jù)I/OSQL>select*fromperson;列或?qū)傩灶愋蜔o法通過SQL*Plus顯示復(fù)制LOB數(shù)據(jù)在SQL語句中復(fù)制LOB數(shù)據(jù)更新LOB數(shù)據(jù)自動加行鎖不適用于LOB數(shù)據(jù)。要讀加鎖selectpnamefrompersonwherepname=‘張大年’forupdate;updatepersonsetresume=‘新簡歷…’wherepname=‘張大年’;updatepersonsethomepage=bfilename(‘person_dir’,’zhang.html’)wherepname=‘張大年’;排他鎖僅在更新內(nèi)部存儲的LOB數(shù)據(jù)時必要更新LOB數(shù)據(jù)自動加行鎖不適用于LOB數(shù)據(jù)。要讀加鎖處理LOB數(shù)據(jù)的接口ORACLE提供大量的操縱LOB數(shù)據(jù)的接口DBMS_LOB包—包含一系列函數(shù)和過程OCI也包含大量API檢查LOB數(shù)據(jù)的函數(shù)和過程COMPARE比較兩個LOB數(shù)據(jù)GETLENGTH執(zhí)行sql的length函數(shù)INSTR查找字符串位置,執(zhí)行sql的instr函數(shù)READ讀入一段LOB值SUBSTRLOB數(shù)據(jù)取子串,執(zhí)行sql的substr函數(shù)處理LOB數(shù)據(jù)的接口ORACLE提供大量的操縱LOB數(shù)據(jù)的接處理LOB數(shù)據(jù)的接口改變LOB數(shù)據(jù)的函數(shù)和過程APPEND把一個LOB數(shù)據(jù)追加到另一LOB數(shù)據(jù)后COPY將一個LOB值的指定部分拷貝到另一LOB列ERASE刪除部分或全部LOB值LOADFROMFILETRIM執(zhí)行sql的rtrim函數(shù)。刪除最右邊的指定串WRITE在LOB數(shù)據(jù)中的指定點寫入數(shù)據(jù)處理LOB數(shù)據(jù)的接口改變LOB數(shù)據(jù)的函數(shù)和過程處理BFILE的接口DBMS_LOB包中有關(guān)BFILE的函數(shù)/過程FILEOPEN打開文件以讀入數(shù)據(jù)FILECLOSE關(guān)閉打開的文件FILECLOSEALL關(guān)閉所有打開的文件FILEEXISTS確定BFILE定位器所引用的文件是否存在。FILEGETNAME獲得一個BFILE定位器所引用的外部文件的名稱。判斷一個外部文件是否打開FILEISOPEN處理BFILE的接口DBMS_LOB包中有關(guān)BFILE的函數(shù)LOB數(shù)據(jù)處理(讀)Declarelocator_varCLOB;要操作的LOB定位器BLOBamount_varinteger;要讀入的字符數(shù)offset_varinteger;讀操作的起始點output_varvarchar2(10);讀入數(shù)據(jù)變量RAWbeginamount_var:=10;offset_var:=1;selectresumeintolocator_varfrompersonwherepname=‘張大年’;DBMS_LOB.READ(locator_var,amount_var,offset_var,output_var);DBMS_OUTPUT.PUT_LINE(‘startofresume:’||output_var);end;LOB數(shù)據(jù)處理(讀)DeclareLOB數(shù)據(jù)處理(寫)Declarelocator_varCLOB;要操作的LOB定位器amount_varinteger;要寫入的字符數(shù)offset_varinteger;寫操作的起始點buffer_varvarchar2(12);寫入內(nèi)容變量beginamount_var:=12;offset_var:=10;buffer_var:=‘a(chǎn)ddnewtext’;selectresumeintolocator_varfrompersonwherepname=‘張大年’forupdate;DBMS_LOB.WRITE(locator_var,amount_var,offset_var,buffer_var);commit;end;LOB數(shù)據(jù)處理(寫)DeclareLOB數(shù)據(jù)處理varchar2和raw的最大長度為32767
SUBSTR函數(shù)output_var:=DBMS_LOB.SUBSTR(locator_var,amount_var,offset_var);GETLENGTH函數(shù)declarelocator_varCLOB;length_varineger;beginselectresumeintolocator_varfrompersonwherepname=‘張大年’;
length_var:=DBMS_LOB.GETLENGTH(locator_var);DBMS_OUTPUT.PUT_LINE(‘lengthofLOBis’||length_var);end;LOB數(shù)據(jù)處理varchar2和raw的最大長度為32767加載LOB數(shù)據(jù)DBMS_LOADFROMFILE(desc_lobINOUTBLOB|CLOB|NCLOB,src_lobINBFILE,amountININTEGER,從源文件讀取的字節(jié)數(shù)desc_offsetININTEGER,目標文件寫入位置,單位字節(jié)/字符src_offsetININTEGER)源文件讀出位置,單位:字節(jié)加載LOB數(shù)據(jù)DBMS_LOADFROMFILE(LOB數(shù)據(jù)處理注意事項在對BFILE列處理時,如果出現(xiàn)例外,應(yīng)該在例外處理部分調(diào)用FILECLOSE包過程。當刪除LOB列時BLOB和CLOB:定位器和LOB值都將被刪除BFILE:僅刪除定位器。(外部文件要手工刪除)LOB數(shù)據(jù)處理注意事項在對BFILE列處理時,如果出現(xiàn)例外,Oracle8數(shù)據(jù)庫系統(tǒng)改進表的存取性能-索引與數(shù)據(jù)簇分區(qū)選件-分區(qū)表與分區(qū)索引并行選件-SQL語句并行處理新的數(shù)據(jù)類型(多媒體數(shù)據(jù)類型)Oracle8數(shù)據(jù)庫系統(tǒng)改進表的存取性能-索引與數(shù)據(jù)簇84索引索引85索引在數(shù)據(jù)庫應(yīng)用中,性能主要取決于存取表中數(shù)據(jù)的速度。索引可以快速找到待定的表記錄。索引維護與應(yīng)用:索引對用戶透明當有索引且能提高應(yīng)用的性能時,Oracle自動使用索引。Oracle自動更新索引以使其與表同步。索引類型B樹索引(系統(tǒng)自動為主碼和唯一完整性約束建立)位圖索引索引表,分區(qū)索引,反向鍵值索引…。索引在數(shù)據(jù)庫應(yīng)用中,性能主要取決于存取表中數(shù)據(jù)的速度。SMITHALLENWARDJONESMARTINBLAKECLARKSCOTTKINGTURNERADAMSJAMESFORDMILLERB樹索引createindex索引名on表名(列名)
ADAMSALLENBLAKECLARKFORDJAMESJONESKINGMARTINMILLERSCOTTSMITHTURNERWARDMILLERTURNERBLAKEJAMESKINGROWIDSMITHMARTINTURNERB樹索引ADAMSBLAK對于索引列的每一個可能的值,都有獨立的位圖項。在位圖項中的每一位代表一個可能的ROWID,為1意味著該行包含關(guān)鍵值。例如:LOC列(3種取值)北京(010011)天津(100000)上海(001100)第二個記錄第一個記錄位圖函數(shù)可以將位的位置轉(zhuǎn)換為實際的ROWID。通過位圖索引的合并簡化查詢條件,從而過濾被訪問的數(shù)據(jù)集合。位圖索引d01合資d02合資d03合資d04外企d05國企d06合資dnotype天津北京上海上海北京北京loc對于索引列的每一個可能的值,都有獨立的位圖項。位圖索引d01
selectdnofromdepwheretype=‘合資’andlocin(‘北京’,‘上海’);合資北京上海 1000 1 1 01 d02 1 011 d03 0AND 0OR1=0 0 100 1 10 1 d06 位圖索引的例子selectdnofromdep位圖索引的例子位圖索引建立位圖索引;createbitmapindexdep_indexondep(type);createbitmapindexdep_indexondep(doc);位圖索引適用于列的值取值不多的情況、索引列含有越多的值,位圖項就越多,需要存儲索引的空間也越大。由于Oracle必須展開一個位圖索引的方式,所以不適于經(jīng)常插入或更新數(shù)據(jù)的應(yīng)用。位圖索引典型地用于決策系統(tǒng)與數(shù)據(jù)倉庫應(yīng)用中查詢數(shù)據(jù)。位圖索引建立位圖索引;簇(聚集)索引當cluster建立后,必須建立簇索引后,被聚集的表才能訪問。系統(tǒng)不會自動為簇建索引。例:createclusertdep_emp(depnochar(3));createtabledep(dno..,dname..,…)clusterdep_emp(dno);createtableemp(emp…,…dno...)clusterdep_emp(dno);createindexdep_emp_idxonclusterdep_emp;簇(聚集)索引當cluster建立后,必須建立簇索引后,被聚簇(聚集)索引簇索引表的存儲e01王山男d01佳月公司8200e02張麗女d01e10孫軍男d02運通公司2034d03安合物業(yè)6800來自emp來自depclusterkey簇(聚集)索引簇索引表的存儲分區(qū)選件分區(qū)選件93分區(qū)選件分區(qū)的原因表和索引迅速膨脹數(shù)據(jù)倉庫和決策支持的需要什么是分區(qū)大的表或索引可以拆分為小的易于管理的數(shù)據(jù)片斷,例如將銷售表按銷售日期拆分成一系列數(shù)據(jù)片斷其中每一個片斷稱為一個分區(qū)(partition)被分區(qū)的表稱為分區(qū)表。分區(qū)選件分區(qū)的原因數(shù)據(jù)倉庫的概念數(shù)據(jù)倉庫就是面向主題的、集成的、穩(wěn)定的、不同時間的數(shù)據(jù)集合,用以支持經(jīng)營管理中的決策制定過程。主題是一個在較高層次將數(shù)據(jù)歸類的標準,每一個主題對應(yīng)一個宏觀的分析領(lǐng)域數(shù)據(jù)倉庫的集成特性是指在數(shù)據(jù)進入數(shù)據(jù)倉庫之前,必須經(jīng)過數(shù)據(jù)加工和集成,統(tǒng)一原始數(shù)據(jù)中的矛盾之處,將原始數(shù)據(jù)結(jié)構(gòu)做一個從面向應(yīng)用向面向主題的轉(zhuǎn)變。數(shù)據(jù)倉庫的穩(wěn)定性是指數(shù)據(jù)倉庫反映的是歷史數(shù)據(jù)的內(nèi)容,而不是日常事務(wù)處理產(chǎn)生的數(shù)據(jù),進入數(shù)據(jù)倉庫后是極少或根本不修改的數(shù)據(jù)倉庫的概念數(shù)據(jù)倉庫就是面向主題的、集成的、穩(wěn)定的、不同時數(shù)據(jù)倉庫的概念數(shù)據(jù)倉庫最根本的特點是物理地存放數(shù)據(jù)。這些數(shù)據(jù)并不是最新的、專有的,而是來源于其它數(shù)據(jù)庫的。數(shù)據(jù)倉庫的建立并不是要取代數(shù)據(jù)庫,它要建立在一個較全面和完善的信息應(yīng)用的基礎(chǔ)上,用于支持高層決策分析。而事務(wù)處理數(shù)據(jù)庫在企業(yè)的信息環(huán)境中承擔的是日常操作性的的任務(wù)。數(shù)據(jù)倉庫是數(shù)據(jù)庫技術(shù)的一種新的應(yīng)用,而且到目前為止,數(shù)據(jù)倉庫還是用數(shù)據(jù)庫管理系統(tǒng)來管理其中的數(shù)據(jù)。數(shù)據(jù)倉庫的概念數(shù)據(jù)倉庫最根本的特點是物理地存放數(shù)據(jù)。這些數(shù)據(jù)分區(qū)只有表和索引可以分區(qū)。分區(qū)對于應(yīng)用人員和用戶是透明的。分區(qū)可以控制數(shù)據(jù)的存儲地點:將數(shù)據(jù)分散存儲在多個磁盤上。將經(jīng)常使用的數(shù)據(jù)放在快速的磁盤上。分區(qū)可以有不同的物理屬性:分區(qū)可以有不同的存儲參數(shù)(tablespace,pctfree,pctused,等等)分區(qū)表或索引可以跨表空間存儲,分區(qū)不可以。同一模式對象的所有分區(qū)必須具有相同的邏輯屬性:相同的列,數(shù)據(jù)類型,約束。分區(qū)只有表和索引可以分區(qū)。分區(qū)的作用增加了數(shù)據(jù)的可用性不同的分區(qū)可以跨表空間存儲,可以進行分區(qū)級的備份和恢復(fù)。不同的分區(qū)可以跨表空間存儲,降低了磁盤損壞帶來的數(shù)據(jù)不可用性。不可用的分區(qū)不會影響到對其它分區(qū)的查詢和維護提高了系統(tǒng)性能服務(wù)器可以進行智能的分區(qū)檢測跳過與查詢無關(guān)的分區(qū)訪問跳過不在線的分區(qū)在物理設(shè)備上負載均衡將數(shù)據(jù)分散存儲在多個磁盤上,實現(xiàn)并行存取分區(qū)的作用增加了數(shù)據(jù)的可用性分區(qū)關(guān)鍵字分區(qū)關(guān)鍵字決定了劃分分區(qū)的依據(jù)只能是標準數(shù)據(jù)類型:Number,Date,Character(VARCHAR2,CHAR)可以是多至16個的列的聯(lián)合對關(guān)鍵字的修改不能導(dǎo)致記錄在分區(qū)之間的移動分區(qū)的數(shù)據(jù)范圍LESSTHAN子句指定每個分區(qū)的上限值。除第一個分區(qū)外,每一個分區(qū)都有一個隱含的下限值(即前一個分區(qū)的上限值)。最后一個分區(qū)的上限值可以設(shè)定為MAXVALUE必須按照升序排列來聲明分區(qū)。分區(qū)關(guān)鍵字分區(qū)關(guān)鍵字建立分區(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,
溫馨提示
- 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 初中2年級下冊數(shù)學(xué)試卷
- 輕質(zhì)拱形屋頂施工方案
- 基于轉(zhuǎn)錄組與代謝組對兩種披堿草屬牧草響應(yīng)干旱脅迫分子機制的研究
- 2025年度股東債權(quán)資本轉(zhuǎn)換合同:實現(xiàn)資產(chǎn)重組與風(fēng)險控制的綜合協(xié)議
- 二零二五年度茶館品牌授權(quán)及轉(zhuǎn)讓協(xié)議
- 二零二五年度房屋買賣合同簽訂中的環(huán)保與安全標準
- 2025年度股東合作共同投資風(fēng)險承擔協(xié)議書
- 二零二五年度新能源儲能技術(shù)股權(quán)轉(zhuǎn)讓及回購合同
- 2025年度環(huán)境損害賠償協(xié)議書格式范本
- 二零二五年度股權(quán)受讓合同模板
- 消防產(chǎn)品目錄(2025年修訂本)
- 地方性分異規(guī)律下的植被演替課件高三地理二輪專題復(fù)習(xí)
- 光伏項目風(fēng)險控制與安全方案
- 9.2提高防護能力教學(xué)設(shè)計 2024-2025學(xué)年統(tǒng)編版道德與法治七年級上冊
- 催收培訓(xùn)制度
- ISO 22003-1:2022《食品安全-第 1 部分:食品安全管理體系 審核與認證機構(gòu)要求》中文版(機翻)
- 五四制青島版數(shù)學(xué)五年級上冊期末測試題及答案(共3套)
- 商法題庫(含答案)
- 鋼結(jié)構(gòu)用高強度大六角頭螺栓連接副 編制說明
- 溝通與談判PPT完整全套教學(xué)課件
- 移動商務(wù)內(nèi)容運營(吳洪貴)項目四 移動商務(wù)運營內(nèi)容的傳播
評論
0/150
提交評論