Oracle企業(yè)資產(chǎn)管理_第1頁
Oracle企業(yè)資產(chǎn)管理_第2頁
Oracle企業(yè)資產(chǎn)管理_第3頁
Oracle企業(yè)資產(chǎn)管理_第4頁
Oracle企業(yè)資產(chǎn)管理_第5頁
已閱讀5頁,還剩134頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第七章 管理Oracle對象管理表概覽 表是最基本的數(shù)據(jù)庫對象,它用于存儲用戶數(shù)據(jù),關(guān)系數(shù)據(jù)庫的所有操作最終都是圍繞用戶表進行的。在Oracle數(shù)據(jù)庫中,按照存儲方式的不同,表可以分為普通表、分區(qū)表、索引組織表以及簇表等四種表。 1.表結(jié)構(gòu)表是Oracle數(shù)據(jù)庫數(shù)數(shù)據(jù)存儲儲的基本本單元,在表中中是通過過行和列列來組織織數(shù)據(jù)的的。一張張表一般般都具有有多個列列,或者者稱為字字段,每每個字段段都具有有特定的的屬性,包括字字段名、字段數(shù)數(shù)據(jù)類型型、字段段長度、約束、默認值值等,這這些屬性性在表創(chuàng)創(chuàng)建時即即被確定定。而表表的每一一行存放放一條信信息。2.基本的數(shù)數(shù)據(jù)類型型當建立表表時,不不僅要指指定表

2、名名、列名名,而且且要根據(jù)據(jù)情況為為列選擇擇合適的的數(shù)據(jù)類類型以及及長度。下面介介紹一些些常用的的Oracle數(shù)據(jù)類型型:CHAR(N)該數(shù)據(jù)類類型用于于定義固固定長度度的字符符串,其其最大長長度為2000字節(jié)。假假定定義義COLA列為CHAR(100),并且該列列的數(shù)據(jù)據(jù)為“ACCESS”,這時雖“ACCESS”只有六個個字符,但COLA列仍將占占用100字節(jié)的空空間。VARCHAR2(N)該數(shù)據(jù)類類型用于于定義可可變長度度的字符符串,其其最大長長度為4000字節(jié)。假假定定義義COLA列為VARCHAR2(100),并且該列列的數(shù)據(jù)據(jù)為“ACCESS”,那么COLA列將占用用6字節(jié)的空空間。

3、所所以使用用VARCHAR2類型可以以節(jié)省空空間,但但CHAR類型存取取速度更更快。NUMBER(P,S)該數(shù)據(jù)類類型用于于定義數(shù)數(shù)字類型型的數(shù)據(jù)據(jù),其中中P是精度,表示數(shù)數(shù)字的總總位數(shù),而S是刻度范范圍,表表示小數(shù)數(shù)點后的的位數(shù)。精度和和刻度范范圍都是是可選的的,但若若指定了了刻度范范圍,那那么必須須指定精精度。假假定定義義SAL列為NUMBER(4,3),若該列的的數(shù)據(jù)為為123.4567,則存儲儲錯誤,因為超超出了精精度范圍圍;若該該列的數(shù)數(shù)據(jù)為1.234567,則實際際存儲的的數(shù)據(jù)為為1.235,因為當當被指派派值超出出了刻度度范圍時時,存儲儲值按照照刻度范范圍指定定的數(shù)字字位的位位數(shù)

4、進行行舍入。另外,定義整整數(shù)還可可以直接接使用INT數(shù)據(jù)類型型。DATE該數(shù)據(jù)類類型用于于定義日日期時間間數(shù)據(jù),其長度度為7個個字節(jié)。RAW(N)該數(shù)據(jù)類類型用于于定義二二進制數(shù)數(shù)據(jù),其其最大長長度為2000字節(jié)。通通常用來來存儲小小型二進進制數(shù)據(jù)據(jù)。存儲大對對象的數(shù)數(shù)據(jù)類型型Oracle為存儲大大對象(LOB)提供了六六種數(shù)據(jù)據(jù)類型Long,long rawLob(CLOB、BLOBBFILE、NCLOB) 一個表只能有一個LONG或LONG RAW列 一個表上可以有多個LOB列 最多2gb最多4gbSelect返回數(shù)據(jù)Select返回定位器與其他列數(shù)據(jù)存放在一起 小于4000:與其他列存放

5、在一起大于4000:存放到LOB段 無對象類型支持支持對象類型順序訪問隨機訪問其中:CLOB和LONG用于存儲儲大型的的、固定定寬度字字符數(shù)據(jù)據(jù);BLOB和LONG RAW用于存儲儲非結(jié)構(gòu)構(gòu)化數(shù)據(jù)據(jù),如二二進制圖圖象;NCLOB用于存儲儲大型的的、固定定寬度字字符集數(shù)數(shù)據(jù);BFILE用于存儲儲操作系系統(tǒng)文件件中的非非結(jié)構(gòu)化化數(shù)據(jù)。3.數(shù)據(jù)的存存儲方式式當創(chuàng)建表表時,Oracle會自動從從指定的的表空間間中為新新建的表表創(chuàng)建一一個數(shù)據(jù)據(jù)段,而而該表的的所有數(shù)數(shù)據(jù)都會會存放到到相應的的表段中中。表的行數(shù)數(shù)據(jù)存儲儲在數(shù)據(jù)據(jù)塊中,如果一一個塊的的大小足足夠容納納一條記記錄,Oracle就將一條條記錄完

6、完整的存存儲在一一個數(shù)據(jù)據(jù)塊中。一般情情況,記記錄按列列定義順順序來存存放,但但若使用用LONG或LONG RAW類型,那那么它們們的數(shù)據(jù)據(jù)總是放放在記錄錄的尾部部。如果表中中某字段段允許為為NULL,若NULL值字段位位于非NULL值字段的的中間,則需使使用1字節(jié)的空空間來存存儲NULL值字段的的長度;若NULL值字段位位于一條條記錄的的末尾,將不需需要任何何存儲空空間來存存儲NULL值。因此此,在定定義表時時候,應應當將可可能包含含NULL值的字段段放在字字段列表表的末尾尾,這樣樣可以節(jié)節(jié)省存儲儲空間。4.ROWIDROWID用于惟一一標識表表行。當當執(zhí)行INSERT操作時,服務器器進程會

7、會將數(shù)據(jù)據(jù)插人到到表段的的相應數(shù)數(shù)據(jù)塊中中,并且且Oracle會生成惟惟一的ROWID對應于該該行數(shù)據(jù)據(jù)。ROWID間接地給給出了表表行的物物理存放放位置,它是定定位表行行最快速速的方式式。ROWID占用10個字節(jié)節(jié)的存儲儲空間,而顯示示結(jié)果為為18個個字符,具體格格式如下下:OOOOOOFFFBBBBBBRRR數(shù)據(jù)對象象號相對文件件號數(shù)據(jù)塊號號行號數(shù)據(jù)對象象號:表表的惟一一對象標標識號。當建立立表時,Oracle會為該表表分配惟惟一的數(shù)數(shù)據(jù)對象象號。相對文件件號:表表空間內(nèi)內(nèi)數(shù)據(jù)文文件的惟惟一標識識號。塊號:行行所在數(shù)數(shù)據(jù)塊的的位置。行號:行行在塊內(nèi)內(nèi)的位置置。因為創(chuàng)建建了一個個表就創(chuàng)創(chuàng)建了

8、一一個段,而一個個段只能能駐留在在一個表表空間中中,所以以使用數(shù)數(shù)據(jù)對象象編號,Oracle服務器可可以確定定表所在在的表空空間;又又因為表表空間的的數(shù)據(jù)都都存放在在數(shù)據(jù)文文件中,使用相相對文件件編號Oracle可以確定定存放表表數(shù)據(jù)的的數(shù)據(jù)文文件;數(shù)數(shù)據(jù)文件件用數(shù)據(jù)據(jù)塊來存存儲數(shù)據(jù)據(jù),使用用數(shù)據(jù)塊塊編號可可知表的的某一行行數(shù)據(jù)存存放在哪哪個數(shù)據(jù)據(jù)塊中;而一個個數(shù)據(jù)塊塊可能存存放多行行數(shù)據(jù),利用行行號就可可以定位位表中的的任一行行了。ROWID是表的偽偽列,用用戶在查查看表的的結(jié)構(gòu)時時不會看看到ROWID字段,但但和其它它字段一一樣,可可以在執(zhí)執(zhí)行SELECT操作時直直接引用用。但是是因為用用

9、戶無法法直接讀讀懂ROWID內(nèi)容,所所以在引引用ROWID時通常使使用DBMS_ROWID將其轉(zhuǎn)變變?yōu)榭勺x讀取的內(nèi)內(nèi)容。selectdeptno,dbms_rowid.rowid_relative_fno(rowid)|. |dbms_rowid.rowid_block_number(rowid) | .|dbms_rowid.rowid_row_number(rowid)行行位置fromdept;7.1.2建表建表是使使用createtable命令完成成的,執(zhí)執(zhí)行該命命令要求求用戶必必須具有有createtable系統(tǒng)權(quán)限限;如果果要在其其他用戶戶模式中中建表,則要求求用戶必必須具有有cre

10、ateany table系統(tǒng)權(quán)限限。當建建立表時時,Oracle會為該表表分配相相應的表表段,因因為表段段所需空空間是從從表空間間上分配配的,所所以要求求表的所所有者必必須要在在表空間間上具有有相應的的空間配配額或具具有unlimitedtablespace系統(tǒng)權(quán)限限。1.建立普通通表普通表是是存儲用用戶數(shù)據(jù)據(jù)最常用用的方式式。當建建立普通通表時,Oracle會自動為為該表建建立相應應的段,并且段段的名稱稱與表名名完全相相同,而而且段的的數(shù)據(jù)只只能存放放在一個個表空間間中。創(chuàng)創(chuàng)建普通通表的語語法如下下:CREATETABLEschema.table(column datatype,column

11、datatype)TABLESPACEtablespacePCTFREEintegerPCTUSEDintegerINITRANSintegerMAXTRANSintegerSTORAGEstorage-clauseLOGGING|NOLOGGINGCACHE|NOCACHE現(xiàn)對命令令中各參參數(shù)說明明如下:TABLESPACE:標識要在在其中創(chuàng)創(chuàng)建表的的表空間間。如果果創(chuàng)建表表時沒有有顯式的的指定表表所處的的表空間間,則表表被創(chuàng)建建在當前前用戶的的默認表表空間中中。PCTFREE和PCTUSED:PCTFREE參數(shù)用于于指定塊塊中必須須保留的的最小空空閑空間間比例,PCTUSED參數(shù)用于于指定

12、當當數(shù)據(jù)塊塊達到PCTFREE參數(shù)的限限制之后后(這時時數(shù)據(jù)塊塊被標記記為不可可用),數(shù)據(jù)塊塊能夠被被再次使使用前,已占用用的存儲儲空間必必須低于于的比例例。INITRANS和MAXTRANS:INITRANS與MAXTRANS參數(shù)用于于指定針針對同一一個塊所所允許的的并發(fā)事事務數(shù)目目。每當當一個DML事務訪問問表中的的一個數(shù)數(shù)據(jù)塊時時,該事事務會在在數(shù)據(jù)塊塊的塊頭頭部(BlockHeader)中保存一一個條目目,用于于標記該該事務正正在使用用這個數(shù)數(shù)據(jù)塊。當該事事務結(jié)束束時,它它所對應應的條目目被刪除除。在創(chuàng)建表表時,Oracle將在表中中每個數(shù)數(shù)據(jù)塊的的頭部空空間中分分配可以以存儲INIT

13、RANS個事務條條目的空空間。這這部分存存儲空間間是永久久性的,只能用用來存儲儲事務條條目。當當一個DML事務訪問問這個數(shù)數(shù)據(jù)塊時時,Oracle首先將該該事務的的條目存存儲在塊塊頭部空空間中。當塊頭頭部空間間已經(jīng)存存儲了INITRANS個事務條條目后,再沒有有多余的的空閑空空間來存存儲其他他的事務務條目了了。這時時若還有有別的事事務要訪訪問這個個數(shù)據(jù)塊塊,Oracle將在數(shù)據(jù)據(jù)塊的空空閑空間間中為事事務條目目分配存存儲空間間(如果果在塊中中還有空空閑空間間的話)。這部部分空閑閑空間是是動態(tài)分分配的,回收以以后可以以用于存存儲其他他數(shù)據(jù)。能夠在在空閑空空間中存存儲的事事務條目目數(shù)量等等于MAX

14、TRANS參數(shù)值減減去INITRANS參數(shù)的值值。STORAGE:用于于指定段段的存儲儲參數(shù),若不指指定存儲儲參數(shù),那么Oracle會會使用表表空間的的默認存存儲參數(shù)數(shù)。在STORAGE子句句中可以以設置下下面6個存儲參數(shù)數(shù):INITIAL:為表的的數(shù)據(jù)段段分配的的第一個個區(qū)的大大小。NEXT:為表的的數(shù)據(jù)段段分配的的第二個個區(qū)的大大小。PCTINCREASE:指定從從第二個個區(qū)開始始,為表表的數(shù)據(jù)據(jù)段分配配的區(qū)的的大小增增加比例例。即每每個區(qū)的的大小等等于前一一個區(qū)的的大小乘乘以(1+PCTINCREASE/100)。如果表表處于本本地管理理方式的的表空間間中,則則該參數(shù)數(shù)被忽略略。MINE

15、XTENTS:允許為為表的數(shù)數(shù)據(jù)段分分配的最最小區(qū)數(shù)數(shù)目。MAXEXTENTS:允許為為表的數(shù)數(shù)據(jù)段分分配的最最大區(qū)數(shù)數(shù)目。如如果表處處于本地地管理方方式的表表空間中中,則該該參數(shù)被被忽略。BUFFER_POOL:指定表的的數(shù)據(jù)塊塊的緩存存池。LOGGING和NOLOGGING:使用了LOGGING,則表的創(chuàng)創(chuàng)建操作作(包括括通過查查詢創(chuàng)建建表時的的插入記記錄操作作)都將將記錄到到重做日日志中,若用NOLOGGING,則表的創(chuàng)創(chuàng)建操作作不會被被記錄到到重做日日志中。默認情情況將使使用LOGGING子句。NOLOGGING子句適合合于通過過查詢創(chuàng)創(chuàng)建表的的情況。CACHE和NOCACHE:在創(chuàng)建

16、表表時默認認使用NOCACHE子句。但但對于比比較小又又經(jīng)常查查詢的表表,可以以使用CACHE子句。下面是一一個在data表空間上上建立employee表的例子子。createtableemployee(idnumber(7),last_namevarchar2(25),dept_idnumber(7)pctfree 20 pctused50storage (initial 200knext200kpctincrease0maxextents 50)tablespace data;2.復制表使用CREATETABLE命令不僅僅可以建建立表結(jié)結(jié)構(gòu),而而且還可可以將已已存在表表的結(jié)構(gòu)構(gòu)和數(shù)據(jù)據(jù)復制

17、到到另一張張新表中中。另外外為了盡盡快復制制表的數(shù)數(shù)據(jù),復復制表時時可以指指定PARALLEL選項和NOLOGGlNG選項,示示例如下下:createtablenew_empparallel2nologgingasselect*fromscott.emp;其中,paralleldegree用于指定定執(zhí)行并并行操作作,parallel2表示由兩兩個并行行服務器器進程執(zhí)執(zhí)行數(shù)據(jù)據(jù)加載操操作。另另外使用用Nologging,在重做日日志中沒沒有記錄錄下創(chuàng)建建表的操操作 3.建立臨時時表通過createtable語句創(chuàng)建建的表是是永久性性的表,即其中中的記錄錄可以一一直保存存下來。與之對對應,在在Or

18、acle中還可以以創(chuàng)建臨臨時表(TemporaryTable)。與普通表表不同,臨時表表中的數(shù)數(shù)據(jù)在使使用完畢畢后自動動刪除。“使用用完畢”有兩種種情況:事務結(jié)結(jié)束和會會話結(jié)束束。在創(chuàng)建臨臨時表時時若使用用了oncommitdelete rows子句,則則說明臨臨時表是是事務級級別的。這時Oracle將在每次次提交事事務時對對臨時表表進行刪刪減操作作,即刪刪除表中中的所有有數(shù)據(jù)。若使用用了oncommitpreserverows子句,則則說明臨臨時表是是會話級級別的。這時Oracle將直到會會話終止止時才對對臨時表表進行刪刪減操作作。下面語句句就建立立了名稱稱為employee_temp的臨時

19、表表,該臨臨時表將將在每次次事務提提交時進進行刪減減操作:createglobal temporarytableemployee_temponcommitdelete rowsasselect*from scott.emp;4.建立索引引組織表表一般情況況下,表表與索引引數(shù)據(jù)分分別存放放在表段段和索引引段中。但索引引組織表表(IOT)比較特殊殊,它將將表的數(shù)數(shù)據(jù)和索索引數(shù)據(jù)據(jù)存儲在在一起,即以B樹索引的的方式來來組織表表中的數(shù)數(shù)據(jù)。非鍵列鍵列行頭普通表及及其索引引索引組織織表要創(chuàng)建索索引組織織表,必必須在CREATETABLE語句中顯顯式地指指定organizationindex關(guān)鍵字。另外,

20、在索引引組織表表中必須須建立一一個primary key主碼約束束。下面面語句就就創(chuàng)建了了一個索索引組織織表employees。createtableemployees(empnonumber(5) primarykey,enamevarchar2(15) notnull,salnumber(7,2),jobvarchar2(10)organizationindextablespace users;在索引組組織表中中,如果果要獲得得對常用用字段更更快的訪訪問速度度,可以以應用“溢出”存儲功功能,將將表中的的不常訪訪問的非非主碼不不再存儲儲在B樹的葉節(jié)節(jié)點中,而是存存儲在一一個具有有堆組織織方式

21、的的溢出存存儲區(qū)中中。對于于大型的的索引組組織表,使用溢溢出存儲儲能夠大大大減少少索引組組織表所所占用的的存儲空空間,同同時又可可提高對對常用字字段的查查詢效率率。 如果要啟啟用溢出出存儲功功能,必必須在創(chuàng)創(chuàng)建索引引組織表表時指定定OVERFLOW子句,此此外還需需使用INCLUDING子句或PCTTHRESHOLD子句來設設置溢出出存儲的的方式。如下所所示:createtablesales_info(idnumber(6)primarykey,customer_namevarchar(30),sales_amountnumber(10,2),sales_datedate,remarkvarc

22、har2(200)organizationindexpctthreshold20includingremarkoverflowtablespaceusers;其中,PCTTHRESHOLD指定在數(shù)數(shù)據(jù)塊中中為主鍵鍵列和部部分非主主鍵列所所預留空空間的百百分比。如上例例所示,假定數(shù)數(shù)據(jù)塊剩剩余空間間已經(jīng)低低于20,那么么Oracle會將INCLUDING子句后所所有列的的數(shù)據(jù)存存放到溢溢出段。而INCLUDINGremark則指如果果數(shù)據(jù)塊塊剩余空空間低于于PCTTHRESHOLD,那么Oracle會將該子子句列remark后的所有有列數(shù)據(jù)據(jù)存放到到溢出段段, OVERFLOWTABLESPAC

23、E指定了溢溢出段所所在的表表空間。5.建立分區(qū)區(qū)表分區(qū)是指指將一張張大表的的數(shù)據(jù)進進行物理理劃分,并最終終將其數(shù)數(shù)據(jù)放到到幾個相相對較小小的表分分區(qū)段中中。當執(zhí)執(zhí)行SQL語句訪問問分區(qū)表表時,系系統(tǒng)可以以直接訪訪問某個個表分區(qū)區(qū)段,而而不需要要訪問整整張表的的所有數(shù)數(shù)據(jù),從從而降低低磁盤I/O,提高系統(tǒng)統(tǒng)性能。Oracle提供了范范圍分區(qū)區(qū)、散列列分區(qū)、列表分分區(qū)以及及組合分分區(qū)四種種分區(qū)方方法。范圍分區(qū)區(qū)范圍分區(qū)區(qū)是按照照分區(qū)字字段中值值的范圍圍來對表表進行分分區(qū),是是最常用用的分區(qū)區(qū)類型。范圍分分區(qū)通常常用于分分區(qū)字段段是日期期類型的的表。假定一張張銷售表表年數(shù)據(jù)據(jù)總量達達到10GB,每個

24、季度度平均2.5GB,如果使用用普通表表存儲數(shù)數(shù)據(jù),那那么10G數(shù)據(jù)會存存放到一一個表段段SALES中,那么么在統(tǒng)計計一季度度銷售數(shù)數(shù)據(jù)時需需要掃描描10GB數(shù)據(jù);而而如果使使用表分分區(qū)段,那么可可以將一一、二、三、四四季度數(shù)數(shù)據(jù)分別別存放到到不同表表分區(qū)段段中,此此時統(tǒng)計計一季度度銷售數(shù)數(shù)據(jù)只需需要掃描描2.5GB數(shù)據(jù)。顯顯然,使使用表分分區(qū)段可可以大大大降低I/O次數(shù),并并提高I/O性能。下下面以建建立SALES表為例,說明使使用范圍圍分區(qū)建建立分區(qū)區(qū)表的方方法,示示例如下下:createtablesales(customer_idnumber(3),sales_amountnumber(

25、10,2),sales_datedate)partitionby range (sales_date)(partitionplvalueslessthan (01-APR-2001),partitionp2valueslessthan (01-JUL-2001),partitionp3valueslessthan (01-OCT-2001),partitionp4valueslessthan (01-JAN-2002);當在分區(qū)區(qū)表上執(zhí)執(zhí)行INSERT操作時,系統(tǒng)會會自動按按照sales_date值的范圍圍將數(shù)據(jù)據(jù)插入到到相應的的分區(qū)段段上。例例如:insertintosalesvalues(

26、1,28500,25-JAN-2001);insertintomalesvalues(2,30500, 25-MAY-2001);當執(zhí)行了了上述INSERT語句之后后,會將將第一條條數(shù)據(jù)插插入到分分區(qū)P1上,而第第二條數(shù)數(shù)據(jù)被插插入到分分區(qū)P2上。當執(zhí)執(zhí)行SELECT、UPDATE、DELETE操作時,如果在在WHERE子句中引引用了分分區(qū)列,那么Oracle會自動在在相應分分區(qū)上執(zhí)執(zhí)行操作作,從而而降低I/O操作的次次數(shù),進進而提高高性能。列表分區(qū)區(qū)如果分區(qū)區(qū)字段的的值并不不能劃分分范圍(非數(shù)字字或日期期數(shù)據(jù)類類型),同時分分區(qū)字段段的取值值范圍只只是一個個包含少少數(shù)值的的集合,那么可可以對

27、表表進行列列表分區(qū)區(qū)。在進進行列表表分區(qū)時時,需要要為每個個分區(qū)指指定一個個取值列列表,分分區(qū)字段段值處于于同一個個取值列列表中的的記錄被被存儲在在同一個個分區(qū)中中。列表分區(qū)區(qū)適用于于那些分分區(qū)字段段是一些些無序的的或者無無關(guān)的取取值集合合的表。下面以以建立sales_by_region表為例,說明使使用列表表分區(qū)建建立分區(qū)區(qū)表的方方法,示示例如下下:createtablesales_by_region(deptnonumber,dnamevarchar2(20),quarterly_salesnumber (10,2),city varchar2(10)partitionbylist(cit

28、y)(partitionplvalues(北京,上海),partitionp2values(重重慶, 廣廣州) ,partitionp3values(南京,武漢);其中,PARTITIONBYLIST(column)指定分區(qū)區(qū)方法為為列表分分區(qū),column指定分區(qū)區(qū)列名。當執(zhí)行了了上述命命令之后后,Oracle會為表sales_by_region建立三個個分區(qū)段段。當在在分區(qū)表表上執(zhí)行行INSERT操作時,系統(tǒng)會會自動按按照city列的值將將數(shù)據(jù)插插入到相相應的分分區(qū)段上上,例如如:insertintosales_by_regionvalues(10,SALES,20800,上海);inse

29、rtintosales_by_regionvalues (10,SALES,24800,重慶慶);insertintosales_by_regionvalues (10,SALES,28800,武漢); 當執(zhí)行了了上述INSERT語句之后后,會將將第一條條數(shù)據(jù)插插入到分分區(qū)P1上,第二二條數(shù)據(jù)據(jù)則會被被插入到到分區(qū)P2上,而第第三條數(shù)數(shù)據(jù)則會會被插入入到分區(qū)區(qū)P3上。當執(zhí)執(zhí)行SELECT、UPDATE、DELETE操作時,如果WHERE子句引用用了分區(qū)區(qū)列,那那么Oracle會自動在在相應分分區(qū)上執(zhí)執(zhí)行操作作,從而而降低I/O操作的次次數(shù),進進而提高高性能。散列分區(qū)區(qū)在進行范范圍分區(qū)區(qū)或列表表

30、分區(qū)的的時候,有時由由于用戶戶無法對對各個分分區(qū)中可可能具有有的記錄錄數(shù)目進進行預測測,可能能會產(chǎn)生生某個分分區(qū)中記記錄很多多,而某某個分區(qū)區(qū)中記錄錄很少的的不平衡衡分區(qū)情情況。這這時應創(chuàng)創(chuàng)建散列列分區(qū)。散列分區(qū)區(qū)是指按按照Oracle所提供的的散列(HASH)函數(shù)來計計算列值值數(shù)據(jù),并最終終按照函函數(shù)結(jié)果果來分區(qū)區(qū)數(shù)據(jù)。下面以以建立分分區(qū)表PRODUCT為例,說說明使用用散列分分區(qū)建立立分區(qū)表表的方法法,示例例如下:createtableproduct(product_idnumber(6),descriptionvarchar2(30)partitionbyhash(product_id)

31、(partition pl tablespacelocall,partitionp2tablespacelocal2);其中,PARTITIONBYHASH(column)指定分區(qū)區(qū)方法為為散列分分區(qū),column指定分區(qū)區(qū)列名。當在散散列分區(qū)區(qū)表上插插入數(shù)據(jù)據(jù)時,系系統(tǒng)會自自動在分分區(qū)列PRODUCT_ID上使用散散列函數(shù)數(shù)進行運運算,并并根據(jù)運運算結(jié)果果將數(shù)據(jù)據(jù)均勻地地放置到到不同分分區(qū)。組合分區(qū)區(qū)顧名思義義,組合合分區(qū)實實際上組組合了范范圍分區(qū)區(qū)和散列列分區(qū),它首先先按照列列值范圍圍從邏輯輯上進行行范圍分分區(qū),然然后在每每個范圍圍分區(qū)的的基礎上上再按照照散列函函數(shù)進行行散列分分區(qū)。當當不

32、同范范圍的數(shù)數(shù)據(jù)分布布比較均均勻時,Oracle建議直接接使用范范圍分區(qū)區(qū)。對于于某些表表來說,盡管數(shù)數(shù)據(jù)是按按照一定定范圍分分布的,但因為為不同范范圍的數(shù)數(shù)據(jù)分布布不均勻勻,所以以此時可可以使用用組合分分區(qū)來有有效地分分布表的的數(shù)據(jù)。createtablesales_order(order_idnumber,order_datedate,product_idnumber,quantitynumber)partitionbyrange(order_date)subpartitionbyhash(product_id)subpartitions 2storein(users,userl)(par

33、tition p1 valuesless than( 01-APR-2001),partitionp2values lessthan(01-JUL-2001),partitionp3values lessthan(01-OCT-2001),partitionp4values lessthan(01-JAN-2002);其中,STOREIN用于指定定散列分分區(qū)所在在表空間間。在執(zhí)行了了上述命命令之后后,首先先按照ORDER_DATE列值進行行范圍分分區(qū),此此時建立立四個邏邏輯上的的范圍分分區(qū)。然然后按照照PRODUCT_ID列值進行行散列分分區(qū),并并將邏輯輯上的四四個范圍圍分區(qū)最最終轉(zhuǎn)化化成8個

34、物理上上的散列列分區(qū)段段。當給該組組合分區(qū)區(qū)表插入入數(shù)據(jù)時時,首先先按照order_date列值區(qū)邏邏輯確定定其所在在區(qū),然然后用散散列函數(shù)數(shù)計算product_id的散列值值,最終終確定數(shù)數(shù)據(jù)應該該放到哪哪個分區(qū)區(qū)中。6.建立簇表表一般情況況下,建建立表時時Oracle會為該表表分配相相應的表表段。例例如,當當建立表表DEPT和EMP時,Oracle會分別為為這兩張張表分配配表段DEPT、EMP。并且它們們的數(shù)據(jù)據(jù)會分別別存放到到這兩個個表段中中。DEPTNO DNAME LOC10 ACCOUNTING NEW YORK20 RESEARCH DALLAS30 SALES CHICAGO4

35、0 OPERATIONS BOSTONDEPTDEPTNO DNAME SAL20 SMITH 80030 ALLEN 160030 WARD 124020 SCOTT 200030 DEVE 1800EMPDEPTEMP表DEPT的所有數(shù)數(shù)據(jù)存放放在表段段DEPT中,而EMP表的所有有數(shù)據(jù)則則存放在在表段EMP中。假定定用戶經(jīng)經(jīng)常需要要執(zhí)行類類似于“SELECTdname,ename,sal FROMdept,empWHEREdept.deptno=emp.deptnoANDdept.deptno=10”的連接查查詢語句句來檢索索部門及及其雇員員的相關(guān)關(guān)信息,那么至至少需要要2次的I/O操作

36、,因因為表DEPT和EMP的數(shù)據(jù)分分別存放放在兩個個表段中中。這時時,為了了降低硬硬盤I/O操作的開開銷,可可以把這這兩張表表的數(shù)據(jù)據(jù)組織到到簇中。簇是一種種用于存存儲表中中數(shù)據(jù)的的可選方方法。在在一個簇簇中,Oracle將多個表表的相關(guān)關(guān)字段聚聚簇在相相同的數(shù)數(shù)據(jù)塊中中。比如如,EMP表和DEPT表都具有有DEPTNO字段,DEPTNO字段就是是這兩個個表的相相關(guān)字段段(簇鍵鍵)。如如果將EMP表和DEPT表聚簇在在一起,那么Oracle會按照部部門的DEPTNO在物理上上存儲兩兩個表的的所有記記錄。簇DEPT_EMP(DEPT、EMP) 簇鍵(deptno) 10 ACCOUNTING N

37、EW YORK CLARK 2450 KING 500020 RESEARCH DALLAS SMITH 800 SCOTT 2000 DEPT_EMP創(chuàng)建簇使使用CREATECLUSTER語句,執(zhí)執(zhí)行該命命令要求求用戶要要有CREATECLUSTER系統(tǒng)權(quán)限限;如果果要在其其他用戶戶模式中中建立簇簇,則要要有CREATEANY CLUSTER系統(tǒng)權(quán)限限。當建建立簇時時,Oracle會為該簇簇分配相相應的簇簇段,因因為簇段段所需空空間是從從表空間間上分配配的,所所以要求求簇所有有者必須須要在表表空間上上具有相相應的空空間配額額或具有有UNLIMITEDTABLESPACE系統(tǒng)權(quán)限限。示例例如下

38、:createclusterdept_emp(deptnonumber (3)pctfree 20 pctused60size 500tablespace usersstorage (initial 200Knext200Kminextents 3pctincrease0maxextents 50); 創(chuàng)建簇后后,還要要建簇表表。建立立簇表要要求用戶戶必須具具有CREATETABLE系統(tǒng)權(quán)限限,如果果要在其其他用戶戶模式中中建立簇簇表,則則必須具具有CREATEANY TABLE系統(tǒng)權(quán)限限。另外外,因為為簇表數(shù)數(shù)據(jù)是放放在簇段段中的,所以用用戶不需需要任何何表空間間配額或或UNLIMITEDT

39、ABLESPACE系統(tǒng)權(quán)限限。為了了將表組組織到簇簇中,在在建表時時必須指指定CLUSTER子句。建建立簇表表的示例例如下:createtabledept(deptnonumber(3)primary key,dnamevarchar2(14),locvarchar2(13)clusterdept_emp(deptno);當執(zhí)行了了上述命命令后,將表DEPT增加到簇簇DEPT_EMP中了。需需要注意意的是,當建立立簇表時時不能指指定STORAGE子句和塊塊空間使使用參數(shù)數(shù)。當建立了了簇和簇簇表之后后,在插插入數(shù)據(jù)據(jù)之前必必須首先先建立簇簇索引,否則會會顯示錯錯誤信息息。createindexd

40、ept_emp_idx on clusterdept_emptablespace indxstorage(initial 20Knext 20Kpctincrease0); 7.1.3修改表1.增加加和刪除除字段如果目前前的字段段不能夠夠完整地地標識表表的所有有屬性,那么通通過增加加字段可可以間接接地增加加表的屬屬性。使使用ALTERTABLE命令可以以給表增增加字段段,示例例如下:altertabledepartment addphonevarchar2(10);altertabledepartment addmanager varchar2(10);使用ALTERTABLEDROP語句能夠

41、夠刪除刪刪除表中中不再需需要使用用的字段段。但是是注意不不能刪除除表中所所有的字字段,也也不能刪刪除SYS模式中任任何表中中的字段段。如果果僅需要要刪除一一個字段段,必須須在字段段名之前前指定COLUMN關(guān)鍵字。比如,下列語語句將刪刪除EMPLOYEES表中的AGE字段:altertableemployeesdropcolumnage;如果要在在一條語語句中刪刪除多個個字段,則需要要將刪除除的字段段名放在在括號中中,相互互間用逗逗號隔開開,并且且不能用用COLUMN關(guān)鍵字。比如:altertableemployeesdrop(age,sal);當刪除字字段時,如果該該表包含含了大量量數(shù)據(jù),那么

42、刪刪除列的的時間就就會很長長。如果果時間因因素必須須考慮,而字段段也不再再需要,那么你你可以先先將字段段標記為為UNUSED列,然后后在適當當時機刪刪除該列列的所有有數(shù)據(jù)。標記列列為UNUSED的方法如如下:altertableempset unusedcolumncomm.;當將列標標記為UNUSED之后,會會從數(shù)據(jù)據(jù)字典中中刪除該該列的信信息,并并且在查查看表結(jié)結(jié)構(gòu)時也也不會看看到該列列的信息息。但是是該列的的數(shù)據(jù)仍仍然存在在,如果果要刪除除UNUSED列的數(shù)據(jù)據(jù),則必必須執(zhí)行行如下語語句:altertableempdropunusedcolumnscheckpoint 1000;其中CH

43、ECKPOINT l000用于指定定每刪除除1000行發(fā)出一一次檢查查點,以以節(jié)省回回滾段的的空間使使用。2.修改表的的參數(shù)設設置在表創(chuàng)建建之后,可以使使用ALTERTABLE語句來改改變表的的塊參數(shù)數(shù)設置和和部分存存儲參數(shù)數(shù)設置。語法如如下:ALTERTABLEschema.table storage-clausePCTFREEintegerPCTUSEDintegerINITRANSintegerMAXTRANSinteger如,利用用下面的的語句可可以為EMPLOYEES表重新設設置PCTFREE和PCTUSED參數(shù):altertableemployeespctfree 30pctuse

44、d 60;在表創(chuàng)建建之后,不能再再對INITIAL存儲參數(shù)數(shù)進行修修改,但但是可以以修改其其他的存存儲參數(shù)數(shù)。altertableemployeesstorage (next512Kpctincrease0maxextents unlimited);3.重建表如果發(fā)現(xiàn)現(xiàn)一個表表的數(shù)據(jù)據(jù)段具有有不合理理的區(qū)分分配方式式,但是是又不能能通過別別的方法法來調(diào)整整(改變變存儲參參數(shù)不會會影響到到已經(jīng)分分配的區(qū)區(qū)),可可以考慮慮將該表表移到一一個新的的數(shù)據(jù)段段中。用用戶可以以為新的的數(shù)據(jù)段段重新設設置存儲儲參數(shù),以便符符合表的的存儲需需求。比如,利利用下面面的語句句可以將將EMPLOYEES表移動到到同

45、一個個表空間間的新數(shù)數(shù)據(jù)段中中:altertableemployeesmovestorage(initial20Knext 40Kminextents2maxextents20pctincrease0);新的數(shù)據(jù)據(jù)段可以以在原來來的表空空間中,也可以以在其他他的表空空間。比比如,利利用下面面的語句句可以將將EMPLOYEES表移動到到表空間間USERS02的新數(shù)據(jù)據(jù)段中:altertableemployeesmovetablespace users02storage(initial20Knext 40Kminextents2maxextents20pctincrease0);4.手工分配配和釋

46、放放空間默認情況況下,Oracle會根據(jù)存存儲參數(shù)數(shù)設置自自動為表表分配區(qū)區(qū)并計算算大小。若需要要指定大大小的區(qū)區(qū),則可可使用ALTERTABLEALLOCATEEXTENT語句以手手工方式式為表分分配存儲儲空間。通過手工工分配區(qū)區(qū),你可可指定區(qū)區(qū)的大小小,也可可控制將將區(qū)分布布到哪個個數(shù)據(jù)文文件上。另外當當執(zhí)行SQL*loader裝載數(shù)據(jù)據(jù)時,如如果表段段的空間間不足,則會導導致Oracle為表段動動態(tài)分配配空間,這樣會會降低數(shù)數(shù)據(jù)裝載載速度。為了避避免區(qū)的的動態(tài)分分配,應應該在執(zhí)執(zhí)行數(shù)據(jù)據(jù)裝載操操作前手手工為表表增加足足夠大的的區(qū)。示示例如下下:altertabledepartment a

47、llocate extent(size500Kdatafilee:testusers2.dbf);使用ALTERTABLE命令不僅僅可以為為表段分分配空間間,也可可以釋放放表上多多余的空空間。如如果表段段實際占占用空間間多于所所需空間間時,你你可以釋釋放其所所占用的的多余空空間。語語法如下下:ALTERTABLEschema.tableDEALLOCATE UNUSEDKEEPintegerK|MKEEP指定在高高水位標標記(已已經(jīng)使用用的存儲儲空間和和未使用用的存儲儲空間之之間的分分界線)以上應應該保留留的字節(jié)節(jié)數(shù)。如果使用用上述命命令時沒沒有KEEP子句,Oracle將回收高高水位標標記以

48、上上所有未未使用空空間。如如果高水水位標記記所在的的區(qū)小于于MINEXTENTS的值,則則Oracle釋放MINEXTENTS以上的區(qū)區(qū),既默默認情況況下釋放放剩余空空間后表表段的區(qū)區(qū)個數(shù)不不會低于于MINEXTENTS,而如果要要釋放MINEXTENTS下面的剩剩余空間間,需要要帶有KEEP 0選項。示示例如下下:altertabledepartment deallocateunused;5.分析表在Oracle中,利用用ANALYZE語句可以以對表、索引和和簇進行行分析,通過分分析可以以獲得關(guān)關(guān)于指定定對象的的狀態(tài)和和統(tǒng)計信信息,并并且能夠夠?qū)χ付ǘ▽ο蟮牡拇鎯Ω窀袷竭M行行驗證。驗證表的的

49、存儲結(jié)結(jié)構(gòu)在ANALYZE語句中使使用VALIDATESTRUCTURE子句,可可以在分分析過程程中對表表的存儲儲結(jié)構(gòu)的的完整性性進行驗驗證。通通過存儲儲結(jié)構(gòu)的的驗證,用戶可可以知道道表中是是否存在在損壞的的數(shù)據(jù)塊塊。如果果有損壞壞的數(shù)據(jù)據(jù)塊,則則需刪除除該表并并重建它它。在驗證表表的存儲儲結(jié)構(gòu)時時,Oracle會把表中中包含損損壞數(shù)據(jù)據(jù)塊的記記錄的ROWID插入到一一個名為為INVALID_ROWS的表中。對EMPLOYEES表進行結(jié)結(jié)構(gòu)驗證證分析示示例如下下:analyze table employeesvalidatestructure;然后可查查詢INVALID_ROWS表看是否否有損

50、壞壞的數(shù)據(jù)據(jù)塊。收集表的的統(tǒng)計信信息在ANALYZE語句中使使用COMPUTE STATISTICS子句或ESTIMATESTATISTICS子句可以以收集關(guān)關(guān)于表的的物理存存儲結(jié)構(gòu)構(gòu)和特性性的統(tǒng)計計信息,如表中中記錄的的總數(shù)和和記錄鏈鏈接的總總數(shù),已已使用的的數(shù)據(jù)塊塊總數(shù),未使用用的數(shù)據(jù)據(jù)塊總數(shù)數(shù),所有有記錄的的平均長長度等。比如,下面語語句對EMPLOYEES表進行精精確統(tǒng)計計信息:analyze table employeescompute statistics;而利用下下列語句句將通過過對200條記錄的的分析,獲得對對EMPLOYEES表的近似似統(tǒng)計信信息:analyze table

51、employeesestimatestatics;統(tǒng)計完后后,可查查詢USER_TABLE、ALL_TABLE和DBA_TABLE數(shù)據(jù)字典典視圖來來獲得分分析后的的統(tǒng)計信信息。查找表中中的鏈接接記錄和和遷移記記錄在ANALYZE語句中使使用LIST CHAINED_ROWS子句,可可以找出出表中的的鏈接記記錄和遷遷移記錄錄。Oracle將把表中中所有鏈鏈接記錄錄和遷移移記錄的的ROWID保存到一一個名為為CHAINED_ROWS的表中。比如,下面語語句對EMPLOYEES表進行鏈鏈接記錄錄分析:analyze table employeeslist chained_rows;6.重命名表表如果

52、要修修改表的的名稱,可以使使用RENAME語句對表表進行重重命名。用戶只只能對屬屬于自己己模式中中的表進進行重命命名。renameemployees to emp;7.1.4刪減表1.使用DELETE語句deletefromemployees;但是,用用DELETE刪除記錄錄后,Oracle不會回收收為表分分配的存存儲空間間,也無無法手工工回收,甚至高高水位標標記也都都不會改改變。DELETE通常只來來刪除表表中指定定的記錄錄,如果果刪除表表中的全全部記錄錄,一般般用TRUNCATE或DROP語句。2.使用DROP語句DROP語句不僅僅刪除了了表中所所有的記記錄,還還刪除了了表結(jié)構(gòu)構(gòu)。刪除除表

53、一般般是由表表的所有有者來完完成的,如果要要以其他他用戶身身份刪除除表,則則要求該該用戶必必須具有有DROP ANYTABLE系統(tǒng)權(quán)限限,示例例如下:drop table employeescascade constraints;其中,CASCADE CONSTRAINTS選項用于于指定級級聯(lián)刪除除。當表表與其他他表具有有主外鍵鍵關(guān)系時時,刪除除主表時時必須帶帶有該選選項。3.使用TRUNCATE語句當表結(jié)構(gòu)構(gòu)必須保保留,但但表數(shù)據(jù)據(jù)不再需需要時,可以使使用TRUNCATETABLE命令截斷斷表。當當執(zhí)行該該命令時時,會刪刪除表的的所有數(shù)數(shù)據(jù),并并釋放表表所占用用的空間間,但會會保留表表的結(jié)構(gòu)

54、構(gòu),具體體命令如如下:truncatetableemployees;7.1.5顯示表的的信息1.顯示用戶戶所包含含的表通過查詢詢數(shù)據(jù)字字典DBA_TABLES、USER_TABLES可以取得得表的信信息,其其中DBA_TABLES可用于顯顯示所有有用戶表表的信息息,而USER_TABLES則可以顯顯示當前前用戶表表的信息息,示例例如下:selecttable_namefromdba_tableswhereowner=DEVEP;2.顯示表的的存儲參參數(shù)設置置當建立表表時,可可以指定定表段的的存儲參參數(shù)、塊塊空間使使用參數(shù)數(shù)、并行行度、日日志屬性性以及CACHE屬性等。通過查查詢數(shù)據(jù)據(jù)字典USE

55、R_TABLES,可以取得得相應屬屬性信息息,示例例如下:selectpct_free, pct_used,degree, cache fromuser_tableswheretable_name=EMPLOYEES;3.顯示表段段所在表表空間及及尺寸當建立表表時,Oracle會自動為為表分配配相應的的表段,表段的的名稱與與表的名名稱完全全一致,并且該該表的所所有數(shù)據(jù)據(jù)都會存存放在相相應表段段中。那那么如何何取得段段信息呢呢?通過查詢詢數(shù)據(jù)字字典DBA_SEGMENTS或USER_SEGMENTS可以取得得段信息息,其中中DBA_SEGMENTS用于顯示示數(shù)據(jù)庫庫所有段段的信息息,而USER_

56、SEGMENTS則用于顯顯示當前前用戶段段的信息息,示例例如下:selecttablespace_name,bytes fromuser_segmentswheresegment_name=DEPARTMENT;4.顯示表數(shù)數(shù)據(jù)占用用的實際際空間以以及剩余余空間當建立表表時,Oracle會為表分分配相應應的表段段。當在在表上執(zhí)執(zhí)行INSERT操作時,Oracle會將數(shù)據(jù)據(jù)放到表表段的相相應數(shù)據(jù)據(jù)塊上。那么如如何取得得表數(shù)據(jù)據(jù)占用的的實際空空間以及及剩余空空間呢?通過查詢詢數(shù)據(jù)字字典USER_TABLES可以取得得這些信信息,但但查詢之之前必須須首先收收集統(tǒng)計計。示例例如下:analyze ta

57、bleempcomputestatics;selectblocks,empty_blocksfromuser_tableswheretable_name=EMP;其中BLOCKS對應于數(shù)數(shù)據(jù)已占占用的實實際塊個個數(shù),而而EMPTY_BLOCKS則對應于于剩余塊塊個數(shù)。5.顯示區(qū)信信息當建立表表時,Oracle會為表建建立相應應的表段段。段邏邏輯上又又是由一一個或多多個區(qū)組組成的,而區(qū)又又是由相相鄰的數(shù)數(shù)據(jù)塊所所組成的的,那么么如何確確定段包包含哪些些區(qū),以以及區(qū)的的位置及及尺寸呢呢?通過查詢詢數(shù)據(jù)字字典DBA_EXTENTS,可以顯示示區(qū)的詳詳細信息息,示例例如下:selectextent_i

58、d,file_id,block_id,blocksfrom dba_extentswhereowner=DEVEP andsegment_name=DEPT;其中,extent_id為區(qū)編號號,file_id為區(qū)所在在文件號號,block_id為區(qū)的初初始數(shù)據(jù)據(jù)塊號,blocks為區(qū)所包包含的數(shù)數(shù)據(jù)塊個個數(shù)。6.顯示行所所在的實實際位置置執(zhí)行INSERT操作時,服務器器進程會會將數(shù)據(jù)據(jù)插入到到表段的的相應數(shù)數(shù)據(jù)塊中中,并且且Oracle會生成惟惟一的ROWID對應于該該行數(shù)據(jù)據(jù)。但用用戶無法法直接讀讀懂ROWID,通過使用用DBMS_ROWID包可以顯顯示行所所在數(shù)據(jù)據(jù)文件、數(shù)據(jù)塊塊位置以以及

59、行位位置,如如下所示示:selectdeptno,dname,dbms_rowid.rowid_relative_fno(ROWID)file#,dbms_rowid.rowid_block_number(ROWID)block#,dbms_rowid.rowid_row_number(ROWID) row#from dept;7.2管理索引引索引的作作用索引是與與表和簇簇相關(guān)的的一種數(shù)數(shù)據(jù)庫對對象,它它的作用用類似于于書中的的目錄。在沒有有目錄的的情況下下,要在在書中查查找指定定的內(nèi)容容必須通通讀全書書,而有有了目錄錄之后,只需要要通過目目錄就可可以快速速地找到到包含所所需內(nèi)容容的頁。合理地

60、地使用索索引可以以降低磁磁盤I/O操作次數(shù)數(shù),從而而提高表表的訪問問性能。ROWID在empno列上無索索引在empno列上存在在索引select*from empwhereempno=7788假定表EMP數(shù)據(jù)占用用了1000個數(shù)據(jù)塊塊,如果果在EMPNO列上不存存在索引引,那么么當執(zhí)行行“select*from empwhereempno=7788”時需要掃掃描表的的所有數(shù)數(shù)據(jù)塊,也就是是說需要要1000次I/O操作;如如果在EMPNO列上存在在索引,并假定定索引層層次為2,那么當當執(zhí)行“select*from empwhereempno=7788”時,在檢檢索了3個索引塊塊后就可可以定位位

溫馨提示

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

評論

0/150

提交評論