版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、一、基礎(chǔ)概念歹0舉幾種表連接方式Answer:等連接(內(nèi)連接)、非等連接、自連接、外連接(左、右、全)Orhashjoin/mergejoin/nestloop(clusterjoin)/indexjoin?ORACLE8i9i表連接方法。一般的相等連接:select*froma,bwhere=;這個(gè)就屆于內(nèi)連接。對于外連接:Oracle中可以使用“(+)來表示,9i可以使用LEFT/RIGHT/FULLOUTERJOINLEFTOUTERJOIN外關(guān)聯(lián)SELECT,FROMemployeeseLEFTOUTERJOINdepartmentsdON=;等價(jià)于SELECT,FROMemploye
2、ese,departmentsdWHERE=(+)結(jié)果為:所有員工及對應(yīng)部門的記錄,包括沒有對應(yīng)部門編號(hào)department_id的員工記錄。RIGHTOUTERJOIN&外關(guān)聯(lián)SELECT,FROMemployeeseRIGHTOUTERJOINdepartmentsdON等價(jià)于SELECT,FROMemployeese,departmentsdWHERE(+)=結(jié)果為:所有員工及對應(yīng)部門的記錄,包括沒有任何員工的部門記錄。FULLOUTERJO阮夕卜關(guān)聯(lián)SELECT,FROMemployeeseFULLOUTERJOINdepartmentsdON=;結(jié)果為:所有員工及對應(yīng)部門的記
3、錄,包括沒有對應(yīng)部門編號(hào)department_id的員工記錄和沒有任何員工的部門記錄。ORACLE8是不直接支持完全外連接的語法,也就是說不能在左右兩個(gè)表上同時(shí)加上(+),下面是在ORACLE8可以參考的完全外連接語法select,fromtable1t1,tablet2where=(+)unionselect,fromtable1t1,tablet2where(+)=連接類型定義圖示例子內(nèi)連接只連接匹配的行select,fromAjoinBon=;左外連接包含左邊表的全部行(不管右邊的表中是否存在與它們匹配的行)以及右邊表中全部匹配的行select,fromAleftjoinBon=;右外連
4、接包含右邊表的全部行(不管左邊的表中是否存在與它們匹配的行)以及左邊表中全部匹配的行select,fromArightjoinBon=;全外連接包含左、右兩個(gè)表的全部行,不管在另一邊的表中是否存在與它們匹配的行select,fromAfulljoinBon=;(theta)連接使用等值以外的條件來匹配左、右兩個(gè)表中的行select,fromAjoinBon!=;交義連接生成笛卡爾積一一它不使用任何匹配或者選取條件,而是直接將一個(gè)數(shù)據(jù)源中的每個(gè)行與另一個(gè)數(shù)據(jù)源的每個(gè)行一一匹配select,fromA,B;不借助第三方工具,怎樣查看sql的執(zhí)行計(jì)劃使用ExplainPlan查詢PLAN_TABLE
5、;EXPLAINPLANSETSTATEMENT_ID'=QUERY'1FORSELECT*FROMaWHEREaa=1;SELECToperation,options,object_name,object_type,ID,parent_idFROMplan_tableWHERESTATEMENT_ID='QUERY'1ORDERBYID;SQLPLU驢的SETTRAC的可看到ExecutionPlanStatisticsSETAUTOTRACEON;如何使用CBO,CBgRULE的區(qū)別IF初始化參數(shù)OPTIMIZER_MODE=CHOOSETHENDEFAUL
6、T)IF做過表分析THEN優(yōu)化器Optimizer=CBO(COST);臨效*/ELSE優(yōu)化器Optimizer=RBO(RULE);商效*/ENDIF;ENDIF;區(qū)別:RBO根據(jù)規(guī)則選擇最佳執(zhí)行路徑來運(yùn)行查詢。CBO根據(jù)表統(tǒng)計(jì)找到最低成本的訪問數(shù)據(jù)的方法確定執(zhí)行計(jì)劃。使用CBO需要注意:I)需要經(jīng)常對表進(jìn)行ANALYZ命令進(jìn)行分析統(tǒng)計(jì);II)需要穩(wěn)定執(zhí)行計(jì)劃;III)需要使用提示(Hint);使用RULER要注意:I)選擇最有效率的表名順序II)優(yōu)化SQL的寫法;在optimizer_mode=choose時(shí),如果表有統(tǒng)計(jì)信息(分區(qū)表外),優(yōu)化器將選擇CBO,否則選RBQRBO遵循簡單的分
7、級(jí)方法學(xué),使用15種級(jí)別要點(diǎn),當(dāng)接收到查詢,優(yōu)化器將評估使用到的要點(diǎn)數(shù)目,然后選擇最佳級(jí)別(最少的數(shù)量)的執(zhí)行路徑來運(yùn)行查詢。CBO嘗試找到最低成本的訪問數(shù)據(jù)的方法,為了最大的吞吐量或最快的初始響應(yīng)時(shí)間,計(jì)算使用不同的執(zhí)行計(jì)劃的成本,并選擇成本最低的一個(gè),關(guān)于表的數(shù)據(jù)內(nèi)容的統(tǒng)計(jì)被用于確定執(zhí)行計(jì)劃。如何定位重要(消耗資源多)的SQL使用CPU多的用戶sessionSELECT,spid,status,SUBSTR,1,40)prog,osuser,VALUE/60/100VALUEFROMv$sessiona,v$processb,v$sesstatcWHERE#=12AND=AND=ORDER
8、BYVALUEDESC;selectsql_textfromv$sqlwheredisk_reads>1000or(executions>0andbuffer_gets/executions>30000);如何跟蹤某個(gè)session的SQL利用TRACE跟蹤ALTERSESSIONSETSQLTRACEON;COLUMNSQLformata200;SELECTmachine,sql_textSQLFROMv$sqltexta,v$sessionbWHEREaddress=sql_addressANDmachine='&A'ORDERBYhash_val
9、ue,piece;exec(sid,serial#,&sql_trace);selectsid,serial#fromv$sessionwheresid=(selectsidfromv$mystatwhererownum=1);exec(&sid,&serial#,&event_10046,&level_12,");SQL調(diào)整最關(guān)注的是什么檢查系統(tǒng)的I/O問題sard能檢查整個(gè)系統(tǒng)的iostat(IOstatistics)查看該SQL的responsetime(dbblockgets/consistentgets/physicalreads/s
10、orts(disk)說說你對索引的認(rèn)識(shí)(索引的結(jié)構(gòu)、對dml影響、對查詢影響、為什么提高查詢性能)索引有B-TREEBITCLUSTE簿類型。ORACL收用了一個(gè)復(fù)雜的自平衡B-tree結(jié)構(gòu);通常來說,在表上建立恰當(dāng)?shù)乃饕?,查詢時(shí)會(huì)改進(jìn)查詢性能。但在進(jìn)行插入、刪除、修改時(shí),同時(shí)會(huì)進(jìn)行索引的修改,在性能上有一定的影響。有索引且查詢條件能使用索引時(shí),數(shù)據(jù)庫會(huì)先度取索引,根據(jù)索引內(nèi)容和查詢條件,查詢出ROWID,再根據(jù)ROWID。出需要的數(shù)據(jù)。由于索引內(nèi)容通常比全表內(nèi)容要少很多,因此通過先讀索引,能減少I/O,提高查詢性能。b-treeindex/bitmapindex/functionindex/
11、patitionalindex(local/global)索弓I通常能提高select/update/delete的性能,會(huì)降低insert的速度,使用索引查詢一定能提高查詢的性能嗎為什么通常,通過索引查詢數(shù)據(jù)比全表掃描要快.但是我們也必須注意到它的代價(jià).索引需要空間來存儲(chǔ),也需要定期維護(hù),每當(dāng)有記錄在表中增減或索引列被修改時(shí),索引本身也會(huì)被修改.這意味著每條記錄的INSERT,DELETE,UPDA»此多付出4,5次的磁盤I/O.因?yàn)樗饕枰~外的存儲(chǔ)空間和處理,那些不必要的索引反而會(huì)使查詢反應(yīng)時(shí)間變慢.使用索引查詢不一定能提高查詢性能,索引范圍查詢(INDEXRANGESCAN用
12、于兩種情況:1. 基于一個(gè)范圍的檢索,一般查詢返回結(jié)果集小于表中記錄數(shù)的30%宜采用;基于非唯一性索引的檢索索引就是為了提高查詢性能而存在的,如果在查詢中索引沒有提高性能,只能說是用錯(cuò)了索引,或者講是場合不同綁定變量是什么綁定變量有什么優(yōu)缺點(diǎn)?綁定變量是指在SQL語句中使用變量,改變變量的值來改變SQL語句的執(zhí)行結(jié)果。優(yōu)點(diǎn):使用綁定變量,可以減少SQL語句的解析,能減少數(shù)據(jù)庫引擎消耗在SQL語句解析上的資源。提高了編程效率和可靠性。減少訪問數(shù)據(jù)庫的次數(shù),就能實(shí)際上減少ORACLE勺工作量。缺點(diǎn):經(jīng)常需要使用動(dòng)態(tài)SQL的寫法,由于參數(shù)的不同,可能SQL的執(zhí)行效率不同;綁定變量是相對文本變量來講的
13、,所謂文本變量是指在SQL直接書寫查詢條件,這樣的SQL在不同條件下需要反復(fù)解析,綁定變量是指使用變量來代替直接書寫條件,查詢bindvalue在運(yùn)行時(shí)傳遞,然后綁定執(zhí)行。優(yōu)點(diǎn)是減少硬解析,降低CPU的爭用,節(jié)省shared_pool缺點(diǎn)是不能使用histogram,sql優(yōu)化比較困難如何穩(wěn)定(固定)執(zhí)行計(jì)劃可以在SQL語句中指定執(zhí)行計(jì)劃。使用HINTS;query_rewrite_enabled=truestar_transformation_enabled=trueoptimizer_features_enable=創(chuàng)建并使用storedoutline和排序相關(guān)的內(nèi)存在8i和9i分別怎樣調(diào)
14、整,臨時(shí)表空間的作用是什么SORT_AREA_SIZE進(jìn)行排序操作時(shí),如果排序的內(nèi)容太多,內(nèi)存里不能全部放下,則需要進(jìn)行外部排序,此時(shí)需要利用臨時(shí)表空間來存放排序的中間結(jié)果。8i中sort_area_size/sort_area_retained_size決定了排序所需要的內(nèi)存,如果排序操作不能在sort_area_size巾完成,生用到temp表空間9i中如果workarea_size_policy=auto時(shí),排序在pga內(nèi)進(jìn)行,通常pga_aggregate_target的1/20可以用來進(jìn)行disksort;如果workarea_size_policy=manual時(shí),排序需要的內(nèi)存由
15、sort_area_size決定,在執(zhí)行orderby/groupby/distinct/union/createindex/indexrebuild/minus等操作H寸,如果在pga僉sort_area_size中不能完成,排序?qū)⒃谂R時(shí)表空間進(jìn)行(disksort),臨時(shí)表空間主要作用就是完成系統(tǒng)中的disksort.存在表T(a,b,c,d)安根據(jù)字段c排序后取第213。條記錄顯示,請給出sqlSELECT*FROM(SELECTROWNUMASrow_num,tmp_tab.*FROM(SELECTa,b,c,dFROMTORDERBYc)tmp_tabWHEREROWNUM<=
16、30)WHERErow_num>=20ORDERBYrow_num;createtablet(anumber(,bnumber(,cnumber(,dnumber();beginforiin1.300loopinsertintotvalues(mod(i,2),i/2,(1,300),i/4);endloop;end;/select*from(selectc.*,rownumasrnfrom(select*fromtorderbycdesc)c)wherernbetween21and30;/select*from(select*fromtestorderbycdesc)xwhererow
17、num<30minusselect*from(select*fromtestorderbycdesc)ywhererownum<20orderby3desc相比之minus性能較差二:數(shù)據(jù)庫基本概念類Pctusedandpctfree表示什么含義有什么作用pctused與pctfree控制數(shù)據(jù)塊是否出現(xiàn)在freelist中,pctfree控制數(shù)據(jù)塊中保留用于update的空間,當(dāng)數(shù)據(jù)塊中的freespace小于pctfree設(shè)置的空間時(shí),該數(shù)據(jù)塊從freelist中去掉,當(dāng)塊由于dml操作freespace大于pct_used設(shè)置的空間時(shí),該數(shù)據(jù)庫塊將被添加在freelist鏈表中
18、。簡單描述tablespace/segment/extent/block之間的關(guān)系tablespace:一個(gè)數(shù)據(jù)庫劃分為一個(gè)或多個(gè)邏輯單位,該邏輯單位成為表空間;每一個(gè)表空間可能包含一個(gè)或多個(gè)Segment;Segments:Segment在tablespace中為特定邏輯存儲(chǔ)結(jié)構(gòu)分配的空間。每一個(gè)段是由一個(gè)或多個(gè)extent組成。包括數(shù)據(jù)段、索引段、回滾段和臨時(shí)段。Extents:一個(gè)extent由一系歹0連續(xù)的Oracleblocks組成.ORACLE通過extent來給segment分配空間。DataBlocksOracle數(shù)據(jù)庫最小的I/O存儲(chǔ)單位,一個(gè)datablock對應(yīng)一個(gè)或多個(gè)
19、分配給datafile的操作系統(tǒng)塊。table倉U建時(shí),默認(rèn)倉U建了個(gè)datasegment,每個(gè)datasegment含有minextents指定的extents數(shù),每個(gè)extent據(jù)據(jù)表空間的存儲(chǔ)參數(shù)分配一定數(shù)量的blocks3描述tablespace和datafile之間的關(guān)系一個(gè)表空間可包含一個(gè)或多個(gè)數(shù)據(jù)文件。表空間利用增加或擴(kuò)展數(shù)據(jù)文件擴(kuò)大表空間,表空間的大小為組成該表空間的數(shù)據(jù)文件大小的和。一個(gè)datafile只能屆于一個(gè)表空間;一個(gè)tablespace可以有一個(gè)或多個(gè)datafile,每個(gè)datafile只能在一個(gè)tablespace內(nèi),table中的數(shù)據(jù),通過hash算法分布在
20、tablespace中的各個(gè)datafile中,tablespace是邏輯上的概念,datafile則在物理上儲(chǔ)存了數(shù)據(jù)庫的種種對象。4本地管理表空間和字典管理表空間的特點(diǎn),ASSM有什么特點(diǎn)本地管理表空間:(9i默認(rèn))空閑塊列表存儲(chǔ)在表空間的數(shù)據(jù)文件頭。特點(diǎn):減少數(shù)據(jù)字典表的競爭,當(dāng)分配和收縮空間時(shí)會(huì)產(chǎn)生回滾,不需要合并。字典管理表空間:(8i默認(rèn))空閑塊列表存儲(chǔ)在數(shù)據(jù)庫中的字典表里.特點(diǎn):片由數(shù)據(jù)字典管理,可能造成字典表的爭用。存儲(chǔ)在表空間的每一個(gè)段都會(huì)有不同的存儲(chǔ)字句,需要合并相鄰的塊;本地管理表空間(LocallyManagedTablespace®稱LMT)8i以后出現(xiàn)的一
21、種新的表空間的管理模式,通過位圖來管理表空間的空間使用。字典管理表空間(Dictionary-ManagedTablespace稱DMT)8i以前包括以后都還可以使用的一種表空間管理模式,通過數(shù)據(jù)字典管理表空間的空間使用。動(dòng)段空間管理(ASSM,它首次出現(xiàn)在Oracle920里有了ASSM鏈接列表freelist被位圖所取代,它是一個(gè)二進(jìn)制的數(shù)組,能夠迅速有效地管理存儲(chǔ)擴(kuò)展和剩余區(qū)塊(freeblock),因此能夠改善分段存儲(chǔ)本質(zhì),ASSM表空間上創(chuàng)建的段還有另外一個(gè)稱呼叫BitmapManagedSegments(BMB段)。5回滾段的作用是什么回滾段用于保存數(shù)據(jù)修改前的映象,這些信息用于生
22、成讀一致性數(shù)據(jù)庫信息、在數(shù)據(jù)庫恢復(fù)和Rollback時(shí)使用。一個(gè)事務(wù)只能使用一個(gè)回滾段。事務(wù)回滾:當(dāng)事務(wù)修改表中數(shù)據(jù)的時(shí)候,該數(shù)據(jù)修改前的值(即前影像)會(huì)存放在回滾段中,當(dāng)用戶回滾事務(wù)(ROLLBACK時(shí),ORACLE會(huì)利用回滾段中的數(shù)據(jù)前影像來將修改的數(shù)據(jù)恢復(fù)到原來的值。事務(wù)恢復(fù):當(dāng)事務(wù)正在處理的時(shí)候,例程失敗,回滾段的信息保存在und。表空間中,ORACLE務(wù)在下次打開數(shù)據(jù)庫時(shí)利用回滾來恢復(fù)未提交的數(shù)據(jù)。讀一致性:當(dāng)一個(gè)會(huì)話正在修改數(shù)據(jù)時(shí),其他的會(huì)話將看不到該會(huì)話未提交的修改。當(dāng)一個(gè)語句正在執(zhí)行時(shí),該語句將看不到從該語句開始執(zhí)行后的未提交的修改(語句級(jí)讀一致性)當(dāng)ORACLE行SELECT
23、句時(shí),ORACLE照當(dāng)前的系統(tǒng)改變號(hào)(SYSTEMCHANGENUMBER-SCN來保證任何前于當(dāng)前SCN的未提交的改變不被該語句處理??梢韵胂螅寒?dāng)一個(gè)長時(shí)間的查詢正在執(zhí)行時(shí),若其他會(huì)話改變了該查詢要查詢的某個(gè)數(shù)據(jù)塊,ORACLE務(wù)利用回滾段的數(shù)據(jù)前影像來構(gòu)造一個(gè)讀一致性視圖6日志的作用是什么日志文件(LogFiQ記錄所有對數(shù)據(jù)庫數(shù)據(jù)的修改,主要是保護(hù)數(shù)據(jù)庫以防止故障,以及恢復(fù)數(shù)據(jù)時(shí)使用。其特點(diǎn)如下:a)每一個(gè)數(shù)據(jù)庫至少包含兩個(gè)日志文件組。每個(gè)日志文件組至少包含兩個(gè)日志文件成員。b)日志文件組以循環(huán)方式進(jìn)行寫操作。c)每一個(gè)日志文件成員對應(yīng)一個(gè)物理文件。記錄數(shù)據(jù)庫事務(wù),最大限度地保證數(shù)據(jù)的一致
24、性與安全性重做日志文件:含對數(shù)據(jù)庫所做的更改記錄,這樣萬一出現(xiàn)故障可以啟用數(shù)據(jù)恢復(fù),一個(gè)數(shù)據(jù)庫至少需要兩個(gè)重做日志文件歸檔日志文件:是重做日志文件的脫機(jī)副本,這些副本可能對于從介質(zhì)失敗中進(jìn)行恢復(fù)很必要。7SGA主要有那些部分,主要作用是什么系統(tǒng)全局區(qū)(SGA:是ORACLED實(shí)例分配的一組共享緩沖存儲(chǔ)區(qū),用于存放數(shù)據(jù)庫數(shù)據(jù)和控制信息,以實(shí)現(xiàn)對數(shù)據(jù)庫數(shù)據(jù)的管理和操作。SGA±要包括:a)共享池(sharedpool):用來存儲(chǔ)最近執(zhí)行的SQL語句和最近使用的數(shù)據(jù)字典的數(shù)據(jù)。b) 數(shù)據(jù)緩沖區(qū)(databasebuffercache)用來存儲(chǔ)最近從數(shù)據(jù)文件中讀寫過的數(shù)據(jù)。c) 重作日志緩沖
25、區(qū)(redologbuffer):用來記錄服務(wù)或后臺(tái)進(jìn)程對數(shù)據(jù)庫的操作。另外在SGA中還有兩個(gè)可選的內(nèi)存結(jié)構(gòu):d) Javapool:用來存儲(chǔ)Java代碼。e) Largepool:用來存儲(chǔ)不與SQL直接相關(guān)的大型內(nèi)存結(jié)構(gòu)。備份、恢復(fù)使用。GA:db_cache/shared_pool/large_pool/java_pooldb_cache:數(shù)據(jù)庫緩存(BlockBuffer)對于Oracle數(shù)據(jù)庫的運(yùn)轉(zhuǎn)和性能起著非常關(guān)延的作用,它占據(jù)Oracle數(shù)據(jù)庫SGA(系統(tǒng)共享內(nèi)存區(qū))的主要部分。Oracle數(shù)據(jù)庫通過使用LRU算法,將最近訪問的數(shù)據(jù)塊存放到緩存中,從而優(yōu)化對磁盤數(shù)據(jù)的訪問.shar
26、ed_pool:共享池的大小對于Oracle性能來說都是很重要的。共享池中保存數(shù)據(jù)字項(xiàng)高速緩沖和完全解析或編譯的的PL/SQL塊和SQL語句及控制結(jié)構(gòu)large_pool:使用MTS配置時(shí),因?yàn)橐赟GA中分配UGA來保持用戶的會(huì)話,就是用Large_pool來保持這個(gè)會(huì)話內(nèi)存使用RMAN做備份的時(shí)候,要使用Large_pool這個(gè)內(nèi)存結(jié)構(gòu)來做磁盤I/O緩存器java_pool:為javaprocedure預(yù)備的內(nèi)存區(qū)域,如果沒有使用javaproc,java_pool不展須的-8Oracle系統(tǒng)進(jìn)程主要有哪些,作用是什么數(shù)據(jù)寫進(jìn)程(DBWR)負(fù)責(zé)將更改的數(shù)據(jù)從數(shù)據(jù)庫緩沖區(qū)高速緩存寫入數(shù)據(jù)文件
27、日志寫進(jìn)程(LGWR)將重做日志緩沖區(qū)中的更改寫入在線重做日志文件系統(tǒng)監(jiān)控(SMON):檢查數(shù)據(jù)庫的一致性如有必要還會(huì)在數(shù)據(jù)庫打開時(shí)啟動(dòng)數(shù)據(jù)庫的恢復(fù)進(jìn)程監(jiān)控(PMON):負(fù)責(zé)在一個(gè)Oracle進(jìn)程失敗時(shí)活理資源檢查點(diǎn)進(jìn)程(CKPT)負(fù)責(zé)在每當(dāng)緩沖區(qū)高速緩存中的更改永久地記錄在數(shù)據(jù)庫中時(shí),更新控制文件和數(shù)據(jù)文件中的數(shù)據(jù)庫狀態(tài)信息。歸檔進(jìn)程(ARCH)在每次日志切換時(shí)把已滿的日志組進(jìn)行備份或歸檔恢復(fù)進(jìn)程(RECO):保證分布式事務(wù)的一致性,在分布式事務(wù)中,要么同時(shí)commit,要么同時(shí)rollback;作業(yè)調(diào)度器(CJQ):負(fù)責(zé)將調(diào)度與執(zhí)行系統(tǒng)中已定義好的job,完成一些預(yù)定義的工作.三:備份恢復(fù)
28、類1備份如何分類邏輯備份:exp/imp指定表的邏輯備份物理備份:熱備份:altertablespacebegin/endbackup;冷備份:脫機(jī)備份(databaseshutdown)RMAN備份fullbackup/incrementalbackup(累積/差異)物理備份物理備份是最主要的備份方式。用于保證數(shù)據(jù)庫在最小的數(shù)據(jù)庫丟失或沒有數(shù)據(jù)丟失的情況下得到恢復(fù)。冷物理冷物理備份提供了最簡單和最直接的方法保護(hù)數(shù)據(jù)庫因物理損壞丟失。建議在以下幾種情況中使用。對一個(gè)已經(jīng)存在大最數(shù)據(jù)量的數(shù)據(jù)庫,在晚間數(shù)據(jù)庫可以關(guān)閉,此時(shí)應(yīng)用冷物理備份。對需對數(shù)據(jù)庫服務(wù)器進(jìn)行升級(jí),(如更換硬盤),此時(shí)需要備份數(shù)據(jù)
29、庫信息,并在新的硬盤中恢復(fù)這些數(shù)據(jù)信息,建議采用冷物理備份。熱物理主要是指備份過程在數(shù)據(jù)庫打開并且用戶可以使用的情況下進(jìn)行。需要執(zhí)行熱物理備份的情況有:由于數(shù)據(jù)庫性質(zhì)要求不問斷工作,因而此時(shí)只能采用熱物理備份。由于備份的要求的時(shí)間過長,而數(shù)據(jù)庫只能短時(shí)間關(guān)閉時(shí)。邏輯備份(EXP/IMP)邏輯備份用于實(shí)現(xiàn)數(shù)據(jù)庫對象的恢復(fù)。但不是基于時(shí)間點(diǎn)可完全恢復(fù)的備份策略。只能作為聯(lián)機(jī)備份和脫機(jī)備份的一種補(bǔ)充。完全邏輯備份完全邏輯備份是將整個(gè)數(shù)據(jù)庫導(dǎo)出到一個(gè)數(shù)據(jù)庫的格式文件中,該文件可以在不同的數(shù)據(jù)庫版本、操作系統(tǒng)和硬件平臺(tái)之間進(jìn)行移植。指定表的邏輯備份通過備份工具,可以將指定的數(shù)據(jù)庫表備份出來,這可以避免完
30、全邏輯備份所帶來的時(shí)間和財(cái)力上的浪費(fèi)。2歸檔是什么含義關(guān)于歸檔日志:Oracle要將填滿的在線日志文件組歸檔時(shí),則要建立歸檔日志(archivedredolog)。其對數(shù)據(jù)庫備份和恢復(fù)有下歹U用處:數(shù)據(jù)庫后備以及在線和歸檔日志文件,在操作系統(tǒng)和磁盤故障中可保證全部提交的事物可被恢復(fù)。在數(shù)據(jù)庫打開和正常系統(tǒng)使用下,如果歸檔日志是永久保存,在線后備可以進(jìn)行和使用。數(shù)據(jù)庫可運(yùn)行在兩種不同方式下:NOARCHIVELO因式或ARCHIVELOGJ式數(shù)據(jù)庫在NOARCHIVELO式下使用時(shí),不能進(jìn)行在線日志的歸檔,數(shù)據(jù)庫在ARCHIVELOG*式下運(yùn)行,可實(shí)施在線日志的歸檔歸檔是歸檔當(dāng)前的聯(lián)機(jī)redo日
31、志文件。SVRMGR>altersystemarchivelogcurrent;數(shù)據(jù)庫只有運(yùn)行在ARCHIVELOG!式下,并且能夠進(jìn)行自動(dòng)歸檔,才可以進(jìn)行聯(lián)機(jī)備份。有了聯(lián)機(jī)備份才有可能進(jìn)行完全恢復(fù)。3如果一個(gè)表在2004-08-0410:30:00被drop,在有完善的歸檔和備份的情況下,如何恢復(fù)9i新增的FLASHBACK該可以;Logminer應(yīng)該可以找出DML。有完善的歸檔和備份,先歸檔當(dāng)前數(shù)據(jù),然后可以先恢復(fù)到刪除的時(shí)間點(diǎn)之前,把DROP的表導(dǎo)出來,然后再恢復(fù)到最后歸檔時(shí)間;手工拷貝回所有備份的數(shù)據(jù)文件Sqlstartupmount;sql>alterdatabasere
32、coverautomaticuntiltime-08-04:10230040';sql>alterdatabaseopenresetlogs;rman是什么,有何特點(diǎn)RMAN(RecoveryManage混DBA的一個(gè)重要工具,用于備份、還原和恢復(fù)oracle數(shù)據(jù)庫,RMAN可以用來備份和恢復(fù)數(shù)據(jù)庫文件、歸檔日志、控制文件、系統(tǒng)參數(shù)文件,也可以用來執(zhí)行完全或不完全的數(shù)據(jù)庫恢復(fù)。RMAN有三種不同的用戶接口:COMMANDLINE式、GUI方式(集成在OEM中的備份管理器)、API方式(用于集成到第三方的備份軟件中)。具有如下特點(diǎn):1)功能類似物理備份,但比物理備份強(qiáng)大N倍;2)可
33、以壓縮空塊;3)可以在塊水平上實(shí)現(xiàn)增量;4)可以把備份的輸出打包成備份集,也可以按固定大小分割備份集;5)備份與恢復(fù)的過程可以自動(dòng)管理;6)可以使用腳本(存在Recoverycatalog中)7)可以做壞塊監(jiān)測standby的特點(diǎn)備用數(shù)據(jù)庫(standbydatabase:ORACLE隹出的一種高可用性(HIGHAVAILABLE)數(shù)據(jù)庫方案,在主節(jié)點(diǎn)與備用節(jié)點(diǎn)間通過日志同步來保證數(shù)據(jù)的同步,備用節(jié)點(diǎn)作為主節(jié)點(diǎn)的備份,可以實(shí)現(xiàn)快速切換與災(zāi)難性恢復(fù),從920開始,還開始支持物理與邏輯備用服務(wù)器。9i中的三種數(shù)據(jù)保護(hù)模式分別是:1)、MAXIMIZEPROTECTION最大數(shù)據(jù)保護(hù)與無數(shù)據(jù)分歧,L
34、GWR將同時(shí)傳送到總用節(jié)點(diǎn),在主節(jié)點(diǎn)事務(wù)確認(rèn)之前,備用節(jié)點(diǎn)也必須完全收到日志數(shù)據(jù)。如果網(wǎng)絡(luò)不好,引起LGWR不能傳送數(shù)據(jù),將引起嚴(yán)重的性能問題,導(dǎo)致主節(jié)點(diǎn)DOWN機(jī)。2) 、MAXIMIZEAVAILABILITY無數(shù)據(jù)丟失模式,允許數(shù)據(jù)分歧,允許異步傳送。正常情況下運(yùn)行在最大保護(hù)模式,在主節(jié)點(diǎn)與備用節(jié)點(diǎn)的網(wǎng)絡(luò)斷開或連接不正常時(shí),自動(dòng)切換到最大性能模式,主節(jié)點(diǎn)的操作還是可以繼續(xù)的。在網(wǎng)絡(luò)不好的情況下有較大的性能影響。、MAXIMIZEPERFORMANC眨種模式應(yīng)當(dāng)可以說是從8i繼承過來的備用服務(wù)器模式,異步傳送,無數(shù)據(jù)同步檢查,可能丟失數(shù)據(jù),但是能獲得主節(jié)點(diǎn)的最大性能。9i在配置DATAGU
35、ARD勺時(shí)候默認(rèn)就是MAXIMIZEPERFORMANCE6對于一個(gè)要求恢復(fù)時(shí)間比較短的系統(tǒng)(數(shù)據(jù)庫50G,每天歸檔5G),你如何設(shè)計(jì)備份策略數(shù)據(jù)庫比較大邏輯備份沒什么必要,每天歸檔5G,每周三/周六自動(dòng)歸檔10G,每月RMAN歸檔全庫。應(yīng)該有standby。1. rman/每月一號(hào)level0每周末/周三level1其它每天level2四:系統(tǒng)管理類對于一個(gè)存在系統(tǒng)性能的系統(tǒng),說出你的診斷處理思路做statspack收集系統(tǒng)相關(guān)信息了解系統(tǒng)大致情況/確定是否存在參數(shù)設(shè)置不合適的地方/查看top5event/查看topsql等查v$system_event/v$session_event/v$
36、session_wait從v$system_event開始,確定需要什么資源(dbfilesequentialread)等,深入研究v$session_event確定等待事件涉及的會(huì)話,從v$session_wait確定詳細(xì)的資源爭用情況(p1-p3的值:file_id/block_id/blocks等)通過v$sql/v$sqltext/v$sqlarea表確定disk_reads、(buffer_gets/executions)值較大的SQL列舉幾種診斷IO、CPU性能狀況的方法topuptimevmstatiostatstatspacksql_trace/tkprof查v$system_
37、event/v$session_event/v$session_wait查v$sqlarea(disk_reads或buffer_gets/executions較大的SQL)或者第三方的監(jiān)視工具,TOAD就不錯(cuò)。2. 對statspack有何認(rèn)識(shí)認(rèn)識(shí)不深。僅限了解。StapSpac說Oracle公司提供的一個(gè)收集數(shù)據(jù)庫運(yùn)行性能指標(biāo)的軟件包??梢宰鰯?shù)據(jù)庫健康檢查報(bào)告。StapSpac說Oracle公司提供的一個(gè)收集數(shù)據(jù)庫運(yùn)行性能指標(biāo)的軟件包,該軟件包從8i起,在9i、10g都有顯著的增強(qiáng)該軟件包的輔助表(存儲(chǔ)相關(guān)參數(shù)與收集的性能指標(biāo)的表)由最初的25個(gè)增長到43個(gè)收集級(jí)別參數(shù)由原來的3個(gè)(0、5
38、、10)增加到5個(gè)(0、5、6、7、10)通過分析收集的性能指標(biāo),數(shù)據(jù)庫管理員可以詳細(xì)地了解數(shù)據(jù)庫目前的運(yùn)行情況,對數(shù)據(jù)庫實(shí)例、等待事件、SQL等進(jìn)行優(yōu)化調(diào)整利用statspack收集的snapshot,可以統(tǒng)計(jì)制作數(shù)據(jù)庫的各種性能指標(biāo)的統(tǒng)計(jì)趨勢圖表。如果系統(tǒng)現(xiàn)在需要在一個(gè)很大的表上創(chuàng)建一個(gè)索引,你會(huì)考慮那些因素,如何做以盡量減小對應(yīng)用的影響可以先表分析一下,然后測試創(chuàng)建索引前后對應(yīng)用的性能影響;需要考慮的是該索引列不經(jīng)常更新,不是有很多重復(fù)值的情況時(shí),在大表中使用索引特別有效.創(chuàng)建的索引可以跟數(shù)據(jù)表分不同表空間存儲(chǔ)。在系統(tǒng)比較空閑時(shí)nologging選項(xiàng)(如果有dataguard則不可以使用
39、nologging)大的sort_ared_size或pga_aggregate_target較大對raid10和raid5有何認(rèn)識(shí)RAID10或稱RAID什0)與RAID眼1不同,它是用硬盤驅(qū)動(dòng)器先組成RAID1陣列,然后在RAID1陣列之間再組成RAID0陣列。RAID10模式同RAID0+1模式一樣具有良好的數(shù)據(jù)傳輸性能,但卻比RAID0+1具有更高的可靠性。RAID10陣列的實(shí)際容量為M<n/2,磁盤利用率為50%。RAID10也需要至少4個(gè)硬盤驅(qū)動(dòng)器構(gòu)成,因而價(jià)格昂貴。RAID10的可靠性同RAID1一樣,但由于RAID10硬盤驅(qū)動(dòng)器之間有數(shù)據(jù)分割,因而數(shù)據(jù)傳輸性能優(yōu)良。RAI
40、D5與RAID&艮相似,不同之處在于RAID5的奇偶校驗(yàn)信息也同數(shù)據(jù)一樣被分割保存到所有的硬盤驅(qū)動(dòng)器,而不是寫入一個(gè)指定的硬盤驅(qū)動(dòng)器,從而消除了單個(gè)奇偶校驗(yàn)硬盤驅(qū)動(dòng)器的瓶頸問題。RAID磁盤陣列的性能比RAID3有所提高,但仍然需要至少3塊硬盤驅(qū)動(dòng)器。其實(shí)際容量為涂(n-1),磁盤利用率為(n-1)/n。1. 五:綜合隨意類你最擅長的是oracle哪部分?2. pl/sql及sql優(yōu)化喜歡oracle嗎喜歡上論壇嗎或者偏好oracle的哪一部分?喜歡。PL/SQL:匕較得心應(yīng)手。隨意說說你覺得oracle最有意思的部分或者最困難的部分我對數(shù)據(jù)庫的備份/恢復(fù)和性能調(diào)優(yōu)經(jīng)驗(yàn)明顯不足,自然覺
41、得有些困難?;贠RACLE勺研究應(yīng)該是個(gè)寬廣的領(lǐng)域,所以我覺得還是有意思的。3. 為何要選擇做DBA呢?我對數(shù)據(jù)庫的備份/恢復(fù)和性能調(diào)優(yōu)經(jīng)驗(yàn)明顯不足,主要是缺乏環(huán)境和交流。因此,算不上什么DBA不過因此我更需要這樣的機(jī)會(huì)。不過就整個(gè)ORACLE*說,一直從事與它相關(guān)的工作,感情還是頗深的。放棄可惜。而且就技術(shù)本身而言我覺得自己還是有學(xué)習(xí)和創(chuàng)新的能力,它的諸如數(shù)據(jù)倉庫,數(shù)據(jù)挖掘之類的領(lǐng)域也很廣。1. 六:DatabasesQuestions&AnswersWhataretwomethodsofretrievingSQLWhatcursortypedoyouusetoretrievemu
42、ltiplerecordsets?2. Whatactiondoyouhavetoperformbeforeretrievingdatafromthenextresultsetofastoredprocedure?Movethecursordownonerowfromitscurrentposition.AResultSetcursorisinitiallypositionedbeforethefirstrow.Beforeyoucangettothefirstrow,youwouldneedtoMovethecursordownbyonerow(Forex:injavathefirstcal
43、ltonextmakesthefirstrowthecurrentrow;thesecondcallmakesthesecondrowthecurrentrow,andsoon).WhatisthebasicformofaSQLstatementtoreaddataoutofatableSELECT*FROMtable_name;WhatstructurecanyouhavethedatabasemaketospeeduptablereadsThequestionisnotcorrect.“Whatstructurecanyouhavethedatabasemaketospeeduptable
44、reads”Itisnotclearwhatexactlytheterm“structure”meanscase.FollowtherulesofDBtuningwehaveto:1) properlyuseindexes(differenttypesofindexes)properlylocatedifferentDBobjectsacrossdifferenttablespaces,filesandsoon.Createaspecialspace(tablespace)tolocatesomeofthedatawithspecialdatatypes(forexampleCLOB,LOBa
45、nd)Whatisa?join"Joinsmergethedataoftworelatedtablesintoasingleresultset,presentingadenormalizedviewofthedata.3. Whatisa“constraint”Aconstraintallowsyoutoapplysimplereferentialintegritycheckstoatable.Thereare5primarytypesofconstraintsthatarecurrentlysupportedbySQLServer:PRIMARY/UNIQUEenforcesuni
46、quenessofaparticulartablecolumn.DEFAULT-specifiesadefaultvalueforacolumnincaseaninsertoperationdoesnotprovideone.FOREIGNKEYvalidatesthateveryvalueinacolumnexistsinacolumnofanothertable.CHECK-checksthateveryvaluestoredinacolumnisinsomespecifiedlistNOTNULLisaconstraintwhichdoesnotallowvaluesinthespeci
47、ficcolumntobenull.Andalsoitistheonlyconstraintwhichisnotatablelevelconstraint.Whatisa“primarykey”PrimaryKeyisatypeofaconstraintenforcinguniquenessanddataintegrityforeachrowofatable.AllcolumnsparticipatinginaprimarykeyconstraintmustpossesstheNOTNULLproperty.Whatisa"functionaldependency”Howdoesit
48、relatetodatabasetabledesignWhatfunctionaldependenceinthecontextofadatabasemeansisthat:AssumethatatableexistsinthedatabasecalledTABLEwithacompositeprimarykey(A,B)andothernon-keyattributes(C,D,E).Functionaldependencyingeneral,wouldmeanthatanynon-keyattribute-CDorEbeingdependentontheprimarykey(AandB)in
49、ourtablehere.Partialfunctionaldependency,ontheotherhand,isanothercorollaryoftheabove,whichstatesthatallnon-keyattributesCDorEifdependentonthesubsetoftheprimarykey(AandB)andnotonitasawhole.Example:FullyFunctionalDependent:CDE>ABPartialFunctionaldependency:C>A,DE>BHopethathelps!Whatisa“trigge
50、r”Atriggerisadatabaseobjectdirectlyassociatedwithaparticulartable.Itfireswheneveraspecificstatement/typeofstatementisissuedagainstthattable.Thetypesofstatementsareinsert,update,deleteandquerystatements.Basically,triggerisasetofSQLstatementsthatexecuteinresponsetoadatamodification/retrievaleventonata
51、ble.Otherthantabletriggerstherearealsoschemaanddatabasetriggers.Thesecanbemadetofirewhennewobjectsarecreated,whenauserlogsin,whenthedatabaseshutdownetc.Tableleveltriggerscanbeclassifiedintorowandstatementleveltriggersandthosecanbefurtherbrokendownintobeforeandaftertriggers.Beforetriggerscanmodifydat
52、a.Whatis“indexcovering”ofaqueryAnonclusteredindexthatincludes(orcovers)allcolumnsusedinaqueryiscalledacoveringindex.WhenSQLservercanuseanonclusteredindextoresolvethequery,itwillprefertoscantheindexratherthanthetable,whichtypicallytakesfewerdatapages.Ifyourqueryusesonlycolumnsincludedintheindex,thenS
53、QLservermayscanthisindextoproducethedesiredoutput.WhatisaSQLviewViewisaprecompliedSQLquerywhichisusedtoselectdatafromoneormoretables.Aviewislikeatablebutitdoesn'tphysicallytakeanyspace.Viewisagoodwaytopresentdatainaparticularformatifyouusethatqueryquiteoften.Viewcanalsobeusedtorestrictusersfroma
54、ccessingthetablesdirectly.Aviewotherwiseknownasavirtualtableisamerewindowoverthebasetablesinthedatabase.Thishelpsusgainacoupleofadvantages:1) InherentsecurityexposingonlythedatathatisneededtobeshowntotheenduserViewsareupdateablebasedoncertainconditions.Forexample,updatescanonlybedirectedtooneunderly
55、ingtableoftheview.Aftermodificationiftherowsorcolumnsdon'tcomplywiththeconditionsthattheviewwascreatedwith,thoserowsdisappearfromtheview.YoucouldusetheCHECKOPTIONwiththeviewdefinition,tomakesurethatanyupdatestomaketherowsinvalidwillnotbepermittedtorun.2) Viewsarenotmaterialized(givenaphysicalstr
56、ucture)inadatabase.Eachtimeaviewisqueriedthedefinitionstoredinthedatabaseisrunagainstthebasetablestoretrievethedata.Oneexceptiontothisistocreateaclusteredindexontheviewtomakeitpersistentinthedatabase.Onceyoucreateaclusteredindexontheview,youcancreateanynumberofnon-clusteredindexesontheview.存儲(chǔ)過程和函數(shù)的區(qū)
57、別存儲(chǔ)過程是用戶定義的一系列sql語句的集合,涉及特定表或其它對象的任務(wù),用戶可以調(diào)用存儲(chǔ)過程,而函數(shù)通常是數(shù)據(jù)庫已定義的方法,它接收參數(shù)并返回某種類型的值并且不涉及特定用戶表。4. 事務(wù)是什么?事務(wù)是作為一個(gè)邏輯單元執(zhí)行的一系列操作,一個(gè)邏輯工作單元必須有四個(gè)屆性,稱為ACID驚子性、一致性、隔離性和持久性)屆性,只有這樣才能成為一個(gè)事務(wù):原子性:事務(wù)必須是原子工作單元;對于其數(shù)據(jù)修改,要么全都執(zhí)行,要么全都不執(zhí)行。一致性:事務(wù)在完成時(shí),必須使所有的數(shù)據(jù)都保持一致狀態(tài)。在相關(guān)數(shù)據(jù)庫中,所有規(guī)則都必須應(yīng)用于事務(wù)的修改,以保持所有數(shù)據(jù)的完整性。事務(wù)結(jié)束時(shí),所有的內(nèi)部數(shù)據(jù)結(jié)構(gòu)(如B樹索引或雙向鏈表
58、)都必須是正確的。隔離性:由并發(fā)事務(wù)所作的修改必須與任何其它并發(fā)事務(wù)所作的修改隔離。事務(wù)查看數(shù)據(jù)時(shí)數(shù)據(jù)所處的狀態(tài),要么是另一并發(fā)事務(wù)修改它之前的狀態(tài),要么是另一事務(wù)修改它之后的狀態(tài),事務(wù)不會(huì)查看中間狀態(tài)的數(shù)據(jù)。這稱為可申行性,因?yàn)樗軌蛑匦卵b載起始數(shù)據(jù),并且重播一系列事務(wù),以使數(shù)據(jù)結(jié)束時(shí)的狀態(tài)與原始事務(wù)執(zhí)行的狀態(tài)相同。持久性:事務(wù)完成之后,它對于系統(tǒng)的影響是永久性的。該修改即使出現(xiàn)系統(tǒng)故障也將一直保持。5. 游標(biāo)的作用如何知道游標(biāo)已經(jīng)到了最后?游標(biāo)用于定位結(jié)果集的行,通過判斷全局變量FETCH_STATUS以判斷是否到了最后,通常此變量不等于0表示出錯(cuò)或到了最后。6. 觸發(fā)器分為事前觸發(fā)和事后
59、觸發(fā),這兩種觸發(fā)有和區(qū)別。語句級(jí)觸發(fā)和行級(jí)觸發(fā)有何區(qū)別。事前觸發(fā)器運(yùn)行于觸發(fā)事件發(fā)生之前,而事后觸發(fā)器運(yùn)行于觸發(fā)事件發(fā)生之后。通常事前觸發(fā)器可以獲取事件之前和新的字段值。語句級(jí)觸發(fā)器可以在語句執(zhí)行前或后執(zhí)行,而行級(jí)觸發(fā)在觸發(fā)器所影響的每一行觸發(fā)一次。SQLServe澇用測試題(1)問題描述:為管理崗位業(yè)務(wù)培訓(xùn)信息,建立3個(gè)表:1. S(S#,SN,SD,SA)S#,SN,SD,SAU代表學(xué)號(hào)、學(xué)員姓名、所屆單位、學(xué)員年齡C(C#,CN)C#,CNfr別代表課程編號(hào)、課程名稱SC(S#,C#,G)S#,C#分別代表學(xué)號(hào)、所選修的課程編號(hào)、學(xué)習(xí)成績使用標(biāo)準(zhǔn)SQL嵌套語句查詢選修課程名稱為稅收基礎(chǔ)的學(xué)員學(xué)號(hào)和姓名須現(xiàn)代碼:2. SELECTSN,SDFROMSWHERES#IN(SELECTS#FROMC,SCWHEREC.C#=SC.C#ANDCN=N'')使用標(biāo)準(zhǔn)SQL嵌套語句查詢選修課程
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版裝配式廠房買賣合同范本3篇
- 二零二五年方木產(chǎn)業(yè)園區(qū)建設(shè)與購銷合作合同3篇
- 二零二五版快遞物流服務(wù)合同匯編3篇
- 二零二五年度空壓機(jī)設(shè)備零配件供應(yīng)與倉儲(chǔ)合同3篇
- 二零二五年文化活動(dòng)兼職主持人聘任合同范本2篇
- 2025版快遞驛站快遞服務(wù)場地租賃及配套設(shè)施合同模板2篇
- 二零二五年無線基站場地天面租賃及維護(hù)合同3篇
- 二零二五版能源企業(yè)安全生產(chǎn)責(zé)任合同3篇
- 二零二五版建筑工程混凝土材料綠色認(rèn)證合同文本2篇
- 二零二五年知識(shí)產(chǎn)權(quán)貸款抵押擔(dān)保合同標(biāo)準(zhǔn)版2篇
- 團(tuán)隊(duì)成員介紹
- 水泵行業(yè)銷售人員工作匯報(bào)
- 《流感科普宣教》課件
- 離職分析報(bào)告
- 春節(jié)家庭用電安全提示
- 醫(yī)療糾紛預(yù)防和處理?xiàng)l例通用課件
- 廚邦醬油推廣方案
- 乳腺癌診療指南(2024年版)
- 高三數(shù)學(xué)寒假作業(yè)1
- 保險(xiǎn)產(chǎn)品創(chuàng)新與市場定位培訓(xùn)課件
- (完整文本版)體檢報(bào)告單模版
評論
0/150
提交評論