資源描述:
《深入學(xué)習(xí)分區(qū)表及分區(qū)索引(詳解oracle分區(qū))》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、下載的,寫的非常好,給大家分享下。什么時(shí)候使用分區(qū): 1、大數(shù)據(jù)量的表,比如大于2GB。一方面2GB文件對(duì)于32位os是一個(gè)上限,另外備份時(shí)間長(zhǎng)?! ?、包括歷史數(shù)據(jù)的表,比如最新的數(shù)據(jù)放入到最新的分區(qū)中。典型的例子:歷史表,只有當(dāng)前月份的數(shù)據(jù)可以被修改,而其他月份只能read-only ORACLE只支持以下分區(qū):tables,indexesontables,materializedviews,andindexesonmaterializedviews 分區(qū)對(duì)SQL和DML是透明的(應(yīng)用程序不必知道已經(jīng)作了分區(qū)),但是DDL可以對(duì)不同的分區(qū)進(jìn)行管理?!?/p>
2、 不同的分區(qū)之間必須有相同的邏輯屬性,比如共同的表名,列名,數(shù)據(jù)類型,約束; 但是可以有不同的物理屬性,比如pctfree,pctused,andtablespaces. 分區(qū)獨(dú)立性:即使某些分區(qū)不可用,其他分區(qū)仍然可用?! ∽疃嗫梢苑殖?4000個(gè)分區(qū),但是具有LONGorLONGRAW列的表不可以,但是有CLOBorBLOB列的表可以?! 】梢圆挥胻o_date函數(shù),比如: altersessionsetnls_date_format='mm/dd/yyyy'; CREATETABLEsales_range (salesman_idNUMBER(
3、5), salesman_nameVARCHAR2(30), sales_amountNUMBER(10), sales_dateDATE) PARTITIONBYRANGE(sales_date) ( PARTITIONsales_jan2000VALUESLESSTHAN('02/01/2000'), PARTITIONsales_feb2000VALUESLESSTHAN('03/01/2000'), PARTITIONsales_mar2000VALUESLESSTHAN('04/01/2000'), PARTITIONsales_a
4、pr2000VALUESLESSTHAN('05/01/2000') ); PartitionKey:最多16個(gè)columns,可以是nullable的 非分區(qū)的表可以有分區(qū)或者非分區(qū)的索引; 分區(qū)表可以有分區(qū)或者非分區(qū)的索引; Partitioning方法: RangePartitioning ListPartitioning HashPartitioning CompositePartitioning CompositePartitioning:組合,以及range-hashandrange-listcompositepartition
5、ing RangePartitioning: 每個(gè)分區(qū)都有VALUESLESSTHAN子句,表示這個(gè)分區(qū)小于(<)某個(gè)上限,而大于等于(>=)前一個(gè)分區(qū)的VALUESLESSTHAN值?! AXVALUE定義最高的分區(qū),他表示一個(gè)虛擬的無(wú)限大的值。這個(gè)分區(qū)包括null值?! REATETABLEsales_range (salesman_idNUMBER(5), salesman_nameVARCHAR2(30), sales_amountNUMBER(10), sales_dateDATE) PARTITIONBYRANGE(sales_d
6、ate) ( PARTITIONsales_jan2000VALUESLESSTHAN(TO_DATE('01/02/2000','DD/MM/YYYY')), PARTITIONsales_feb2000VALUESLESSTHAN(TO_DATE('01/03/2000','DD/MM/YYYY')), PARTITIONsales_mar2000VALUESLESSTHAN(TO_DATE('01/04/2000','DD/MM/YYYY')), PARTITIONsales_apr2000VALUESLESSTHAN(TO_DATE('01/
7、05/2000','DD/MM/YYYY')), PARTITIONsales_2000VALUESLESSTHAN(MAXVALUE) ); 插入數(shù)據(jù): Insertintosales_rangevalues(1,2,3,to_date('21-04-2000','DD-MM-YYYY')); Insertintosales_rangevalues(1,2,3,sysdate); 選擇數(shù)據(jù): select*fromsales_range; select*fromsales_rangepartition(sales_apr2000); sel
8、ect*fromsales_range