Oracle 存儲與關(guān)鍵表設(shè)計(jì)()(共57張PPT)_第1頁
Oracle 存儲與關(guān)鍵表設(shè)計(jì)()(共57張PPT)_第2頁
Oracle 存儲與關(guān)鍵表設(shè)計(jì)()(共57張PPT)_第3頁
Oracle 存儲與關(guān)鍵表設(shè)計(jì)()(共57張PPT)_第4頁
Oracle 存儲與關(guān)鍵表設(shè)計(jì)()(共57張PPT)_第5頁
已閱讀5頁,還剩52頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

OracleRDBMS

存儲與表設(shè)計(jì)趙元杰Zyj5681@2007年8月11/7/20221日期內(nèi)容提要Oracle表空間與塊結(jié)構(gòu)與段對象創(chuàng)建表結(jié)構(gòu)準(zhǔn)備創(chuàng)建表結(jié)構(gòu)語法與參數(shù)解釋創(chuàng)建帶有存儲控制的樣例表9i/10g存儲參數(shù)與塊參數(shù)的變化表數(shù)據(jù)存儲量大小估計(jì)表的修改及其它處理參考資料11/7/20222日期Oracle數(shù)據(jù)庫-表空間-對象TablespaceTables,indexes,etc.DatafilesSegmentExtentBlocks11/7/20223日期Oracle表空間(Tablespaces)表空間類型System/NonsystemOnline/OfflineRead-Write/Read-OnlyTransportable表空間種類永久表空間(存儲表、索引)臨時表空間(存儲排序數(shù)據(jù))撤消表空間(存儲DML數(shù)據(jù))11/7/20224日期表空間(tablespace)與表(Tables)表存儲在表空間(Tablespaces)表由行與列構(gòu)成表包含數(shù)據(jù)(表占很多塊空間,稱“段”)TablespaceTables,indexes,etc.DatafilesSegmentExtentBlocks11/7/20225日期Oracle表空間與數(shù)據(jù)文件表空間(Tablespace):表空間由多個數(shù)據(jù)文件組成,如SYSTEM表空間由system01.dbf構(gòu)成;表的數(shù)據(jù)存儲表空間對應(yīng)的數(shù)據(jù)文件里;表和索引等可分別存儲在不同的表空間;數(shù)據(jù)文件結(jié)構(gòu):數(shù)據(jù)文件由多個Oracle塊組成;F1.oraF2.oraF3.oraF4.oraF5.oraTablespace1Tablespace2Table1Table2Table3CREATETABLESPACEuser_dataDATAFILE‘udata.ora’SIZE10MEXTENTMANAGEMENTLOCAL…CREATETABLEmy_emp(namevarchar2(20),…TABLEASPACEuser_datapctfree5;11/7/20226日期Oracle塊結(jié)構(gòu)與段對象數(shù)據(jù)文件都是塊構(gòu)成;內(nèi)存分配也是以塊為單位;I/O也以塊為單位;塊大小在安裝時選擇(基本塊大小);不同的Oracle版本允許塊大小不一樣;目前塊大小可以2k~32K;Oracle9i/10g/11g在表空間中塊大小可變;塊大小要根據(jù)OS決定;Oracle塊太大是OS塊大小的倍數(shù)(2的冪次方);Oracle塊大小影響到性能;11/7/20227日期Oracle塊結(jié)構(gòu)與段對象-塊內(nèi)部結(jié)構(gòu)Oracle數(shù)據(jù)段(Datasegment)存放在塊里比我們想象要復(fù)雜的多:11/7/20228日期表空間對應(yīng)一個或多個數(shù)據(jù)文件;數(shù)據(jù)文件由多個Oracle塊構(gòu)成;Oracle塊可存儲下面的段:數(shù)據(jù)段(Datasegment)-tables,triggers等索引段(Indexsegment)-indexes臨時段(Temporarysegment):-排序和臨時表回滾段(Rollbacksegment)-undodata信息LOB段(LOBsegment)-與表的基本數(shù)據(jù)存儲或分開的LOB數(shù)據(jù)Oracle塊結(jié)構(gòu)與段對象11/7/20229日期內(nèi)容提要Oracle表空間與塊結(jié)構(gòu)與段對象創(chuàng)建表結(jié)構(gòu)準(zhǔn)備創(chuàng)建表結(jié)構(gòu)語法與參數(shù)解釋創(chuàng)建帶有存儲控制的樣例表存儲參數(shù)在9i/10g的變化表數(shù)據(jù)存儲量大小估計(jì)表的修改及其它處理參考資料11/7/202210日期創(chuàng)建表結(jié)構(gòu)準(zhǔn)備對象命名:名字1~30個字符號;名字只能是a~z、A~Z,也可在字符后加0~9;名字可加$、#、_;不許帶空字符;最好不能為保留字(可從v$reserved_words中查)與保留字相同,可用雙引號;

列名的統(tǒng)一問題:同一種含義的列命名與類型在應(yīng)用系統(tǒng)中統(tǒng)一;命名不要采用拼音或拼音縮寫-重復(fù)率高、不好猜;命名采用英語或英語縮寫;列名太長不好;類型能采用字符就不要采用數(shù)字類型。11/7/202211日期創(chuàng)建表結(jié)構(gòu)準(zhǔn)備數(shù)據(jù)類型使用VARCHAR2(size)變長-1~4000字符CHAR(size)定長–1~2000字符NUMBER(p)整數(shù)NUMBER(p,s)定點(diǎn)數(shù)十進(jìn)制NUMBER浮點(diǎn)數(shù)十進(jìn)制DATE日期類型LONG變長大對象(4Gigabyte)NCHAR類似CHAR,使用2-字節(jié)編碼BLOB二進(jìn)制數(shù)據(jù),4GBCLOB單字節(jié)字符數(shù)據(jù),可達(dá)4GBNCLOB類似CLOB,支持2-字節(jié)編碼BFILE引用的外部的二進(jìn)制文件LONGRAW原二進(jìn)制數(shù)據(jù)Oracle8/8i/9i/10g版本常用數(shù)據(jù)類型:11/7/202212日期創(chuàng)建表結(jié)構(gòu)準(zhǔn)備Oracle10g一般的數(shù)據(jù)類型:數(shù)據(jù)類型說明Char(size)定長字符類型,size<=2000字符Varchar(size)可變字符類型,size<=4000個字符Varchar2(size)可變字符類型,size<=4000個字符(Oracle建議用)Nchar(size)定長本地語言字符類型,size<=2000字符Nvarchar(size)可變本地語言字符類型,size<=4000個字符Nvarchar(size)可變本地語言字符類型,size<=4000個字符11/7/202213日期創(chuàng)建表結(jié)構(gòu)準(zhǔn)備Oracle10g一般的數(shù)據(jù)類型:數(shù)據(jù)類型說明date定長的日期類型,占7字節(jié);可包含年月日時分秒timestape時間郵戳類型,包含可包含年月日時分秒;但是秒數(shù)的精度為1/100秒Intervalyear以年月存儲的時間區(qū)的值,可以是0~9,(默認(rèn)為2)Intervalday以天、小時、分、秒存儲的時間值,可以是0~9,默認(rèn)為2Number(p,s)數(shù)字類型,可存儲等任何類型BINARY_FLOAT32Bit的單精度數(shù)據(jù)類型(僅10g/11g)BINARY_DOUBLE64Bit的單精度數(shù)據(jù)類型(僅10g/11g)11/7/202214日期創(chuàng)建表結(jié)構(gòu)準(zhǔn)備Oracle10g一般的數(shù)據(jù)類型:數(shù)據(jù)類型說明long可變字符類型,可存儲<=2GB;Longraw可變二進(jìn)制類型,可存儲<=2GB;raw可變二進(jìn)制類型,可存儲<=4000;BLOB二進(jìn)制大對象,可存儲圖像等類型數(shù)據(jù);每數(shù)據(jù)行可存儲<=8~128TBCLOB字符大對象,可存儲任何大文本類型數(shù)據(jù);每數(shù)據(jù)行可存儲<=8~128TBNCLOB本地語言字符大對象,類似CLOB類型;BFILE包含指向OS路徑的大對象定位器11/7/202215日期創(chuàng)建表結(jié)構(gòu)準(zhǔn)備10g新BINARY_FLOAT數(shù)據(jù)類型:32Bit的單精度數(shù)據(jù)類型BINARY_FLOAT;BINARY_FLOAT以5個字節(jié)存儲,含一個長度字節(jié);10gBINARY_DOUBLE:64Bit的雙精度數(shù)據(jù)類型BINARY_DOUBLE;BINARY_DOUBLE以9個字節(jié)存儲,含一個長度字節(jié);BINARY-FLOATBINARY-DOUBLEMAXIMUMFINITEVALUE3.40282+38F1.79769313486231E+308MINIMUMFINITEVALUE1.17549E-38F2.22507485850720E-30810g11/7/202216日期Oracle對象創(chuàng)建準(zhǔn)備-數(shù)據(jù)類型數(shù)據(jù)類型選擇要點(diǎn):不要使用long或longraw類型;一般不要NCHAR等類型;Number(p,s)類型要滿足應(yīng)用系統(tǒng)發(fā)展需要;Number(p,s)類型在整個應(yīng)用系統(tǒng)中要保持一致性??!應(yīng)用系統(tǒng)設(shè)計(jì)與數(shù)據(jù)倉庫考慮:列名與類型一致性問題;將來的數(shù)據(jù)整合問題;統(tǒng)一使用Number(p,s)類型;數(shù)字類型整數(shù)與精度要一致。11/7/202217日期內(nèi)容提要Oracle表空間與塊結(jié)構(gòu)與段對象Oracle塊結(jié)構(gòu)與段對象創(chuàng)建表結(jié)構(gòu)準(zhǔn)備創(chuàng)建表結(jié)構(gòu)語法與參數(shù)解釋創(chuàng)建帶有存儲控制的樣例表9i/10g存儲參數(shù)與塊參數(shù)的變化表的修改及其它處理參考資料11/7/202218日期創(chuàng)建表結(jié)構(gòu)-語法建議采用命令方式:認(rèn)真研究Oracle的CREATETABLE子句;關(guān)鍵的項(xiàng)不要采用默認(rèn)值,語法如下:CREATETABLE[USER.]table_name({COLUMN1DATATYPE[DEFAULTEXPN][COLUMN_CONSTRAINT]|TABLE_CONSTRAINT}[,{COLUMN1DATATYPE[DEFAULTEXPN][COLUMN_CONSTRAINT]|TABLE_CONSTRAINT}]...)[CLUSTERCLUSTER(COLUMN1[,COLUMN2]...)][PCTFREEN][PCTUSEDN][INITRANSN][MAXTRANSN][STORAGEN][TABLESPACEtablespace_name][ENABLE|DISABLE][ASQUERY]11/7/202219日期創(chuàng)建表結(jié)構(gòu)語法-子句解釋子句說明Table_name表名,字母數(shù)字<=30個schema模式名,默認(rèn)為用戶名datatype列數(shù)據(jù)類型Column_constraint列約束Table_constraint

integer最大分配次數(shù)11/7/202220日期創(chuàng)建表結(jié)構(gòu)語法-子句解釋Storage子句說明INITIALinteger初始大小NEXTinteger下次擴(kuò)展大??;在9i/10g創(chuàng)建本地表空間,NEXT由系統(tǒng)自動分配MINEXTENTSinteger最小分配次數(shù),最小默認(rèn)是2MAXEXTENTSinteger最大分配次數(shù)PCTINCREASEinteger增長百分比(>=0),默認(rèn)50UNLIMITEDMINEXTENTS參數(shù),用于限制空間的增長11/7/202221日期創(chuàng)建表結(jié)構(gòu)語法-子句解釋子句說明DEFAULT當(dāng)前列的默認(rèn)值(常數(shù))INITRANS數(shù)據(jù)塊中用于更新(UPDATE)的空間百分比(1-99),0表示在插入時完全填滿數(shù)據(jù)塊,默認(rèn)為10MAXTRANS每個數(shù)據(jù)塊分配的事務(wù)如口數(shù)(1-255),默認(rèn)1PCTFREE數(shù)據(jù)塊的用于更新的百分比(1-99),0表示在插入是填滿整個數(shù)據(jù)庫塊PCTUSED數(shù)據(jù)塊保留的可用空間的最小百分比。取值1-99,默認(rèn)為40。實(shí)際上PCTUSED是控制自由空間的可用性。11/7/202222日期創(chuàng)建表結(jié)構(gòu)語法-塊變化建議采用命令方式:認(rèn)真研究Oracle的CREATETABLE子句;關(guān)鍵的項(xiàng)不要采用默認(rèn)值,語法如下:11/7/202223日期內(nèi)容提要Oracle塊結(jié)構(gòu)與段對象創(chuàng)建表結(jié)構(gòu)準(zhǔn)備創(chuàng)建表結(jié)構(gòu)語法與參數(shù)解釋創(chuàng)建帶有存儲控制的樣例表9i/10g存儲參數(shù)與塊參數(shù)的變化表的修改及其它處理參考資料11/7/202224日期創(chuàng)建表結(jié)構(gòu)樣例1-塊控制參數(shù)createtableuser_dflow(user_namevarchar2(30),/*用戶名*/bj_datedate,/*日期及時間*/...day_fee_innumber(16,6),/*日入流量費(fèi)用*/day_fee_outnumber(16,6)/*日出流量費(fèi)用*/)TABLESPACEusersPCTFREE5PCTUSED80/創(chuàng)建網(wǎng)絡(luò)計(jì)費(fèi)數(shù)據(jù)流量明細(xì)表user_dflow:根據(jù)上網(wǎng)記錄的信息很少修改特點(diǎn),設(shè)置PCTFREE為5;而希望盡快釋放刪除的塊空間而將PCTUSED設(shè)85;該表一開始先分配100MB,用完再分配50MB;11/7/202225日期創(chuàng)建表結(jié)構(gòu)樣例2-存儲分配參數(shù)createtableuser_dflow(user_namevarchar2(30),/*用戶名*/bj_datedate,/*日期及時間*/...day_fee_innumber(16,6),/*日入流量費(fèi)用*/day_fee_outnumber(16,6)/*日出流量費(fèi)用*/)TABLESPACEusersPCTFREE5PCTUSED80STORAGE(INITIAL120MNEXT60MMINEXTENTS1PCTINCREASE0MAXEXTENTS9999)創(chuàng)建網(wǎng)絡(luò)計(jì)費(fèi)數(shù)據(jù)流量明細(xì)表user_dflow:對user_dflow表的年數(shù)據(jù)量進(jìn)行估計(jì):假設(shè)年數(shù)據(jù)量100MB,則可分配120MB;當(dāng)分配120MB用完后,由再分配60MB,…11/7/202226日期內(nèi)容提要Oracle塊結(jié)構(gòu)與段對象創(chuàng)建表結(jié)構(gòu)準(zhǔn)備創(chuàng)建表結(jié)構(gòu)語法與參數(shù)解釋創(chuàng)建帶有存儲控制的樣例表9i/10g存儲參數(shù)與塊參數(shù)的變化表的修改及其它處理參考資料11/7/202227日期存儲參數(shù)在9i/10g的變化為什么9i/10g取消段的空間擴(kuò)展設(shè)置:表數(shù)據(jù)的增長與空間的不斷減少是矛盾的關(guān)鍵;NEXT表示必須分配一組連序的Oracle塊;如果表空間無NEXT所要求的連續(xù)塊,則分配失敗;9i/10g為表擴(kuò)展空間時不參考NEXT,而是根據(jù)表的增長與實(shí)際表空間剩余的空間來確定。存儲參數(shù)設(shè)置:字典類型表空間-可設(shè)置STORAGE的所有項(xiàng);本地管理表空間-僅STORAGE的INITIAL有效;11/7/202228日期存儲參數(shù)在9i/10g的變化塊控制參數(shù)設(shè)置:9i/10g本地管理表空間ASSM(AUTOALLOCATESEGMENTSPACEMANAGEMENTAUTO,Oracle根據(jù)dba_tables.avg_row_len來調(diào)整PCTUSED的大小。ASSM(AUTOALLOCATESEGMENTSPACEMANAGEMENTMANUAL,Oracle根據(jù)你的PCTUSED設(shè)置來調(diào)整PCTUSED的大小;SYSTEM表空間ASSM為MANUAL,USERS表空間ASSM為AUTO(見后面腳本);11/7/202229日期存儲參數(shù)在9i/10g的變化創(chuàng)建表結(jié)構(gòu)前:根據(jù)表數(shù)據(jù)變化特點(diǎn),創(chuàng)建相應(yīng)的表空間;表空間的對應(yīng)數(shù)據(jù)文件大小要合理;在創(chuàng)建表時指定到創(chuàng)建好的表空間上,并根據(jù)表空間是否是字典/本地來確定是否指定NEXT等參數(shù):Setlong9999SELECTdbms_metadata.get_ddl('TABLESPACE','SYSTEM')fromdual;CREATETABLESPACE"SYSTEM"DATAFILE'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA10\SYSTEM01.DBF'SIZE314572800AUTOEXTENDONNEXT10485760MAXSIZE32767MLOGGINGONLINEPERMANENTBLOCKSIZE8192EXTENTMANAGEMENTLOCAL

AUTOALLOCATESEGMENTSPACEMANAGEMENTMANUAL11/7/202230日期存儲參數(shù)在9i/10g的變化ASSM下創(chuàng)建表結(jié)構(gòu):觀察下面腳本運(yùn)行的結(jié)果:DROPTABLEcustomer;CREATETABLEcustomer(customerIDINTNOTNULLPRIMARYKEY,firstNameVARCHAR2(30)NOTNULL,lastNameVARCHAR2(30)NOTNULL,phoneVARCHAR2(20)NULL,address1VARCHAR2(30)NULL,address2VARCHAR2(30)NULL,cityVARCHAR2(30)NULL,stateCHAR(2)NULL,zipCHAR(10)NULL)PCTFREE5PCTUSED85TABLESPACESYSTEM

STORAGE(INITIAL4MNEXT1MPCTINCREASE0);--DROPTABLEproduct;CREATETABLEproduct(productIDINTNOTNULLPRIMARYKEY,productNameVARCHAR2(30)NOTNULL,productVendorVARCHAR2(50)NULL,costFLOATNOTNULLCONSTRAINTchk_costCHECK(cost>0),priceFLOATNOTNULLCONSTRAINTchk_priceCHECK(price>0))PCTFREE5PCTUSED85TABLESPACEUSERSSTORAGE(INITIAL4MNEXT2M);SQL>selecttablespace_name,table_name,initial_extent,next_extent,pct_free,pct_used2fromdba_tableswheretable_namein('PRODUCT','CUSTOMER')3/TABLESPACE_NAMTABLE_NAMEINITIAL_EXTENTNEXT_EXTENTPCT_FREEPCT_USED-----------------------------------------------------------------------------SYSTEMCUSTOMER4194304585USERSPRODUCT41943045----好好觀察上面的結(jié)果--11/7/202231日期存儲參數(shù)在9i/10g的變化LMT的extent_management_clause:AUTOALLOCATE(默認(rèn)值)區(qū)的大小由系統(tǒng)來管理(忽略NEXT等參數(shù));塊小于16K則分配64K;大于16K,則分配1M;然后再根據(jù)表增長情況分配區(qū),大小是64K,1M,8M…LMT為UNIFORM情況:UNIFORM規(guī)定每次擴(kuò)展都一樣的大??;UNIFORM默認(rèn)為5個Oracle塊;segment_management_clause:SEGMENTSPACEMANAGEMENTMANUAL/AUTO;如果SSM=AUTO,則Oracle忽略對像的PCTUSED,FREELIST和FREELISTGROUPS參數(shù)(見前面樣例);11/7/202232日期存儲參數(shù)在9i/10g的變化LMT為UNIFORM情況:創(chuàng)建的對象的EXTENT都統(tǒng)一用此尺寸去劃分大小;為表指定NEXT,PCTINCREASE時,這些參數(shù)只在創(chuàng)建時有效,之后的擴(kuò)展無效;11/7/202233日期存儲參數(shù)在9i/10g的變化LMT指定UNIFORM例子:1.創(chuàng)建一表空間,UNIFORMSIZE為3M:2.在上面表空間上創(chuàng)建一個表:CREATETABLESPACEASSMDATAFILE'D:\oracle\oradata\encore\ASSM01.DBF'SIZE50MAUTOEXTENDOFFEXTENTMANAGEMENTLOCALUNIFORMSIZE3M

SEGMENTSPACEMANAGEMENTAUTO;CREATETABLEASSMTAB(COL1NUMBER(3))STORAGE(INITIAL2MNEXT5MMINEXTENTS3PCTINCREASE100)TABLESPACEASSM;11/7/202234日期存儲參數(shù)在9i/10g的變化LMT指定UNIFORM例子:3.查看該表的擴(kuò)展信息:根據(jù)INITIAL2MNEXT5MMINEXTENTS3PCTINCREASE100,系統(tǒng)分配方法為:INITIAL_EXTENT=(2)+(5)+(5+(5*100%))=17MNext、pctincrease參數(shù)創(chuàng)建時是有效的,但以后ORACLE使用統(tǒng)一的尺寸(3M)來為表分配EXTENT;由于UNIFORMSIZE=3M,所以必須6個EXTENT(5次只有5x3=15M)SELECTSEGMENT_TYPE,TABLESPACE_NAME,EXTENT_ID,BYTES,BLOCKSFROMUSER_EXTENTSWHERESEGMENT_NAME='ASSMTAB';SEGMENT_TYPETABLESPACE_NAMEEXTENT_IDBYTESBLOCKS------------------------------------------------------------------------------TABLEASSM03145728384TABLEASSABLEASSM23145728384TABLEASSM33145728384TABLEASSM43145728384TABLEASSM53145728384SQL>selecttable_name,INITIAL_EXTENT,NEXT_EXTENT,PCT_INCREASEfromuser_tableswheretable_name='ASSMTAB';TABLE_NAMEINITIAL_EXTENTNEXT_EXTENTPCT_INCREASE------------------------------------------------ASSMTAB3178257923145728011/7/202235日期表數(shù)據(jù)存儲量大小估計(jì)-方法1 從DDL中了解數(shù)據(jù)與行大小,如:Tableemp(namevarchar2(30), salarynumber(8,2), join_datedate);Step1:每行大小->20B+6B+7B=43BStep2:估計(jì)總行數(shù)->10000(rows)Step3:表的小->43(B)*10000(rows)=0.5MBStep4:每年增長率->43*2000(rows)=100KB

一般習(xí)慣:總是保守的多11/7/202236日期表數(shù)據(jù)存儲量大小估計(jì)-方法2從存在的數(shù)據(jù)得到平均行大小Step1:Initial40,Next50,Extents4,PctIncrease50Step2:Size:(90+50*1.5+50*1.5*1.5)=287.5Step3:MaxExtents(高版本)不要設(shè)置低的值:S=項(xiàng)目總數(shù)=[NEXT(RN-1)/(R-1)]這里R=(100+PctIncrease)/100;N=(MAXEXTENTS-1)=>

總大小=(S+INITIAL)一般習(xí)慣:要合理設(shè)置pctincrease是關(guān)鍵!11/7/202237日期表數(shù)據(jù)存儲量大小估計(jì)-方法3從存在的表中分析以得到統(tǒng)計(jì)信息:Step1:ANALYZETABLEEMPESTIMATE[COMPUTE]STATISTICS;Step2:SELECT(NUM_ROWS*AVG_ROW_LEN)FROMUSER_TABLESWHERETABLE_NAME=‘EMP’;11/7/202238日期表數(shù)據(jù)存儲量大小估計(jì)-檢查表增長檢查段的擴(kuò)展次數(shù)是否接近MAXEXTENTSSelectsubstr(owner||‘.’||segment_name,1,25)“object”, MaxextentsFromsys.Dba_extentsWheremaxextents-extents<=5Orderbyextents;11/7/202239日期內(nèi)容提要Oracle塊結(jié)構(gòu)與段對象創(chuàng)建表結(jié)構(gòu)準(zhǔn)備創(chuàng)建表結(jié)構(gòu)語法與參數(shù)解釋創(chuàng)建帶有存儲控制的樣例表9i/10g存儲參數(shù)與塊參數(shù)的變化表的修改及其它處理參考資料11/7/202240日期修改表結(jié)構(gòu)-AlterTable表結(jié)構(gòu)Altertable語句:下面是TABLETABLE簡單語法:ALTERTABLE[user.]table[ADD({colum_element|table_constraint}[,{column_element|table_constraint}]...)][MODIFY(column_element[,column_element]...)][DROPCONSTRAINTconstraint]...[PCTFREEinteger][PCTUSEDinteger][INITRANSinteger][MAXTRANSinteger][STORAGEstorage][BACKUP]11/7/202241日期修改表結(jié)構(gòu)-AlterTable表結(jié)構(gòu)的修改問題:不要經(jīng)常修改表結(jié)構(gòu);修改表結(jié)構(gòu)帶來許多問題-性能、一致性等;修改表結(jié)構(gòu)要分析對其它表的影響。目前可修改:增加列(字段)寬度或增加新列;減少列(字段)寬度(該列必須無數(shù)據(jù));增加一個約束或去掉約束;修改存儲分配;記錄表已作過BACKUP;刪除已存在的列;重新定位和組織表;將表標(biāo)識為不可用。11/7/202242日期修改表結(jié)構(gòu)刪除表結(jié)構(gòu)的某個列:刪除某個列的語法:ALTERTABLE...DROPCOLUMN[CASCADECONSTRAINTS];

刪除某個列的例子:刪除列后不能恢復(fù):SQL>ALTERTABLEempDROPCOLUMNcomm;表已更改。11/7/202243日期修改表結(jié)構(gòu)標(biāo)識表結(jié)構(gòu)的某個列不可用:標(biāo)識某個列不可用的語法:ALTERTABLE...SETUNUSEDCOLUMN標(biāo)識某個列不可用及刪除的例子:標(biāo)識某個列不用后就不能再恢復(fù)為可用:SQL>Altertableemp2setUNUSEDCOLUMNcomm;表已更改。SQL>ALTERTABLEemp2DROPUNUSEDCOLUMNSCHECKPOINT20;

表已更改。

SQL>11/7/202244日期刪除表結(jié)構(gòu)刪除表結(jié)構(gòu):就是從Oracle系統(tǒng)中刪除該表的數(shù)據(jù)與結(jié)構(gòu);語法:刪除表結(jié)構(gòu)將影響:指向本表的外部鍵;表中的索引;本表的觸發(fā)器;本表中的分區(qū);本表的快照;本表的角色和用戶權(quán)限;加在本表的所有限制。DROPTABLE[user.]table_name[CASCADECONSTRAINTS]11/7/202245日期刪除表結(jié)構(gòu)刪除表結(jié)構(gòu)注意:刪除某個表前要查詢該是否其它表存在關(guān)系;不要輕易帶CASCADE子句:刪除表結(jié)構(gòu)建議做:查詢某個表的子表:DROPTABLEDEPTCASCADECONSTRAINTS;表已刪除./*找出模式下的某個表的子表*/SELECTtable_name“childtables”FROMuser_constraintsWHEREr_constraint_nameIN(SELECTconstraint_nameFROMuser_constraints

WHEREtable_name=UPPER(‘&parent_table’)ANDconstraint_type=’P’);11/7/202246日期釋放不用的空間記錄有最高水位“Highwatermark”可釋放不使用的擴(kuò)展FreespaceafterdeleteUnusedblockHighwatermarkBefore

deallocationUsedblockALTERTABLEemployeesDEALLOCATEUNUSED;After

deallocation11/7/202247日期10g段收縮-表的存儲空間收縮11/7/202248日期10g段收縮-表的存儲空間收縮Oracle9i提供:刪除表,再重建,重加載數(shù)據(jù)ALTERT

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論