




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
ORACLEDBA福建省宏智科技股份系統集成事業部JAN-15-2000WholewiseJan-15-20001ORACLE數據庫培訓教材數據庫管理員〔DBA〕預備知識SQL語句PL/SQL關系數據庫根本原理相關知識UNIXNT網絡Jan-15-20002ORACLE數據庫培訓教材ORACLE數據庫簡介
當前主流數據庫及其簡介
ORACLE SYSBASE INFORMIX SQLSERVER DB2 關系數據庫概念簡介 ORACLE數據庫結構Jan-15-20003ORACLE數據庫培訓教材關系數據庫簡介關系數據庫元素實體和聯系鍵〔key〕數據完整性SQL語言Jan-15-20004ORACLE數據庫培訓教材關系數據庫元素Jan-15-20005ORACLE數據庫培訓教材實體和聯系實體〔Entity〕:客觀存在的并可相互區分的“事物〞實體通常成為表,表由行和列組成,每一行描述實體的一個例如,每一列描述實體的一個特征實體在邏輯數據庫設計時被確定聯系〔Relation〕:實體之間存在的對應或連接關系一對一關系〔1:1〕:表中的一行與相關表中的零行或多行相關一對多關系〔1:n〕:表中的一行與相關表中的零行或多行相關多對多關系〔n:m〕:表中的多行與相關表中的零行或多行相關聯系的實現:在關系數據庫設計中,聯系通常利用邏輯鍵來實現。Jan-15-20006ORACLE數據庫培訓教材鍵〔key〕主鍵超鍵〔SuperKey〕:在一個關系中能唯一表示元組的屬性集侯選鍵〔CandidateKey〕:一個屬性集能唯一標識元組而又不含多余的屬性主鍵〔PrimaryKey〕:被選用的侯選鍵外鍵公共鍵〔CommonKey〕:兩個關系中具有相容〔或相同〕的屬性或屬性組外鍵〔ForeignKey〕:如果公共鍵是其中一個關系的主鍵,那么這個公共鍵在另一個關系中稱為外鍵組合鍵組合鍵〔CompositKey〕:由兩個或兩個以上屬性〔列〕組成的鍵Jan-15-20007ORACLE數據庫培訓教材數據完整性〔DataIntergrity〕實體完整性關系中的元組在組成主鍵的屬性上不能有空值,也不能有重復值,否那么就不能起到唯一標識元組的作用域完整性關系中的屬性取值的正確性限制,包括數據類型、精度、取值范圍、是否允許空值等參照完整性反映了實體之間存在的某種約束條件。要求外鍵的值不允許參照不存在的主鍵的值,它使主鍵和外鍵之間的值保持一致或相容,來維護數據庫數據的一致性或相容性業務規那么一般包括數據完整性、參照完整性、遵循組織的任一其他需求,以便保證業務的正確運行Jan-15-20008ORACLE數據庫培訓教材SQL語言〔StructureQueryLanguage〕數據操縱語言〔DML〕SELECTDELETEINSERTUPDATE數據定義語言〔DDL〕CREATE定義數據庫實體結構ALTER修改數據庫實體結構DROP刪除數據庫實體GRANT/REVOKE數據庫對象的權限管理數據控制語言〔DCL〕COMMIT/ROLLBACKSAVEPOINTJan-15-20009ORACLE數據庫培訓教材SQL*PLUS
SQL*NET
字符集 SQL*PLUS 數據庫對象介紹Jan-15-200010ORACLE數據庫培訓教材TNS
TNS是TransparentNetworkSubstrate〔透明網絡層〕的縮寫如何配置TNS使CLIENT同SERVER建立聯系 效勞器上監聽進程與listener.ora文件 客戶機上tnsnames.ora文件如何配置BDE使DELPHI同ORACLE建立聯系Jan-15-200011ORACLE數據庫培訓教材listener.oraLISTENER=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=00)(PORT=1521)))SID_LIST_LISTENER=(SID_LIST= (SID_DESC= (SID_NAME=ora1) (ORACLE_HOME=/oracle/app/oracle/product/8.0.5) ))Jan-15-200012ORACLE數據庫培訓教材tnsnames.orayy1=(description= (address= (protocol=tcp) (host=00) (port=1521) ) (connect_data= (sid=ora1) ))Jan-15-200013ORACLE數據庫培訓教材SQL*PLUSSQL*PLUS常用命令介紹DUAL空表的作用SQL語句SQL常用函數介紹SQL*PLUS使用常用技巧Jan-15-200014ORACLE數據庫培訓教材SQL*PLUS常用命令介紹SET〔設置當前的SQL*PLUS的系統環境〕:ECHO,HEADING,SERVEROUPUT,TIMING,TIME,LONG,LINESIZE,ARRAYSIZE,AUTOCOMMIT,COPYCOMMIT,PAUSESHOW〔顯示當前的系統環境〕: USERSAVE存儲當前的內容到某一文件: SAVE文件名GET讀取某一文件的內容: GET文件名RUN和/〔運行當前的文件或某一特定的文件〕: RUN可運行當前緩沖區中的內容也可運行某一特定的文件。CONN連接某一用戶: CONNusername/password@aliasJan-15-200015ORACLE數據庫培訓教材SQL*PLUS常用命令介紹DISC從某一連接中退出:
DISCCOLUMN格式化某一列的顯示格式:
COLUMNCOLUMN_NAMEFORMATAXXXDESC查看某一對象的描述:
DESCOBJECT_NAMEEDIT編輯當前緩沖區中的內容或某一特定的文件:
EDIT或EDLIST顯示當前緩沖區中的內容:
LIST或LSPOOL把運行結果重定向:
SPOOL某一文件,結束SPOOLOFF,默認的擴展名為LSTJan-15-200016ORACLE數據庫培訓教材SQL*PLUS常用命令EXIT:退出當前的連接@和
@@:運行單獨的腳本和在腳本中運行腳本 @cre.sql @@cre.sqlAPPEND:在當前的語句的末尾增加內容 append或aCHANGE:改變當前最后一行的內容,用特定的內容替換指定的內容。 C/student/teacher清屏命令: SHIFT+DEL〔clearscr〕Jan-15-200017ORACLE數據庫培訓教材SQL語句SELECT:作用: 根據WHERE條件從表,視圖,SNAPSHOT中獲取數據。語法:select distinct(alldefault)column_name(expt,*)from table(view,snapshot,subquery[selectlist])@dblinkwhere (startwithcondition)(connectbycondition) groupbyexpr(havingcondition)union(unionall,minus,intersect) orderby(expr,position,c_alias)asc(desc) forupdateof(table,viewsnapshot)columnnowaitJan-15-200018ORACLE數據庫培訓教材SQL語句UPDATE:作用: 該語句用于修改表或基表的VIEW中的已存在的數據,如果要執 行該語句必須擁有UPDATEPRIVILEGE。語法:update table(view,snapshot)@dblinkt_aliasset (column_arraay)=subquery2orcolumn=valueor=subquery3where conditionJan-15-200019ORACLE數據庫培訓教材SQL語句INSERT:作用: 該語句用于插入單條或一組記錄到相應的表和基于單表的VIEW, 如果要執行該語句必須擁有INSERTPRIVILEGE。語法:insertinto schema.table(vieworsubquery1)@dblink(column_name)values (column_values)(orsubquery2)(asselect……from……)Jan-15-200020ORACLE數據庫培訓教材SQL語句DELETE:作用: 該命令用于從表或基于單表的VIEW中刪除一些記錄,如果要 執行該語句必須擁有DELETEPRIVELEGE。語法:delete[from]table(view)@dblinkaliaswhere conditionCOMMIT:ROLLBACK:Jan-15-200021ORACLE數據庫培訓教材SQL語句CREATETABLE: CREATETABLE〔COLUMNNAME〕 CREATETABLEASSELECTCOLUMNNAME(*)FROMTABLE_NAME COPYFROMTOREPLACE(CREATE)ALTERTABLE:DROPTABLE:CREATE〔ALTER/DROP)INDEX:Jan-15-200022ORACLE數據庫培訓教材常用SQL函數NVL:把空值用某一特定值進行替換DECODE:作用是對特定的值進行選擇,并指定一默認值TO_CHAR:把某一數據類型轉換成CHAR型TO_DATE:把某一數據類型轉換成DATE型,須考慮特定的數據格式TO_NUMBER:把某一數據類型轉換成NUMBER型LTRIM:把某一CHAR型數據的左邊空格刪除RTRIM:把某一CHAR型數據的右邊空格刪除INSTR:獲取某些字符在某一字符串中的位置SUBSTR:把某一字符串截取特定長度,得到另一字符串Jan-15-200023ORACLE數據庫培訓教材常用SQL函數LPAD:把某一字符串按照一定位數進行特定字符的左擴展RPAD:把某一字符串按照一定位數進行特定字符的右擴展CHR:把某一10進制的的NUMBER轉換成相應的CHARREPLACE:把某一字符串的內容用某一特定的字符進行替換ADD_MONTHS:把某一日期進行加一個月處理COUNT:對某一數據進行個數統計SUM:對某一NUMBER型數據進行相加處理MAX:提取某一NUMBER型數據的最大值MIN:提取某一NUMBER型數據的最小值Jan-15-200024ORACLE數據庫培訓教材其他通配符: 完全通配符:%可匹配任意各字符。 局部通配符:_可匹配單個字符偽列類型:CURRVAL和NEXTVAL: 提取SEQUENCE中的當前值和下一值。在使用時應先使用NEXTVAL,才能使 用CURRVALLEVEL: 對于SELECT語句中的層次查詢返回的層次ROWID: 數據的物理地址,類似于指針,由18位組成,BLOCKID(8位).COLUMNID〔4 位〕.FILEID〔4位〕ROWNUM: 得到返回的行的個數Jan-15-200025ORACLE數據庫培訓教材SQL*PLUS使用常用技巧在SQL*PLUS環境中如何進行交互式輸入:
利用替代符&如何利用SQL生成SQL腳本:
SPOOL的功能如何在兩個數據庫中進行數據的復制:
COPYFROM…TO…[APPEND,CREATE,INSERT,REPLACE]Jan-15-200026ORACLE數據庫培訓教材數據庫對象介紹CLUSTERDATABASELINKFUNCTIONINDEXTABLEPROCEDUREPACKAGEPACKAGEBODYSEQUENCESYNONYMTRIGGERVIEWJan-15-200027ORACLE數據庫培訓教材DBA日常工作數據庫管理員〔DBA〕職責:
數據庫物理設計 數據庫啟動/關閉 數據庫安裝,配置 數據庫存儲管理 數據庫平安管理 數據庫故障檢測 網絡管理 數據庫性能檢測及優化 數據庫備份與恢復Jan-15-200028ORACLE數據庫培訓教材 定時檢查alert.log文件 用utlbstat/utlestat產生數據庫性能報告 對應用進行跟蹤分析 *對OPS定時檢測沖突情況 定時對數據庫中的表和索引進行統計和分析 數據庫用戶和平安管理 數據庫表空間管理 協助應用開發人員進行設計和分析 數據庫故障處理〔數據庫補丁〕 …...Jan-15-200029ORACLE數據庫培訓教材ORACLE數據庫結構SGA〔SystemGlobalArea〕DatabasebufferSharepoolRedobuffer用戶進程DBWRSMONPMONLGWRARCHRECOLcknDnnnCKPTDatafilesControlfilesRedologfilesJan-15-200030ORACLE數據庫培訓教材ORACLE實例(instance)DBWRLGWRCKPTSMONPMONinstanceSGADatabufferRedoLogbufferLibrarycacheDatadictionarycacheSharedpoolControlfilesControlfilesControlfilesdatafilesControlfilesRedologfilesALTERfileParameterfilePasswordfileUserProcessServerProcessPGABackgroundprocessARCHArchivedlogfilesJan-15-200031ORACLE數據庫培訓教材OracleServerControlfilesControlfilesUserProcessServerProcessClientServerPGAJan-15-200032ORACLE數據庫培訓教材UserprocessServerprocessSELECT*FROMempORDERBYename;statementhandlehandleresultsOKOKparseExecuteFetchDML語句執行過程Jan-15-200033ORACLE數據庫培訓教材DBWRLGWRCKPTSMONPMONinstanceSGADatabufferRedoLogbufferLibrarycacheDatadictionarycacheSharedpoolARCHControlfilesControlfilesControlfilesdatafilesControlfilesRedologfilesServerProcessUPDATEempSETsal=sal*2WHEREempname=‘王海’13452DML語句執行過程Jan-15-200034ORACLE數據庫培訓教材COMMIT語句執行過程DBWRLGWRCKPTSMONPMONinstanceSGADatabufferRedoLogbufferLibrarycacheDatadictionarycacheSharedpoolARCHControlfilesControlfilesControlfilesdatafilesControlfilesRedologfilesServerProcessUserProcess1234Jan-15-200035ORACLE數據庫培訓教材系統管理工具svrmgrl/svrmgrmsqldbaorapwdSQL*LoaderExport/ImportOEMJan-15-200036ORACLE數據庫培訓教材svrmgrl常用命令Jan-15-200037ORACLE數據庫培訓教材啟動與關閉數據庫步驟SHUTDOWNNOMOUNTMOUNTOPEN實例啟動翻開實例所需要的控制文件翻開控制文件中定義的所有文件12Jan-15-200038ORACLE數據庫培訓教材ORACEL數據庫啟動啟動命令STARTUP[FORCE][RESTRICT][PFILE=filename][EXCLUSIVE|PARALLEL|SHARED][OPEN[RECOVER][database]|MOUNT|NOMOUNT]并行數據庫啟動步驟-啟動DLM鎖-startupparallel-啟動監聽進程Jan-15-200039ORACLE數據庫培訓教材ORACLE數據庫關閉
關閉數據庫命令
shutdown[normal|transactional|immediate|abort]關閉數據庫步驟-停止監聽進程-查看系統中是否存在活動進程-用normal方式或shutdownimmediate關閉數據庫Jan-15-200040ORACLE數據庫培訓教材SHUTDOWN方式Jan-15-200041ORACLE數據庫培訓教材ORACLE安裝配置設置環境變量NTORADMIN80-NEW-SIDTEST-INTPWDpassword-STARTMODEauto-PFILEinittest.oraUNIXORACLE_HOMEORACLE_SID......數據庫安裝參數設置Jan-15-200042ORACLE數據庫培訓教材創立數據庫spoolcrdbtest.lststartupnomountpfile=inittest.oraCreatedatabasetest maxlogfiles10 maxlogmembers5 maxdatafiles100 maxloghistory100logfile group1(‘/dev/rdrd/drd4’,’/dev/rdrd/drd5’)size10m, group2(‘/dev/rdrd/drd6’,’/dev/rdrd/drd7’)size10mdatafile ‘/dev/rdrd/drd10’size100mcharactersetzhs16cgb231280;
Jan-15-200043ORACLE數據庫培訓教材創立數據庫--創立數據字典sql.bsq創立數據庫基表catalog.sql數據字典視圖catproc.sqlPL/SQLdbms*.sql&prvt*.plb數據庫包體/包頭pupbld.sqlJan-15-200044ORACLE數據庫培訓教材創立數據庫--故障處理監控日志文件install.logmake.logholdfile.log常見安裝問題解決Jan-15-200045ORACLE數據庫培訓教材控制文件管理控制文件作用控制文件信息數據庫名稱數據文件定位重做日志文件定位表空間名稱當前sequence號checkpoint信息備份信息...控制文件管理備份重建保持控制文件的多個復本Jan-15-200046ORACLE數據庫培訓教材V$CONTROLFILENAMEV$PARAMETERNAME(control_file)V$CONTROLFILE_RECORD_SECTIONTYPERECORDS_SIZERECORDS_TOTALRECORDS_USED控制文件Jan-15-200047ORACLE數據庫培訓教材數據庫邏輯結構DatabaseTablespaceSegmentExtentOracleBlockO/SBlockDatafileLogicalPhysicalJan-15-200048ORACLE數據庫培訓教材數據庫表空間管理表空間管理Createtablespacealtertablespacedroptablespace回滾段管理createrollbacksegmentalterrollbacksegmentdroprollbacksegmentJan-15-200049ORACLE數據庫培訓教材表空間管理DBA_TABLESPACEDBA_DATA_FILESDBA_SEGMENTSDBA_EXTENTSDBA_FREE_SPACEDBA_FREE_SPACE_COALESCEDJan-15-200050ORACLE數據庫培訓教材重做日志(redolog)文件重做日志文件作用歸檔模式重做日志文件管理-ALTERSYSTEMSWITCHLOGFILE;-ALTERSYSTEMCHECKPOINT;-ALTERDATABASEADDLOGFILE-ALTERDATABASEADDLOGFILEMEMBER-ALTERDATABASERENAMEFILE-ALTERDATABASEDROPLOGFILE-ALTERDATABASEDROPLOGFILEMEMBER-ALTERDATBASECLEARLOGFILE-ARCHIVELOGLIST
Jan-15-200051ORACLE數據庫培訓教材歸檔模式datafiles5051controlfile100101t1t2WithoutarchivingWitharchivingdatafiles5051controlfile100101t1t25151515151519952Jan-15-200052ORACLE數據庫培訓教材重做日志(redolog)文件V$DATABASEV$INSTANCEV$THREADV$LOGV$LOGFILEJan-15-200053ORACLE數據庫培訓教材數據庫用戶管理用戶管理createuseralteruserdropuser用戶權限.profileJan-15-200054ORACLE數據庫培訓教材數據庫備份方案數據庫的備份方案有以下幾種:全部或局部卸出備份〔exp〕增量卸出備份冷備份熱備份歸檔備份整個文件系統的復制Jan-15-200055ORACLE數據庫培訓教材卸出備份〔exp〕exphelp=yExample:expscott/tigerfile=exp.dmplog=exp.logbuffer=4096000full=y/nindexes=[y]/nrows=[y]/ncompress=[y]/n OWNER listofownerusernames TABLES listoftablenames GRANTS exportgrants(Y) INCTYPE incrementalexporttype INDEXES exportindexes(Y) CONSTRAINTS exportconstraints(Y) CONSISTENT cross-tableconsistency STATISTICS analyzeobjects(ESTIMATE)
Jan-15-200056ORACLE數據庫培訓教材歸檔備份〔必須和冷/熱備份結合使用〕1.數據庫必須運行在archive模式下 svrmgrl>startupmount svrmgrl>alterdatabasearchivelog;2.冷/熱備份3.數據庫控制文件備份Jan-15-200057ORACLE數據庫培訓教材數據庫恢復數據庫恢復: 數據表空間/數據恢復 控制文件恢復根據備份方案的不同,恢復也有以下兩種方法: 1.數據imp〔倒入〕 2.表空間recoverJan-15-200058ORACLE數據庫培訓教材imphelp=yExample: impscott/tigerfile=exp.dmpfull=yrows=yindex=ylog=imp.log
注意: 由于在imp的過程中,局部約束及角色將由于對象倒入的先后順 序而喪失,必須用手工重新創立或進行第二次imp〔不倒入數據〕 比照imp.log和exp.log文件,觀察是否存在數據未倒入Jan-15-200059ORACLE數據庫培訓教材表空間恢復臨時表空間: 臨時表空間并不包含真正的數據,恢復的方法是刪除臨時表空 間并重建即可系統表空間: 系統處于noarchivelog模式下或備份不可用,重建數據庫 系統處于archivelog模式下,恢復步驟同用戶表空間回滾表空間:
刪除回滾段,刪除回滾表空間,重建回滾表空間及回滾段Jan-15-200060ORACLE數據庫培訓教材用戶表空間:錯誤現象:在啟動數據庫時出現ORA-01157,ORA-01110或操作系統級錯誤如ORA-07360;在關閉數據庫(使用shutdown或shutdownimmediate)時出現錯誤ORA-01116,ORA-01110及操作系統級錯誤ORA-073681.用戶的表空間可以被輕易地重建 最近導出的對象是可用的或表空間中的對象可以被輕易地重建等. 在這種情況下,最簡單的方法是offline并刪除該數據文件,刪除表 空間并重建表空間以及所有的對象并重建表空間及所有對象.2.數據庫運行在archivemode下,恢復步驟為: 將備份回拷覆蓋被損壞的數據文件;回拷〔冷/熱〕備份后生成的 所有日志文件 svrmgrl>recoverdatafilefilename; svrmgrl>alterdatabaseopenresetlogs;Jan-15-200061ORACLE數據庫培訓教材控制文件的恢復:1.存在一個或多個控制文件可用
關閉數據庫,復制可用的控制文件2.所有的控制文件均被破壞
重建控制文件: svrmgrl>startupnomount svrmgrl>@cre.sql ----重建控制文件腳本Jan-15-200062ORACLE數據庫培訓教材CREATECONTROLFILEREUSEDATABASE"YY1"NORESETLOGSNOARCHIVELOG MAXLOGFILES32 MAXLOGMEMBERS2 MAXDATAFILES256 MAXINSTANCES8 MAXLOGHISTORY800LOGFILE GROUP1'/dev/rdrd/drd1'SIZE10M, GROUP2'/dev/rdrd/drd2'SIZE10M, GROUP3'/dev/rdrd/drd6'SIZE10M,DATAFILE ‘/usr/ora/db/system.dbf', ’/usr/ora/db/rbs.dbf', ’…...';RECOVERDATABASEALTERDATABASEOPEN;Jan-15-200063ORACLE數據庫培訓教材數據庫優化 數據庫優化工作重要性 數據庫優化過程
數據庫優化根底知識 數據庫優化內容
數據庫性能診斷工具 優化技巧及腳本 ORACLE技術熱線Jan-15-200064ORACLE數據庫培訓教材數據庫根底知識ORACLE數據庫系統數據存儲的物理結構和邏輯結構模式對象的組成ORACLE數據庫系統的進程以及內存結構構成ORACLE鎖的概念介紹二階段提交的概念用戶、角色、權限的概念的介紹舉例介紹ORACLE是如何處理一個事務Jan-15-200065ORACLE數據庫培訓教材ORACLE事務處理過程首先必須有一臺主機或數據庫效勞器運行一個ORACLEINSTANCE工作站運行一個應用,它試圖通過適當的SQL*NET驅動同效勞器取得聯系如果該效勞器也正在運行適當的SQL*NET驅動。效勞器檢測到應用的連接請求,開始為此用戶進程創立一個專用的效勞器進程客戶端的用戶執行一個SQL語句并提交此進程效勞器進程收到此SQL語句,并開始檢驗在ORACLE的共享池中是否存在同樣的SQL語句。如果在共享池中發現該SQL語句,效勞器進程開始檢驗該用戶是否對請求的數據有操作的權限,然后使用在共享池中的SQL語句去執行該語句。如果該SQL語句在共享池中不存在,就為此語句分配一個新的共享池區以便它能夠被解析、執行效勞器進程從實際的數據文件或共享池中取回必須的數據效勞器進程在在共享池中修改數據。在上述所作的生效之后,DBWR后臺進程把修改后的數據塊永久的寫入硬盤。在此事務提交成功之后,LGWR進程立即把此事務記錄到在線的redologfile如果此事務成功,效勞器進程通過網絡返回一個成功的信息給應用程序。如果該事務不成功,將返回一個適當的信息在上述的事務過程中,其余的后臺進程同樣在運行,等待著條件符合而被觸發。此外,數據庫效勞器還管理著其他用戶的事務,并且在不同事務之間提供數據一致性,防止不同事務對相同數據操作Jan-15-200066ORACLE數據庫培訓教材數據庫優化內容
數據庫建庫優化
數據庫初始化文件
數據庫空間優化 系統設計優化
SQL語句優化
SGA優化
I/O、CPU優化
系統性能瓶頸分析
常見問題分析Jan-15-200067ORACLE數據庫培訓教材數據庫空間設計優化表空間設計的原那么為:把由用戶創立的其余表空間同SYSTEM表空間進行別離把系統的數據表空間同索引表空間別離把操作頻繁和不經常操作的表劃分在不同的表空間中別離用戶數據和回滾段的數據以防止某個磁盤出現故障喪失數據為特殊類型的數據庫使用保存某個表空間回滾表空間分配原那么臨時表空間分配原那么Jan-15-200068ORACLE數據庫培訓教材回滾段空間分配原那么一個事務的回退信息可以寫到當前例程中正在被使用的任何的一個回滾段中一個事務的所有回退信息只能寫入一個回滾段中多個事務的回退信息可以同時寫入同一個回滾段中,甚至可以同時寫入一個EXTENT中當回滾段的EXTENT中的所有事務都被提交或回退了,此EXTENT就可以被重新使用一旦回滾段的某個EXTENT被重新使用,在此EXTENT中的所有信息都不在可用在系統需要更多的空間時,如果回滾段的下一個EXTENT中有活動事務,例程就會擴展此回滾段select、insert、update、delete語句都可能會使數據庫從多個回滾段去讀數據回滾段的頭永遠不會移入當前被rollback的事務為所占用的extent中當回滾段的頭進行擴展時,他是按順序的,不會跳過環中的EXTENT如果回滾段的頭不能使用下一個extent,它就會另外分配一個extent,并把它插入環中Jan-15-200069ORACLE數據庫培訓教材系統設計時作的優化ORACLE存儲根本單位----BLOCK建表參數建索引參數索引結構Jan-15-200070ORACLE數據庫培訓教材系統設計時作的優化----建表參數Jan-15-200071ORACLE數據庫培訓教材SQL語句優化ORACLE優化方式COST_BASED〔基于代價〕RULE_BASED〔基于規那么〕索引的使用如何寫高效的SQL語句寫相同的SQL語句,保證程序能夠利用共享池的內容,加快程序的執行速度寫能夠利用索引并且能夠符合基于代價的優化條件的SQL語句盡量利用PL/SQL的特性減少網絡的傳輸使用存儲過程,以減少網絡的傳輸和提高系統的編譯速度Jan-15-200072ORACLE數據庫培訓教材無法使用到索引的SQL語句COLUMN1>〔<,>=,<=)COLUMN2其中COLUMN1和COLUMN2在同一張表中COLUMNIS(ISNOT)NULLCOLUMNNOTINCOLUMN!=EXPRCOLUMNLIKE‘%ANYTHING’在上述條件中不管COLUMN上是否有建索引,SQL語句都不會利用索引。EXPR是一個表達式,它用運算符或函數操作在該列上例如:EXPR*COLUMN=ANYTHINGNOTEXISTSSUBQUERY不包含未被索引的列的任何條件在LIKE表達式中如果模糊的列為數字或日期的話在ORACLE內部的本身的數據轉換Jan-15-200073ORACLE數據庫培訓教材數據庫常見性能分析表空間的剩余空間的問題表的鎖的問題表的鏈接問題索引的查找速度降慢問題表操作速度降慢的問題Jan-15-200074ORACLE數據庫培訓教材性能檢測工具 EXPLAIN的使用介紹 EXPLAINPLAN的加強版 TKPROF的使用介紹 UTLBSTAT/UBLESTAT使用介紹 第三方產品Jan-15-200075ORACLE數據庫培訓教材EXPLAIN
EXPLIANPLAN作用 執行EXPLAINPLAN前期準備工作 EXPLAIN語法
explainplan〔setstatementid='text’〕forstatement PLAN_TABLE結構Jan-15-200076ORACLE數據庫培訓教材EXPLAINPLANSelectid,parent_id,position,operation,options,object_name,object_type,costfromplan_table;PLAN_TABLE表的主要字段介紹:Statement_id 該值由系統在執行EXPLAINPLAN時進行賦值Operation 表示該語句每一步要進行的操作Options 表示該語句每一步要進行的動作Object_name 表示語句中涉及到的數據庫對象名Object_type 表示語句中涉及到的數據庫對象類別Id 執行方案數的節點值Parent_id 執行方案的節點值的父節點值Position 表示對具有相同parent_id的執行順序Cost 執行該語句的代價Jan-15-200077ORACLE數據庫培訓教材TKPROF使用TKPROF工具步驟:1.svrmgrl>@utlxplan.sql修改init.ora文件,設置TIMED_STATISTICS=TRUE2.sql>executedbms_system.set_sql_trace_in_session(sid,serial#,true)3.sql>executedbms_system.set_sql_trace_in_session(sid,serial#,false)4.
tkproftrc_filetext_filesys=y/nexplain=user/passwd
Jan-15-200078ORACLE數據庫培訓教材TKPROFTKPROF輸出的文件中關鍵字含義:count 一個語句被語法分析、執行和取數的次數cpu 對語句的所有語法分析,執行或取數調用的總CPU時間〔以秒計〕elapsed 對語句的所有語法分析,執行或取數調用的總消耗時間〔以秒計〕disk 對所有語法分析,執行或取數調用的,從磁盤數據文件上數據塊物理 讀的總數query 對所有語法分析,執行或取數調用的,以一致方式檢索的緩沖區總數, 對查詢來說,通常用一致性方式檢索緩沖區current 以當前方式檢索的緩沖區總數。對INSERT,UPDATE和DELETE語 句通常用當前方式檢索緩沖區Query和current的和是存取的緩沖區的 總數rows 由SQL語句處理的總行數。對于SELECT語句而言,返回的行數出現 在取數的步驟,對UPDATE、DELETE和INSERT語句而言,處理的 行數出現在執行步驟Jan-15-200079ORACLE數據庫培訓教材Example:在執行tkprofora_1000.trcout.txtexplain=sys/syssys=no后輸出如下:…...SELECTWORK_TYPE_IDFROMWORK_AREAW,STAFF_MEMBERSWHEREW.WORK_AREA_ID=:b1ANDS.WORK_AREA_ID=:b1ANDS.STAFF_ID=:b3ANDS.STS='A'call count cpu elapseddiskquery current rows------- ------ -------- ---------- -------------------- ------- --------Parse 0 0.00 0.00 0 0 0 0Execute 1 0.00 0.00 0 0 0 1Fetch 1 23.0 0.00 32230 22 2 43993------- ------ -------- ---------- -------------------- -------------------total 2 23.00 0.00 39930 22 2 43993……RowsExecutionPlan----------------------------------------------------------0 SELECTSTATEMENTGOAL:CHOOSE1 NESTEDLOOPS43993 TABLEACCESSGOAL:ANALYZED(FULL)OF'STAFF_MEMBER'29 TABLEACCESSGOAL:ANALYZED(BYROWID)OF'WORK_AREA'29 INDEXGOAL:ANALYZED(UNIQUESCAN)OF'SYS_C007339'(UNIQUE)…...Jan-15-200080ORACLE數據庫培訓教材UTLBSTAT/UTLESTAT:設置TIMED_STATISTICS=TRUEsvrmgrl>@utlbstatsvrmgrl>@utlestat系統將生成report.txt文本文件便于分析優化技巧和常用腳本:
Jan-15-200081ORACLE數據庫培訓教材ORACLE技術支持網站Jan-15-200082ORACLE數據庫培訓教材I. oerrerror_typeerror_noORACLE提供了一個非常實用的故障判斷命令oerr,格式:oerroraerror_no,使用該命令能夠解決大多數使用ORACLE中所遇到的“故障〞:Example1:$oerrora30100301,00000,"errorinaddinglogfile'%s'-filecannotbecreated"http://*Cause:Thecreationofthelogfilefailed//*Action:Check:1)thereisenoughspaceonthedevice//2)thenameofthefileisvalid//3)thedeviceisonline//4)anIOerroroccurred//consultassociatederrorsforfurtherinformation.Jan-15-200083ORACLE數據庫培訓教材Example2:$oerrora154201542,00000,"tablespace'%s'isoffline,cannotallocatespaceinit"http://*Cause:Triedtoallocatespaceinanofflinetablespace//*Action:Bringthetablespaceonlineorcreatetheobjectin//othertablespaceJan-15-200084ORACLE數據庫培訓教材Example3:$oerrora403104031,00000,"unabletoallocate%sbytesofsharedmemory(\"%s\",\"%s\",\"%s\")"http://*Cause:Moresharedmemoryisneededthanwasallocatedinthe//sharedpool.//*Action:Eitherusethedbms_shared_poolpackagetopinlarge//packages,reduceyouruseofsharedmemory,orincreasethe//amountofavailablesharedmemorybyincreasingthevalueofthe//init.oraparameter"shared_pool_size".Jan-15-200085ORACLE數據庫培訓教材II. 無法自行解決錯誤對于以下錯誤,一般是由于ORACLE的bug引起,需要通過ORACLE技術支持解決:ORA-00600錯誤00600,00000,"internalerrorcode,arguments:[%s],[%s],[%s],[%s],[%s],[%s],[%s],[%s]〞//*Cause:ThisisthegenericinternalerrornumberforOracleprogram//exceptions.Thisindicatesthataprocesshasencounteredan//exceptionalcondition.//*Action:Reportasabug-thefirstargumentistheinternalerrornumberORA-07445錯誤Jan-15-200086ORACLE數據庫培訓教材III. ORACLE常見錯誤及其解決Jan-15-200087ORACLE數據庫培訓教材ORA-01555錯誤:01555,00000,"snapshottooold:rollbacksegmentnumber%swithname\"%s\
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國強效殺菌去污粉數據監測報告
- 2025年中國彈力球玩具數據監測報告
- 2025年中國開槽機刀片數據監測研究報告
- 2025年中國庚二酸數據監測報告
- 2025年中國平網印花織物市場調查研究報告
- 2025年中國干爽網面衛生巾數據監測報告
- 2025年中國帶比例刻度調漆杯市場調查研究報告
- 8 和 9 的加、減法(教學設計)-2024-2025學年一年級上冊數學人教版
- 2025年中國工業用苯乙烯市場調查研究報告
- 2025年中國山參錦緞盒市場調查研究報告
- 五年級下冊數學課件 -4.1 用數對確定位置 ︳青島版 (共20張PPT)
- 柏拉圖分析案例
- 巖棉項目申報書_參考模板
- 二襯帶模注漿施工方案
- 施工組織設計方案交底記錄
- 《英語委婉語與忌語》PPT課件.ppt
- ISO9001-14001-2015內部審核檢查表
- 風險和機遇應對措施有效性評審記錄表副本
- 調查問卷設計-課件PPT
- 照金參觀學習心得
- 井下電纜著火應急演練預案
評論
0/150
提交評論