Oracle 存儲與關鍵表設計_第1頁
Oracle 存儲與關鍵表設計_第2頁
Oracle 存儲與關鍵表設計_第3頁
Oracle 存儲與關鍵表設計_第4頁
Oracle 存儲與關鍵表設計_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

OracleRDBMS

存儲與表設計趙元杰2007年8月1/18/20231內容提要Oracle表空間與塊結構與段對象創(chuàng)建表結構準備創(chuàng)建表結構語法與參數(shù)解釋創(chuàng)建帶有存儲控制的樣例表9i/10g存儲參數(shù)與塊參數(shù)的變化表數(shù)據(jù)存儲量大小估計表的修改及其它處理參考資料1/18/20232Oracle數(shù)據(jù)庫-表空間-對象TablespaceTables,indexes,etc.DatafilesSegmentExtentBlocks1/18/20233Oracle表空間(Tablespaces)表空間類型System/NonsystemOnline/OfflineRead-Write/Read-OnlyTransportable表空間種類永久表空間(存儲表、索引)臨時表空間(存儲排序數(shù)據(jù))撤消表空間(存儲DML數(shù)據(jù))1/18/20234表空間(tablespace)與表(Tables)表存儲在表空間(Tablespaces)表由行與列構成表包含數(shù)據(jù)(表占很多塊空間,稱“段”)TablespaceTables,indexes,etc.DatafilesSegmentExtentBlocks1/18/20235Oracle表空間與數(shù)據(jù)文件表空間(Tablespace):表空間由多個數(shù)據(jù)文件組成,如SYSTEM表空間由system01.dbf構成;表的數(shù)據(jù)存儲表空間對應的數(shù)據(jù)文件里;表和索引等可分別存儲在不同的表空間;數(shù)據(jù)文件結構:數(shù)據(jù)文件由多個Oracle塊組成;F1.oraF2.oraF3.oraF4.oraF5.oraTablespace1Tablespace2Table1Table2Table3CREATETABLESPACEuser_dataDATAFILE‘udata.ora’SIZE10MEXTENTMANAGEMENTLOCAL…CREATETABLEmy_emp(namevarchar2(20),…TABLEASPACEuser_datapctfree5;1/18/20236Oracle塊結構與段對象數(shù)據(jù)文件都是塊構成;內存分配也是以塊為單位;I/O也以塊為單位;塊大小在安裝時選擇(基本塊大小);不同的Oracle版本允許塊大小不一樣;目前塊大小可以2k~32K;Oracle9i/10g/11g在表空間中塊大小可變;塊大小要根據(jù)OS決定;Oracle塊太大是OS塊大小的倍數(shù)(2的冪次方);Oracle塊大小影響到性能;1/18/20237Oracle塊結構與段對象-塊內部結構Oracle數(shù)據(jù)段(Datasegment)存放在塊里比我們想象要復雜的多:1/18/20238表空間對應一個或多個數(shù)據(jù)文件;數(shù)據(jù)文件由多個Oracle塊構成;Oracle塊可存儲下面的段:數(shù)據(jù)段(Datasegment)-tables,triggers等索引段(Indexsegment)-indexes臨時段(Temporarysegment):-排序和臨時表回滾段(Rollbacksegment)-undodata信息LOB段(LOBsegment)-與表的基本數(shù)據(jù)存儲或分開的LOB數(shù)據(jù)Oracle塊結構與段對象1/18/20239內容提要Oracle表空間與塊結構與段對象創(chuàng)建表結構準備創(chuàng)建表結構語法與參數(shù)解釋創(chuàng)建帶有存儲控制的樣例表存儲參數(shù)在9i/10g的變化表數(shù)據(jù)存儲量大小估計表的修改及其它處理參考資料1/18/202310創(chuàng)建表結構構準備對象命名::名字1~30個字符符號;名字只能是是a~z、、A~Z,,也可在在字符后加加0~9;;名字可加$、#、_;不許帶帶空字符;;最好不能為為保留字((可從v$reserved_words中查)與保留字相相同,可用用雙引號;;列名的統(tǒng)一一問題:同一種含義義的列命名名與類型在在應用系統(tǒng)統(tǒng)中統(tǒng)一;;命名不要采采用拼音或或拼音縮寫寫-重復率率高、不好好猜;命名采用英英語或英語語縮寫;列名太長不不好;類型能采用用字符就不不要采用數(shù)數(shù)字類型。1/1/202311創(chuàng)建表結構準準備數(shù)據(jù)類型使用VARCHAR2(size)變長-1~4000字符CHAR(size)定長–1~2000字符NUMBER(p)整數(shù)NUMBER(p,s)定點數(shù)十進制NUMBER浮點數(shù)十進制DATE日期類型LONG變長大對象(4Gigabyte)NCHAR類似CHAR,使用2-字節(jié)編碼BLOB二進制數(shù)據(jù),4GBCLOB單字節(jié)字符數(shù)據(jù),可達4GBNCLOB類似CLOB,支持2-字節(jié)編碼BFILE引用的外部的二進制文件LONGRAW原二進制數(shù)據(jù)Oracle8/8i/9i/10g版本本常用數(shù)據(jù)類類型:1/1/202312創(chuàng)建表結構準準備Oracle10g一一般的數(shù)據(jù)據(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個字符1/1/202313創(chuàng)建表結構準準備Oracle10g一一般的數(shù)據(jù)據(jù)類型:數(shù)據(jù)類型說明date定長的日期類型,占7字節(jié);可包含年月日時分秒timestape時間郵戳類型,包含可包含年月日時分秒;但是秒數(shù)的精度為1/100秒Intervalyear以年月存儲的時間區(qū)的值,可以是0~9,(默認為2)Intervalday以天、小時、分、秒存儲的時間值,可以是0~9,默認為2Number(p,s)數(shù)字類型,可存儲等任何類型BINARY_FLOAT32Bit的單精度數(shù)據(jù)類型(僅10g/11g)BINARY_DOUBLE64Bit的單精度數(shù)據(jù)類型(僅10g/11g)1/1/202314創(chuàng)建表結構準準備Oracle10g一一般的數(shù)據(jù)據(jù)類型:數(shù)據(jù)類型說明long可變字符類型,可存儲<=2GB;Longraw可變二進制類型,可存儲<=2GB;raw可變二進制類型,可存儲<=4000;BLOB二進制大對象,可存儲圖像等類型數(shù)據(jù);每數(shù)據(jù)行可存儲<=8~128TBCLOB字符大對象,可存儲任何大文本類型數(shù)據(jù);每數(shù)據(jù)行可存儲<=8~128TBNCLOB本地語言字符大對象,類似CLOB類型;BFILE包含指向OS路徑的大對象定位器1/1/202315創(chuàng)建表結構準準備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+30810g1/1/202316Oracle對對象象創(chuàng)創(chuàng)建建準準備備-數(shù)數(shù)據(jù)據(jù)類類型型數(shù)據(jù)據(jù)類類型型選選擇擇要要點點::不要要使使用用long或或longraw類類型型;;一般般不不要要NCHAR等等類類型型;;Number(p,s)類類型型要要滿滿足足應應用用系系統(tǒng)統(tǒng)發(fā)發(fā)展展需需要要;;Number(p,s)類類型型在在整整個個應應用用系系統(tǒng)統(tǒng)中中要要保保持持一一致致性性!?。?!應用用系系統(tǒng)統(tǒng)設設計計與與數(shù)數(shù)據(jù)據(jù)倉倉庫庫考考慮慮::列名名與與類類型型一一致致性性問問題題;;將來來的的數(shù)數(shù)據(jù)據(jù)整整合合問問題題;;統(tǒng)一一使使用用Number(p,s)類類型型;;數(shù)字字類類型型整整數(shù)數(shù)與與精精度度要要一一致致。。1/1/202317內容容提提要要Oracle表表空空間間與與塊塊結結構構與與段段對對象象Oracle塊塊結結構構與與段段對對象象創(chuàng)建建表表結結構構準準備備創(chuàng)建建表表結結構構語語法法與與參參數(shù)數(shù)解解釋釋創(chuàng)建建帶帶有有存存儲儲控控制制的的樣樣例例表表9i/10g存存儲儲參參數(shù)數(shù)與與塊塊參參數(shù)數(shù)的的變變化化表的的修修改改及及其其它它處處理理參考考資資料料1/1/202318創(chuàng)建表表結構構-語語法建議采采用命命令方方式::認真研研究Oracle的的CREATETABLE子句句;關鍵的的項不不要采采用默默認值值,語語法如如下: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)建表結構構語法-子子句解釋子句說明Table_name表名,字母數(shù)字<=30個schema模式名,默認為用戶名datatype列數(shù)據(jù)類型Column_constraint列約束Table_constraint

integer最大分配次數(shù)1/1/202320創(chuàng)建表結結構語法法-子句句解釋Storage子句說明INITIALinteger初始大小NEXTinteger下次擴展大??;在9i/10g創(chuàng)建本地表空間,NEXT由系統(tǒng)自動分配MINEXTENTSinteger最小分配次數(shù),最小默認是2MAXEXTENTSinteger最大分配次數(shù)PCTINCREASEinteger增長百分比(>=0),默認50UNLIMITEDMINEXTENTS參數(shù),用于限制空間的增長1/1/202321創(chuàng)建表結結構語法法-子句句解釋子句說明DEFAULT當前列的默認值(常數(shù))INITRANS數(shù)據(jù)塊中用于更新(UPDATE)的空間百分比(1-99),0表示在插入時完全填滿數(shù)據(jù)塊,默認為10MAXTRANS每個數(shù)據(jù)塊分配的事務如口數(shù)(1-255),默認1PCTFREE數(shù)據(jù)塊的用于更新的百分比(1-99),0表示在插入是填滿整個數(shù)據(jù)庫塊PCTUSED數(shù)據(jù)塊保留的可用空間的最小百分比。取值1-99,默認為40。實際上PCTUSED是控制自由空間的可用性。1/1/202322創(chuàng)建表結結構語法法-塊變變化建議采用用命令方方式:認真研究究Oracle的CREATETABLE子句句;關鍵的項項不要采采用默認認值,語語法如下下:1/1/202323內容提要Oracle塊結構與與段對象創(chuàng)建表結構準準備創(chuàng)建表結構語語法與參數(shù)解解釋創(chuàng)建帶有存儲儲控制的樣例例表9i/10g存儲參數(shù)與與塊參數(shù)的變變化表的修改及其其它處理參考資料1/1/202324創(chuàng)建表結構樣樣例1-塊控控制參數(shù)createtableuser_dflow(user_namevarchar2(30),/*用戶戶名*/bj_datedate,/*日期及及時間*/...day_fee_innumber(16,6),/*日入流流量費用*/day_fee_outnumber(16,6)/*日出流流量費用*/)TABLESPACEusersPCTFREE5PCTUSED80/創(chuàng)建網(wǎng)網(wǎng)絡計計費數(shù)據(jù)流流量明明細表表user_dflow::根據(jù)上上網(wǎng)記記錄的的信息息很少修修改特點,,設置置PCTFREE為為5;而而希望望盡快快釋放放刪除除的塊塊空間間而將將PCTUSED設設85;;該表一一開始始先分分配100MB,用用完再再分配配50MB;1/1/202325創(chuàng)建建表表結結構構樣樣例例2-存存儲儲分分配配參參數(shù)數(shù)createtableuser_dflow(user_namevarchar2(30),/*用用戶戶名名*/bj_datedate,/*日日期期及及時時間間*/...day_fee_innumber(16,6),/*日日入入流流量量費費用用*/day_fee_outnumber(16,6)/*日日出出流流量量費費用用*/)TABLESPACEusersPCTFREE5PCTUSED80STORAGE(INITIAL120MNEXT60MMINEXTENTS1PCTINCREASE0MAXEXTENTS9999)創(chuàng)建建網(wǎng)網(wǎng)絡絡計計費費數(shù)據(jù)據(jù)流流量量明明細細表表user_dflow::對user_dflow表表的的年年數(shù)數(shù)據(jù)據(jù)量量進進行行估估計計::假假設設年年數(shù)數(shù)據(jù)據(jù)量量100MB,,則則可可分分配配120MB;;當分分配配120MB用用完完后后,,由由再再分分配配60MB,……1/1/202326內容容提提要要Oracle塊塊結結構構與與段段對對象象創(chuàng)建建表表結結構構準準備備創(chuàng)建建表表結結構構語語法法與與參參數(shù)數(shù)解解釋釋創(chuàng)建建帶帶有有存存儲儲控控制制的的樣樣例例表表9i/10g存存儲儲參參數(shù)數(shù)與與塊塊參參數(shù)數(shù)的的變變化化表的的修修改改及及其其它它處處理理參考考資資料料1/1/202327存儲參數(shù)數(shù)在9i/10g的變變化為什么9i/10g取取消段的的空間擴擴展設置置:表數(shù)據(jù)的的增長與與空間的的不斷減減少是矛矛盾的關關鍵;NEXT表示示必須分分配一組組連序的的Oracle塊;如果表空空間無NEXT所要求求的連續(xù)續(xù)塊,則則分配失失敗;9i/10g為為表擴擴展空間間時不參參考NEXT,,而是根根據(jù)表的的增長與與實際表表空間剩剩余的空空間來確確定。存儲參數(shù)數(shù)設置::字典類型型表空間間-可設設置STORAGE的的所有項項;本地管理理表空間間-僅STORAGE的INITIAL有有效;1/1/202328存儲參參數(shù)在在9i/10g的變變化塊控制制參數(shù)數(shù)設置置:9i/10g本地管管理表表空間間ASSM(AUTOALLOCATESEGMENTSPACEMANAGEMENTAUTO,Oracle根據(jù)據(jù)dba_tables.avg_row_len來調調整PCTUSED的大大小。。ASSM(AUTOALLOCATESEGMENTSPACEMANAGEMENTMANUAL,Oracle根據(jù)據(jù)你的的PCTUSED設設置來來調整整PCTUSED的的大小??;SYSTEM表表空間間ASSM為MANUAL,,USERS表表空間間ASSM為AUTO(見后后面腳腳本);1/1/202329存儲參參數(shù)在在9i/10g的變變化創(chuàng)建表表結構構前::根據(jù)表表數(shù)據(jù)據(jù)變化化特點點,創(chuàng)創(chuàng)建相相應的的表空空間;;表空間間的對對應數(shù)數(shù)據(jù)文文件大大小要要合理理;在創(chuàng)建建表時時指定定到創(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存儲參數(shù)在在9i/10g的變變化ASSM下下創(chuàng)建表結結構:觀察下面腳腳本運行的的結果: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----好好觀觀察上面的的結果--1/1/202331存儲參數(shù)在9i/10g的變化LMT的extent_management_clause:AUTOALLOCATE(默認值值)區(qū)的大小小由系統(tǒng)來管管理(忽略NEXT等參參數(shù));塊小于16K則分配64K;大于16K,則分分配1M;然后再根據(jù)表表增長情況分分配區(qū),大小小是64K,1M,8M…LMT為UNIFORM情況:UNIFORM規(guī)定每次次擴展都一樣樣的大??;UNIFORM默認為5個Oracle塊;;segment_management_clause::SEGMENTSPACEMANAGEMENTMANUAL/AUTO;如果SSM=AUTO,,則Oracle忽略對對像的PCTUSED,FREELIST和和FREELISTGROUPS參數(shù)(見前面樣例);1/1/202332存儲參參數(shù)在在9i/10g的變變化LMT為UNIFORM情況況:創(chuàng)建的的對象象的EXTENT都都統(tǒng)一一用此此尺寸寸去劃劃分大大小;;為表指指定NEXT,,PCTINCREASE時時,,這些些參數(shù)數(shù)只在在創(chuàng)建建時有有效,,之后后的擴擴展無無效;;1/1/202333存儲參參數(shù)在在9i/10g的變變化LMT指定定UNIFORM例例子子:1.創(chuàng)創(chuàng)建一一表空空間,,UNIFORMSIZE為為3M::2.在在上面面表空空間上上創(chuàng)建建一個個表::CREATETABLESPACEASSMDATAFILE'D:\oracle\oradata\encore\ASSM01.DBF'SIZE50MAUTOEXTENDOFFEXTENTMANAGEMENTLOCALUNIFORMSIZE3MSEGMENTSPACEMANAGEMENTAUTO;CREATETABLEASSMTAB(COL1NUMBER(3))STORAGE(INITIAL2MNEXT5MMINEXTENTS3PCTINCREASE100)TABLESPACEASSM;1/1/202334存儲參數(shù)數(shù)在9i/10g的變變化LMT指指定UNIFORM例例子::3.查看看該表的的擴展信信息:根據(jù)INITIAL2MNEXT5MMINEXTENTS3PCTINCREASE100,系系統(tǒng)分配配方法為為:INITIAL_EXTENT=(2)+(5)+(5+(5*100%))=17MNext、pctincrease參數(shù)創(chuàng)創(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------------------------------------------------------------------------------TABLEASSM03145728384TABLEASSM23145728384TABLEASSM33145728384TABLEASSM43145728384TABLEASSM53145728384SQL>selecttable_name,INITIAL_EXTENT,NEXT_EXTENT,PCT_INCREASEfromuser_tableswheretable_name='ASSMTAB';TABLE_NAMEINITIAL_EXTENTNEXT------------------------------------------------ASSMTAB317825792314572801/1/202335表數(shù)據(jù)存存儲量大大小估計計-方法法1從DDL中了解解數(shù)據(jù)與與行大小小,如::Tableemp(namevarchar2(30),salarynumber(8,2),join_datedate);Step1:每行行大小->20B+6B+7B=43BStep2:估計計總行數(shù)數(shù)->10000(rows)Step3:表的的小->43(B)*10000(rows)=0.5MBStep4:每年年增長率率->43*2000(rows)=100KB一般習慣:總是保守守的多1/1/202336表數(shù)據(jù)存儲量量大小估計-方法2從存在的數(shù)據(jù)據(jù)得到平均行行大小Step1:Initial40,Next50,Extents4,PctIncrease50Step2:Size:(90+50*1.5+50*1.5*1.5)=287.5Step3:MaxExtents(高版本本)不要設設置低的值::S=項目目總數(shù)=[NEXT(RN-1)/(R-1)]這里R=(100+PctIncrease)/100;N=(MAXEXTENTS-1)=>總大小=(S+INITIAL)一般習慣:要合理設設置pctincrease是關鍵鍵!1/1/202337表數(shù)據(jù)據(jù)存儲儲量大大小估估計-方法法3從存在在的表表中分分析以以得到到統(tǒng)計計信息息:Step1:ANALYZETABLEEMPESTIMATE[COMPUTE]STATISTICS;Step2:SELECT(NUM_ROWS*AVG_ROW_LEN)FROMUSER_TABLESWHERETABLE_NAME=‘‘EMP’;1/1/202338表數(shù)數(shù)據(jù)據(jù)存存儲儲量量大大小小估估計計-檢檢查查表表增增長長檢查查段段的的擴擴展展次次數(shù)數(shù)是是否否接接近近MAXEXTENTSSelectsubstr(owner||‘‘.’’||segment_name,1,25)““object””,MaxextentsFromsys.Dba_extentsWheremaxextents-extents<=5Orderbyextents;1/1/202339內容提要要Oracle塊塊結構構與段對對象創(chuàng)建表結結構準備備創(chuàng)建表結結構語法法與參數(shù)數(shù)解釋創(chuàng)建帶有有存儲控控制的樣樣例表9i/10g存存儲參數(shù)數(shù)與塊參參數(shù)的變變化表的修改改及其它它處理參考資料料1/1/202340修改表結結構-AlterTable表結構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]1/1/202341修改表結構-AlterTable表結構的修改改問題:不要經(jīng)常修改改表結構;修改表結構帶帶來許多問題題-性能、一一致性等;修改表結構要要分析對其它它表的影響。。目前可修改::增加列(字段段)寬度或增增加新列;減少列(字段段)寬度(該該列必須無數(shù)數(shù)據(jù));增加一個約束束或去掉約束束;修改存儲分配配;記錄表已作過過BACKUP;刪除已存在的的列;重新定位和組組織表;將表標識為不不可用。1/1/202342修改表結構刪除表結構構的某個列列:刪除某個列列的語法::ALTERTABLE...DROPCOLUMN[CASCADECONSTRAINTS];刪除某個列列的例子::刪除列后不不能恢復::SQL>ALTERTABLEempDROPCOLUMNcomm;表已更改。。1/1/202343修改表結構構標識表結構構的某個列列不可用::標識某個列列不可用的的語法:ALTERTABLE...SETUNUSEDCOLUMN標識某個列列不可用及及刪除的例例子:標識某個列列不用后就就不能再恢恢復為可用用:SQL>Altertableemp2setUNUSEDCOLUMNcomm;表已已更更改改。。SQL>ALTERTABLEemp2DROPUNUSEDCOLUMNSCHECKPOINT20;表已已更更改改。。SQL>1/1/202344刪除表表結構構刪除表結構構:就是從Oracle系統(tǒng)中刪刪除該表的的數(shù)據(jù)與結結構;語法:刪除表結構構將影響::指向本表的的外部鍵;;表中的索引引;本表的觸發(fā)發(fā)器;本表中的分分區(qū);本表的快照照;本表的角色色和用戶權權限;加在本表的的所有限制制。DROPTABLE[user.]table_name[CASCADECONSTRAINTS]1/1/202345刪除表結構構刪除表結構構注意:刪除某個表表前要查詢詢該是否其其它表存在在關系;不要輕易帶帶CASCADE子子句:刪除表結結構建議議做:查詢某個個表的子子表:DROPTABLEDEPTCASCADECONSTRAINTS;表已刪除除./*找出模式式下的某某個表的的子表*/SELECTtable_name““childtables””FROMuser_constraintsWHEREr_constraint_nameIN(SELECTconstraint_nameFROMuser_constraintsWHEREtable_name=UPPER(‘&parent_table’)ANDconstraint_type=’P’);1/1/202346釋放不用用的空間間記錄有最最高水位位“Highwatermark””可釋放不不使用的的擴展FreespaceafterdeleteUnusedblockHighwatermarkBeforedeallocationUsedblockALTERTABLEemployeesDEALLOCATEUNUSED;Afterdeallocation1/1/20234710g段段收縮-表的存存儲空間間收縮1/1/20234810g段收縮縮-表的存儲儲空間收縮Oracle9i提提供:刪除表,再重重建,重加載載數(shù)據(jù)ALTERTABLE…MOVE命令但是Oracle9i:表必須是Offline聯(lián)機只能重組組ALTERTABLEe

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論