版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
OracleRDBMS
存儲(chǔ)與表設(shè)計(jì)趙元杰2007年8月1/18/20231內(nèi)容提要Oracle表空間與塊結(jié)構(gòu)與段對(duì)象創(chuàng)建表結(jié)構(gòu)準(zhǔn)備創(chuàng)建表結(jié)構(gòu)語法與參數(shù)解釋創(chuàng)建帶有存儲(chǔ)控制的樣例表9i/10g存儲(chǔ)參數(shù)與塊參數(shù)的變化表數(shù)據(jù)存儲(chǔ)量大小估計(jì)表的修改及其它處理參考資料1/18/20232Oracle數(shù)據(jù)庫(kù)-表空間-對(duì)象TablespaceTables,indexes,etc.DatafilesSegmentExtentBlocks1/18/20233Oracle表空間(Tablespaces)表空間類型System/NonsystemOnline/OfflineRead-Write/Read-OnlyTransportable表空間種類永久表空間(存儲(chǔ)表、索引)臨時(shí)表空間(存儲(chǔ)排序數(shù)據(jù))撤消表空間(存儲(chǔ)DML數(shù)據(jù))1/18/20234表空間(tablespace)與表(Tables)表存儲(chǔ)在表空間(Tablespaces)表由行與列構(gòu)成表包含數(shù)據(jù)(表占很多塊空間,稱“段”)TablespaceTables,indexes,etc.DatafilesSegmentExtentBlocks1/18/20235Oracle表空間與數(shù)據(jù)文件表空間(Tablespace):表空間由多個(gè)數(shù)據(jù)文件組成,如SYSTEM表空間由system01.dbf構(gòu)成;表的數(shù)據(jù)存儲(chǔ)表空間對(duì)應(yīng)的數(shù)據(jù)文件里;表和索引等可分別存儲(chǔ)在不同的表空間;數(shù)據(jù)文件結(jié)構(gòu):數(shù)據(jù)文件由多個(gè)Oracle塊組成;F1.oraF2.oraF3.oraF4.oraF5.oraTablespace1Tablespace2Table1Table2Table3CREATETABLESPACEuser_dataDATAFILE‘udata.ora’SIZE10MEXTENTMANAGEMENTLOCAL…CREATETABLEmy_emp(namevarchar2(20),…TABLEASPACEuser_datapctfree5;1/18/20236Oracle塊結(jié)構(gòu)與段對(duì)象數(shù)據(jù)文件都是塊構(gòu)成;內(nèi)存分配也是以塊為單位;I/O也以塊為單位;塊大小在安裝時(shí)選擇(基本塊大?。?;不同的Oracle版本允許塊大小不一樣;目前塊大小可以2k~32K;Oracle9i/10g/11g在表空間中塊大小可變;塊大小要根據(jù)OS決定;Oracle塊太大是OS塊大小的倍數(shù)(2的冪次方);Oracle塊大小影響到性能;1/18/20237Oracle塊結(jié)構(gòu)與段對(duì)象-塊內(nèi)部結(jié)構(gòu)Oracle數(shù)據(jù)段(Datasegment)存放在塊里比我們想象要復(fù)雜的多:1/18/20238表空間對(duì)應(yīng)一個(gè)或多個(gè)數(shù)據(jù)文件;數(shù)據(jù)文件由多個(gè)Oracle塊構(gòu)成;Oracle塊可存儲(chǔ)下面的段:數(shù)據(jù)段(Datasegment)-tables,triggers等索引段(Indexsegment)-indexes臨時(shí)段(Temporarysegment):-排序和臨時(shí)表回滾段(Rollbacksegment)-undodata信息LOB段(LOBsegment)-與表的基本數(shù)據(jù)存儲(chǔ)或分開的LOB數(shù)據(jù)Oracle塊結(jié)構(gòu)與段對(duì)象1/18/20239內(nèi)容提要Oracle表空間與塊結(jié)構(gòu)與段對(duì)象創(chuàng)建表結(jié)構(gòu)準(zhǔn)備創(chuàng)建表結(jié)構(gòu)語法與參數(shù)解釋創(chuàng)建帶有存儲(chǔ)控制的樣例表存儲(chǔ)參數(shù)在9i/10g的變化表數(shù)據(jù)存儲(chǔ)量大小估計(jì)表的修改及其它處理參考資料1/18/202310創(chuàng)建表結(jié)構(gòu)構(gòu)準(zhǔn)備對(duì)象命名::名字1~30個(gè)字符符號(hào);名字只能是是a~z、、A~Z,,也可在在字符后加加0~9;;名字可加$、#、_;不許帶帶空字符;;最好不能為為保留字((可從v$reserved_words中查)與保留字相相同,可用用雙引號(hào);;列名的統(tǒng)一一問題:同一種含義義的列命名名與類型在在應(yīng)用系統(tǒng)統(tǒng)中統(tǒng)一;;命名不要采采用拼音或或拼音縮寫寫-重復(fù)率率高、不好好猜;命名采用英英語或英語語縮寫;列名太長(zhǎng)不不好;類型能采用用字符就不不要采用數(shù)數(shù)字類型。1/1/202311創(chuàng)建表結(jié)構(gòu)準(zhǔn)準(zhǔn)備數(shù)據(jù)類型使用VARCHAR2(size)變長(zhǎng)-1~4000字符CHAR(size)定長(zhǎng)–1~2000字符NUMBER(p)整數(shù)NUMBER(p,s)定點(diǎn)數(shù)十進(jìn)制NUMBER浮點(diǎn)數(shù)十進(jìn)制DATE日期類型LONG變長(zhǎng)大對(duì)象(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ù)類類型:1/1/202312創(chuàng)建表結(jié)構(gòu)準(zhǔn)準(zhǔn)備Oracle10g一一般的數(shù)據(jù)據(jù)類型:數(shù)據(jù)類型說明Char(size)定長(zhǎng)字符類型,size<=2000字符Varchar(size)可變字符類型,size<=4000個(gè)字符Varchar2(size)可變字符類型,size<=4000個(gè)字符(Oracle建議用)Nchar(size)定長(zhǎng)本地語言字符類型,size<=2000字符Nvarchar(size)可變本地語言字符類型,size<=4000個(gè)字符Nvarchar(size)可變本地語言字符類型,size<=4000個(gè)字符1/1/202313創(chuàng)建表結(jié)構(gòu)準(zhǔn)準(zhǔn)備Oracle10g一一般的數(shù)據(jù)據(jù)類型:數(shù)據(jù)類型說明date定長(zhǎng)的日期類型,占7字節(jié);可包含年月日時(shí)分秒timestape時(shí)間郵戳類型,包含可包含年月日時(shí)分秒;但是秒數(shù)的精度為1/100秒Intervalyear以年月存儲(chǔ)的時(shí)間區(qū)的值,可以是0~9,(默認(rèn)為2)Intervalday以天、小時(shí)、分、秒存儲(chǔ)的時(shí)間值,可以是0~9,默認(rèn)為2Number(p,s)數(shù)字類型,可存儲(chǔ)等任何類型BINARY_FLOAT32Bit的單精度數(shù)據(jù)類型(僅10g/11g)BINARY_DOUBLE64Bit的單精度數(shù)據(jù)類型(僅10g/11g)1/1/202314創(chuàng)建表結(jié)構(gòu)準(zhǔn)準(zhǔn)備Oracle10g一一般的數(shù)據(jù)據(jù)類型:數(shù)據(jù)類型說明long可變字符類型,可存儲(chǔ)<=2GB;Longraw可變二進(jìn)制類型,可存儲(chǔ)<=2GB;raw可變二進(jìn)制類型,可存儲(chǔ)<=4000;BLOB二進(jìn)制大對(duì)象,可存儲(chǔ)圖像等類型數(shù)據(jù);每數(shù)據(jù)行可存儲(chǔ)<=8~128TBCLOB字符大對(duì)象,可存儲(chǔ)任何大文本類型數(shù)據(jù);每數(shù)據(jù)行可存儲(chǔ)<=8~128TBNCLOB本地語言字符大對(duì)象,類似CLOB類型;BFILE包含指向OS路徑的大對(duì)象定位器1/1/202315創(chuàng)建表結(jié)構(gòu)準(zhǔn)準(zhǔn)備10g新BINARY_FLOAT數(shù)據(jù)類型:32Bit的單精度度數(shù)據(jù)類型BINARY_FLOAT;BINARY_FLOAT以5個(gè)字節(jié)存儲(chǔ)儲(chǔ),含一個(gè)長(zhǎng)長(zhǎng)度字節(jié);10gBINARY_DOUBLE:64Bit的雙精度度數(shù)據(jù)類型BINARY_DOUBLE;BINARY_DOUBLE以9個(gè)字節(jié)存儲(chǔ)儲(chǔ),含一個(gè)長(zhǎng)長(zhǎng)度字節(jié);BINARY-FLOATBINARY-DOUBLEMAXIMUMFINITEVALUE3.40282+38F1.79769313486231E+30810g1/1/202316Oracle對(duì)對(duì)象象創(chuàng)創(chuàng)建建準(zhǔn)準(zhǔn)備備-數(shù)數(shù)據(jù)據(jù)類類型型數(shù)據(jù)據(jù)類類型型選選擇擇要要點(diǎn)點(diǎn)::不要要使使用用long或或longraw類類型型;;一般般不不要要NCHAR等等類類型型;;Number(p,s)類類型型要要滿滿足足應(yīng)應(yīng)用用系系統(tǒng)統(tǒng)發(fā)發(fā)展展需需要要;;Number(p,s)類類型型在在整整個(gè)個(gè)應(yīng)應(yīng)用用系系統(tǒng)統(tǒng)中中要要保保持持一一致致性性?。。?!應(yīng)用用系系統(tǒng)統(tǒng)設(shè)設(shè)計(jì)計(jì)與與數(shù)數(shù)據(jù)據(jù)倉(cāng)倉(cāng)庫(kù)庫(kù)考考慮慮::列名名與與類類型型一一致致性性問問題題;;將來來的的數(shù)數(shù)據(jù)據(jù)整整合合問問題題;;統(tǒng)一一使使用用Number(p,s)類類型型;;數(shù)字字類類型型整整數(shù)數(shù)與與精精度度要要一一致致。。1/1/202317內(nèi)容容提提要要Oracle表表空空間間與與塊塊結(jié)結(jié)構(gòu)構(gòu)與與段段對(duì)對(duì)象象Oracle塊塊結(jié)結(jié)構(gòu)構(gòu)與與段段對(duì)對(duì)象象創(chuàng)建建表表結(jié)結(jié)構(gòu)構(gòu)準(zhǔn)準(zhǔn)備備創(chuàng)建建表表結(jié)結(jié)構(gòu)構(gòu)語語法法與與參參數(shù)數(shù)解解釋釋創(chuàng)建建帶帶有有存存儲(chǔ)儲(chǔ)控控制制的的樣樣例例表表9i/10g存存儲(chǔ)儲(chǔ)參參數(shù)數(shù)與與塊塊參參數(shù)數(shù)的的變變化化表的的修修改改及及其其它它處處理理參考考資資料料1/1/202318創(chuàng)建表表結(jié)構(gòu)構(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]1/1/202319創(chuàng)建表結(jié)構(gòu)構(gòu)語法-子子句解釋子句說明Table_name表名,字母數(shù)字<=30個(gè)schema模式名,默認(rèn)為用戶名datatype列數(shù)據(jù)類型Column_constraint列約束Table_constraint
integer最大分配次數(shù)1/1/202320創(chuàng)建表結(jié)結(jié)構(gòu)語法法-子句句解釋Storage子句說明INITIALinteger初始大小NEXTinteger下次擴(kuò)展大??;在9i/10g創(chuàng)建本地表空間,NEXT由系統(tǒng)自動(dòng)分配MINEXTENTSinteger最小分配次數(shù),最小默認(rèn)是2MAXEXTENTSinteger最大分配次數(shù)PCTINCREASEinteger增長(zhǎng)百分比(>=0),默認(rèn)50UNLIMITEDMINEXTENTS參數(shù),用于限制空間的增長(zhǎng)1/1/202321創(chuàng)建表結(jié)結(jié)構(gòu)語法法-子句句解釋子句說明DEFAULT當(dāng)前列的默認(rèn)值(常數(shù))INITRANS數(shù)據(jù)塊中用于更新(UPDATE)的空間百分比(1-99),0表示在插入時(shí)完全填滿數(shù)據(jù)塊,默認(rèn)為10MAXTRANS每個(gè)數(shù)據(jù)塊分配的事務(wù)如口數(shù)(1-255),默認(rèn)1PCTFREE數(shù)據(jù)塊的用于更新的百分比(1-99),0表示在插入是填滿整個(gè)數(shù)據(jù)庫(kù)塊PCTUSED數(shù)據(jù)塊保留的可用空間的最小百分比。取值1-99,默認(rèn)為40。實(shí)際上PCTUSED是控制自由空間的可用性。1/1/202322創(chuàng)建表結(jié)結(jié)構(gòu)語法法-塊變變化建議采用用命令方方式:認(rèn)真研究究Oracle的CREATETABLE子句句;關(guān)鍵的項(xiàng)項(xiàng)不要采采用默認(rèn)認(rèn)值,語語法如下下:1/1/202323內(nèi)容提要Oracle塊結(jié)構(gòu)與與段對(duì)象創(chuàng)建表結(jié)構(gòu)準(zhǔn)準(zhǔn)備創(chuàng)建表結(jié)構(gòu)語語法與參數(shù)解解釋創(chuàng)建帶有存儲(chǔ)儲(chǔ)控制的樣例例表9i/10g存儲(chǔ)參數(shù)與與塊參數(shù)的變變化表的修改及其其它處理參考資料1/1/202324創(chuàng)建表結(jié)構(gòu)樣樣例1-塊控控制參數(shù)createtableuser_dflow(user_namevarchar2(30),/*用戶戶名*/bj_datedate,/*日期及及時(shí)間*/...day_fee_innumber(16,6),/*日入流流量費(fèi)用*/day_fee_outnumber(16,6)/*日出流流量費(fèi)用*/)TABLESPACEusersPCTFREE5PCTUSED80/創(chuàng)建網(wǎng)網(wǎng)絡(luò)計(jì)計(jì)費(fèi)數(shù)據(jù)流流量明明細(xì)表表user_dflow::根據(jù)上上網(wǎng)記記錄的的信息息很少修修改特點(diǎn),,設(shè)置置PCTFREE為為5;而而希望望盡快快釋放放刪除除的塊塊空間間而將將PCTUSED設(shè)設(shè)85;;該表一一開始始先分分配100MB,用用完再再分配配50MB;1/1/202325創(chuàng)建建表表結(jié)結(jié)構(gòu)構(gòu)樣樣例例2-存存儲(chǔ)儲(chǔ)分分配配參參數(shù)數(shù)createtableuser_dflow(user_namevarchar2(30),/*用用戶戶名名*/bj_datedate,/*日日期期及及時(shí)時(shí)間間*/...day_fee_innumber(16,6),/*日日入入流流量量費(fèi)費(fèi)用用*/day_fee_outnumber(16,6)/*日日出出流流量量費(fèi)費(fèi)用用*/)TABLESPACEusersPCTFREE5PCTUSED80STORAGE(INITIAL120MNEXT60MMINEXTENTS1PCTINCREASE0MAXEXTENTS9999)創(chuàng)建建網(wǎng)網(wǎng)絡(luò)絡(luò)計(jì)計(jì)費(fèi)費(fèi)數(shù)據(jù)據(jù)流流量量明明細(xì)細(xì)表表user_dflow::對(duì)user_dflow表表的的年年數(shù)數(shù)據(jù)據(jù)量量進(jìn)進(jìn)行行估估計(jì)計(jì)::假假設(shè)設(shè)年年數(shù)數(shù)據(jù)據(jù)量量100MB,,則則可可分分配配120MB;;當(dāng)分分配配120MB用用完完后后,,由由再再分分配配60MB,……1/1/202326內(nèi)容容提提要要Oracle塊塊結(jié)結(jié)構(gòu)構(gòu)與與段段對(duì)對(duì)象象創(chuàng)建建表表結(jié)結(jié)構(gòu)構(gòu)準(zhǔn)準(zhǔn)備備創(chuàng)建建表表結(jié)結(jié)構(gòu)構(gòu)語語法法與與參參數(shù)數(shù)解解釋釋創(chuàng)建建帶帶有有存存儲(chǔ)儲(chǔ)控控制制的的樣樣例例表表9i/10g存存儲(chǔ)儲(chǔ)參參數(shù)數(shù)與與塊塊參參數(shù)數(shù)的的變變化化表的的修修改改及及其其它它處處理理參考考資資料料1/1/202327存儲(chǔ)參數(shù)數(shù)在9i/10g的變變化為什么9i/10g取取消段的的空間擴(kuò)擴(kuò)展設(shè)置置:表數(shù)據(jù)的的增長(zhǎng)與與空間的的不斷減減少是矛矛盾的關(guān)關(guān)鍵;NEXT表示示必須分分配一組組連序的的Oracle塊;如果表空空間無NEXT所要求求的連續(xù)續(xù)塊,則則分配失失敗;9i/10g為為表擴(kuò)擴(kuò)展空間間時(shí)不參參考NEXT,,而是根根據(jù)表的的增長(zhǎng)與與實(shí)際表表空間剩剩余的空空間來確確定。存儲(chǔ)參數(shù)數(shù)設(shè)置::字典類型型表空間間-可設(shè)設(shè)置STORAGE的的所有項(xiàng)項(xiàng);本地管理理表空間間-僅STORAGE的INITIAL有有效;1/1/202328存儲(chǔ)參參數(shù)在在9i/10g的變變化塊控制制參數(shù)數(shù)設(shè)置置:9i/10g本地管管理表表空間間ASSM(AUTOALLOCATESEGMENTSPACEMANAGEMENTAUTO,Oracle根據(jù)據(jù)dba_tables.avg_row_len來調(diào)調(diào)整PCTUSED的大大小。。ASSM(AUTOALLOCATESEGMENTSPACEMANAGEMENTMANUAL,Oracle根據(jù)據(jù)你的的PCTUSED設(shè)設(shè)置來來調(diào)整整PCTUSED的的大小小;SYSTEM表表空間間ASSM為MANUAL,,USERS表表空間間ASSM為AUTO(見后后面腳腳本);1/1/202329存儲(chǔ)參參數(shù)在在9i/10g的變變化創(chuàng)建表表結(jié)構(gòu)構(gòu)前::根據(jù)表表數(shù)據(jù)據(jù)變化化特點(diǎn)點(diǎn),創(chuàng)創(chuàng)建相相應(yīng)的的表空空間;;表空間間的對(duì)對(duì)應(yīng)數(shù)數(shù)據(jù)文文件大大小要要合理理;在創(chuàng)建建表時(shí)時(shí)指定定到創(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'SIZE314572800AUTOEXTENDONNEXT10485760MAXSIZE32767MLOGGINGONLINEPERMANENTBLOCKSIZE8192EXTENTMANAGEMENTLOCALAUTOALLOCATESEGMENTSPACEMANAGEMENTMANUAL1/1/202330存儲(chǔ)參數(shù)在在9i/10g的變變化ASSM下下創(chuàng)建表結(jié)結(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)PCTFREE5PCTUSED85TABLESPACESYSTEMSTORAGE(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é)果--1/1/202331存儲(chǔ)參數(shù)在9i/10g的變化LMT的extent_management_clause:AUTOALLOCATE(默認(rèn)值值)區(qū)的大小小由系統(tǒng)來管管理(忽略NEXT等參參數(shù));塊小于16K則分配64K;大于16K,則分分配1M;然后再根據(jù)表表增長(zhǎng)情況分分配區(qū),大小小是64K,1M,8M…LMT為UNIFORM情況:UNIFORM規(guī)定每次次擴(kuò)展都一樣樣的大?。籙NIFORM默認(rèn)為5個(gè)Oracle塊;;segment_management_clause::SEGMENTSPACEMANAGEMENTMANUAL/AUTO;如果SSM=AUTO,,則Oracle忽略對(duì)對(duì)像的PCTUSED,FREELIST和和FREELISTGROUPS參數(shù)(見前面樣例);1/1/202332存儲(chǔ)參參數(shù)在在9i/10g的變變化LMT為UNIFORM情況況:創(chuàng)建的的對(duì)象象的EXTENT都都統(tǒng)一一用此此尺寸寸去劃劃分大大??;;為表指指定NEXT,,PCTINCREASE時(shí)時(shí),,這些些參數(shù)數(shù)只在在創(chuàng)建建時(shí)有有效,,之后后的擴(kuò)擴(kuò)展無無效;;1/1/202333存儲(chǔ)參參數(shù)在在9i/10g的變變化LMT指定定UNIFORM例例子子:1.創(chuàng)創(chuàng)建一一表空空間,,UNIFORMSIZE為為3M::2.在在上面面表空空間上上創(chuàng)建建一個(gè)個(gè)表::CREATETABLESPACEASSMDATAFILE'D:\oracle\oradata\encore\ASSM01.DBF'SIZE50MAUTOEXTENDOFFEXTENTMANAGEMENTLOCALUNIFORMSIZE3MSEGMENTSPACEMANAGEMENTAUTO;CREATETABLEASSMTAB(COL1NUMBER(3))STORAGE(INITIAL2MNEXT5MMINEXTENTS3PCTINCREASE100)TABLESPACEASSM;1/1/202334存儲(chǔ)參數(shù)數(shù)在9i/10g的變變化LMT指指定UNIFORM例例子::3.查看看該表的的擴(kuò)展信信息:根據(jù)INITIAL2MNEXT5MMINEXTENTS3PCTINCREASE100,系系統(tǒng)分配配方法為為:INITIAL_EXTENT=(2)+(5)+(5+(5*100%))=17MNext、pctincrease參數(shù)創(chuàng)創(chuàng)建時(shí)是是有效的的,但以以后ORACLE使用用統(tǒng)一的的尺寸((3M))來為表表分配EXTENT;;由于UNIFORMSIZE=3M,所所以必須須6個(gè)個(gè)EXTENT(5次只只有5x3=15M)SELECTSEGMENT_TYPE,TABLESPACE_NAME,EXTENT_ID,BYTES,BLOCKSFROMUSER_EXTENTSWHERESEGMENT_NAME='ASSMTAB';SEGMENT_TYPETABLESPACE_NAMEEXTENT_IDBYTESBLOCKS------------------------------------------------------------------------------TABLEASSM03145728384TABLEASSM23145728384TABLEASSM33145728384TABLEASSM43145728384TABLEASSM53145728384SQL>selecttable_name,INITIAL_EXTENT,NEXT_EXTENT,PCT_INCREASEfromuser_tableswheretable_name='ASSMTAB';TABLE_NAMEINITIAL_EXTENTNEXT------------------------------------------------ASSMTAB317825792314572801/1/202335表數(shù)據(jù)存存儲(chǔ)量大大小估計(jì)計(jì)-方法法1從DDL中了解解數(shù)據(jù)與與行大小小,如::Tableemp(namevarchar2(30),salarynumber(8,2),join_datedate);Step1:每行行大小->20B+6B+7B=43BStep2:估計(jì)計(jì)總行數(shù)數(shù)->10000(rows)Step3:表的的小->43(B)*10000(rows)=0.5MBStep4:每年年增長(zhǎng)率率->43*2000(rows)=100KB一般習(xí)慣:總是保守守的多1/1/202336表數(shù)據(jù)存儲(chǔ)量量大小估計(jì)-方法2從存在的數(shù)據(jù)據(jù)得到平均行行大小Step1:Initial40,Next50,Extents4,PctIncrease50Step2:Size:(90+50*1.5+50*1.5*1.5)=287.5Step3:MaxExtents(高版本本)不要設(shè)設(shè)置低的值::S=項(xiàng)目目總數(shù)=[NEXT(RN-1)/(R-1)]這里R=(100+PctIncrease)/100;N=(MAXEXTENTS-1)=>總大小=(S+INITIAL)一般習(xí)慣:要合理設(shè)設(shè)置pctincrease是關(guān)鍵鍵!1/1/202337表數(shù)據(jù)據(jù)存儲(chǔ)儲(chǔ)量大大小估估計(jì)-方法法3從存在在的表表中分分析以以得到到統(tǒng)計(jì)計(jì)信息息:Step1:ANALYZETABLEEMPESTIMATE[COMPUTE]STATISTICS;Step2:SELECT(NUM_ROWS*AVG_ROW_LEN)FROMUSER_TABLESWHERETABLE_NAME=‘‘EMP’;1/1/202338表數(shù)數(shù)據(jù)據(jù)存存儲(chǔ)儲(chǔ)量量大大小小估估計(jì)計(jì)-檢檢查查表表增增長(zhǎng)長(zhǎng)檢查查段段的的擴(kuò)擴(kuò)展展次次數(shù)數(shù)是是否否接接近近MAXEXTENTSSelectsubstr(owner||‘‘.’’||segment_name,1,25)““object””,MaxextentsFromsys.Dba_extentsWheremaxextents-extents<=5Orderbyextents;1/1/202339內(nèi)容提要要Oracle塊塊結(jié)構(gòu)構(gòu)與段對(duì)對(duì)象創(chuàng)建表結(jié)結(jié)構(gòu)準(zhǔn)備備創(chuàng)建表結(jié)結(jié)構(gòu)語法法與參數(shù)數(shù)解釋創(chuàng)建帶有有存儲(chǔ)控控制的樣樣例表9i/10g存存儲(chǔ)參數(shù)數(shù)與塊參參數(shù)的變變化表的修改改及其它它處理參考資料料1/1/202340修改表結(jié)結(jié)構(gòu)-AlterTable表結(jié)構(gòu)Altertable語句句:下面是TABLETABLE簡(jiǎn)簡(jiǎn)單語法法:ALTERTABLE[user.]table[ADD({colum_element|table_constraint}[,{column_element|table_constraint}]...)][MODIFY(column_element[,column_element]...)][DROPCONSTRAINTconstraint]...[PCTFREEinteger][PCTUSEDinteger][INITRANSinteger][MAXTRANSinteger][STORAGEstorage][BACKUP]1/1/202341修改表結(jié)構(gòu)-AlterTable表結(jié)構(gòu)的修改改問題:不要經(jīng)常修改改表結(jié)構(gòu);修改表結(jié)構(gòu)帶帶來許多問題題-性能、一一致性等;修改表結(jié)構(gòu)要要分析對(duì)其它它表的影響。。目前可修改::增加列(字段段)寬度或增增加新列;減少列(字段段)寬度(該該列必須無數(shù)數(shù)據(jù));增加一個(gè)約束束或去掉約束束;修改存儲(chǔ)分配配;記錄表已作過過BACKUP;刪除已存在的的列;重新定位和組組織表;將表標(biāo)識(shí)為不不可用。1/1/202342修改表結(jié)構(gòu)刪除表結(jié)構(gòu)構(gòu)的某個(gè)列列:刪除某個(gè)列列的語法::ALTERTABLE...DROPCOLUMN[CASCADECONSTRAINTS];刪除某個(gè)列列的例子::刪除列后不不能恢復(fù)::SQL>ALTERTABLEempDROPCOLUMNcomm;表已更改。。1/1/202343修改表結(jié)構(gòu)構(gòu)標(biāo)識(shí)表結(jié)構(gòu)構(gòu)的某個(gè)列列不可用::標(biāo)識(shí)某個(gè)列列不可用的的語法:ALTERTABLE...SETUNUSEDCOLUMN標(biāo)識(shí)某個(gè)列列不可用及及刪除的例例子:標(biāo)識(shí)某個(gè)列列不用后就就不能再恢恢復(fù)為可用用:SQL>Altertableemp2setUNUSEDCOLUMNcomm;表已已更更改改。。SQL>ALTERTABLEemp2DROPUNUSEDCOLUMNSCHECKPOINT20;表已已更更改改。。SQL>1/1/202344刪除表表結(jié)構(gòu)構(gòu)刪除表結(jié)構(gòu)構(gòu):就是從Oracle系統(tǒng)中刪刪除該表的的數(shù)據(jù)與結(jié)結(jié)構(gòu);語法:刪除表結(jié)構(gòu)構(gòu)將影響::指向本表的的外部鍵;;表中的索引引;本表的觸發(fā)發(fā)器;本表中的分分區(qū);本表的快照照;本表的角色色和用戶權(quán)權(quán)限;加在本表的的所有限制制。DROPTABLE[user.]table_name[CASCADECONSTRAINTS]1/1/202345刪除表結(jié)構(gòu)構(gòu)刪除表結(jié)構(gòu)構(gòu)注意:刪除某個(gè)表表前要查詢?cè)冊(cè)撌欠衿淦渌泶嬖谠陉P(guān)系;不要輕易帶帶CASCADE子子句:刪除表結(jié)結(jié)構(gòu)建議議做:查詢某個(gè)個(gè)表的子子表:DROPTABLEDEPTCASCADECONSTRAINTS;表已刪除除./*找出模式式下的某某個(gè)表的的子表*/SELECTtable_name““childtables””FROMuser_constraintsWHEREr_constraint_nameIN(SELECTconstraint_nameFROMuser_constraintsWHEREtable_name=UPPER(‘&parent_table’)ANDconstraint_type=’P’);1/1/202346釋放不用用的空間間記錄有最最高水位位“Highwatermark””可釋放不不使用的的擴(kuò)展FreespaceafterdeleteUnusedblockHighwatermarkBeforedeallocationUsedblockALTERTABLEemployeesDEALLOCATEUNUSED;Afterdeallocation1/1/20234710g段段收縮-表的存存儲(chǔ)空間間收縮1/1/20234810g段收縮縮-表的存儲(chǔ)儲(chǔ)空間收縮Oracle9i提提供:刪除表,再重重建,重加載載數(shù)據(jù)ALTERTABLE…MOVE命令但是Oracle9i:表必須是Offline聯(lián)機(jī)只能重組組ALTERTABLEe
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023年麗江市國(guó)企招聘考試基礎(chǔ)題庫(kù)
- 吉林省-《生物化學(xué)》電子教案-細(xì)胞信號(hào)轉(zhuǎn)導(dǎo)(人衛(wèi)版)
- 寒假安全教育一封信
- 二零二五年度高速公路服務(wù)區(qū)臨時(shí)車位租賃協(xié)議3篇
- 廣告制作常用材料教學(xué)文案
- 老年公寓入住長(zhǎng)者健康狀況評(píng)估表-養(yǎng)老院入住老年人健康狀況評(píng)估表-健康評(píng)估表格
- 2024年阜陽(yáng)市人民醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫(kù)頻考點(diǎn)附帶答案
- 2024年河北工業(yè)職業(yè)技術(shù)學(xué)院高職單招語文歷年參考題庫(kù)含答案解析
- 2024年長(zhǎng)汀縣城關(guān)醫(yī)院高層次衛(wèi)技人才招聘筆試歷年參考題庫(kù)頻考點(diǎn)附帶答案
- 2024年江西工業(yè)貿(mào)易職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試歷年參考題庫(kù)含答案解析
- 2025年云南省大理州事業(yè)單位招聘339人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 2024-2025學(xué)年度第一學(xué)期三年級(jí)數(shù)學(xué)寒假作業(yè) 有答案
- 大型起重機(jī)械現(xiàn)場(chǎng)管理手冊(cè)
- 2024年貴州省公務(wù)員錄用考試《行測(cè)》真題及答案解析
- 江蘇省南京市聯(lián)合體2024-2025學(xué)年九年級(jí)上學(xué)期期中學(xué)情分析化學(xué)試卷(無答案)
- 二位數(shù)乘二位數(shù)600道
- 病例討論-病毒性肝炎
- 動(dòng)環(huán)監(jiān)控系統(tǒng)介紹文檔
- 獸藥經(jīng)營(yíng)管理制度
- 第一單元 史前時(shí)期 原始社會(huì)與中華文明的起源 單元檢測(cè)試題 2024-2025學(xué)年統(tǒng)編版七年級(jí)歷史上冊(cè)
- 計(jì)算機(jī)網(wǎng)絡(luò)基礎(chǔ)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
評(píng)論
0/150
提交評(píng)論