ORACLE管理员必备手册_第1页
ORACLE管理员必备手册_第2页
ORACLE管理员必备手册_第3页
ORACLE管理员必备手册_第4页
ORACLE管理员必备手册_第5页
已阅读5页,还剩92页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ORACLEDBAJan-15-20001数据库管理员(DBA)预备知识SQL语句PL/SQL关系数据库基本原理相关知识UNIXNT网络Jan-15-20002ORACLE数据库简介

当前主流数据库及其简介

ORACLE SYSBASE INFORMIX SQLSERVER DB2 关系数据库概念简介 ORACLE数据库结构Jan-15-20003关系数据库简介关系数据库元素实体和联系键(key)数据完整性SQL语言Jan-15-20004关系数据库元素Jan-15-20005实体和联系实体(Entity):客观存在的并可相互区分的“事物”实体通常成为表,表由行和列组成,每一行描述实体的一个示例,每一列描述实体的一个特征实体在逻辑数据库设计时被确定联系(Relation):实体之间存在的对应或连接关系一对一关系(1:1):表中的一行与相关表中的零行或多行相关一对多关系(1:n):表中的一行与相关表中的零行或多行相关多对多关系(n:m):表中的多行与相关表中的零行或多行相关联系的实现:在关系数据库设计中,联系通常利用逻辑键来实现。Jan-15-20006键(key)主键超键(SuperKey):在一个关系中能唯一表示元组的属性集侯选键(CandidateKey):一个属性集能唯一标识元组而又不含多余的属性主键(PrimaryKey):被选用的侯选键外键公共键(CommonKey):两个关系中具有相容(或相同)的属性或属性组外键(ForeignKey):如果公共键是其中一个关系的主键,那么这个公共键在另一个关系中称为外键组合键组合键(CompositKey):由两个或两个以上属性(列)组成的键Jan-15-20007数据完整性(DataIntergrity)实体完整性关系中的元组在组成主键的属性上不能有空值,也不能有重复值,否则就不能起到唯一标识元组的作用域完整性关系中的属性取值的正确性限制,包括数据类型、精度、取值范围、是否允许空值等参照完整性反映了实体之间存在的某种约束条件。要求外键的值不允许参照不存在的主键的值,它使主键和外键之间的值保持一致或相容,来维护数据库数据的一致性或相容性业务规则一般包括数据完整性、参照完整性、遵循组织的任一其他需求,以便保证业务的正确运行Jan-15-20008SQL语言(StructureQueryLanguage)

数据操纵语言(DML)SELECTDELETEINSERTUPDATE数据定义语言(DDL)CREATE定义数据库实体结构ALTER修改数据库实体结构DROP删除数据库实体GRANT/REVOKE数据库对象的权限管理数据控制语言(DCL)COMMIT/ROLLBACKSAVEPOINTJan-15-20009SQL*PLUS

SQL*NET

字符集 SQL*PLUS 数据库对象介绍Jan-15-200010TNSTNS是TransparentNetworkSubstrate(透透明网网络层层)的的缩写写如何配配置TNS使CLIENT同同SERVER建立立联系系服务器器上监监听进进程与与listener.ora文件件客户机机上tnsnames.ora文文件如何配配置BDE使DELPHI同同ORACLE建立立联系系Jan-15-200011listener.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-200012tnsnames.orayy1=(description=(address=(protocol=tcp)(host=00)(port=1521))(connect_data=(sid=ora1)))Jan-15-200013SQL*PLUSSQL*PLUS常常用命命令介介绍DUAL空空表的的作用用SQL语语句SQL常用用函数数介绍绍SQL*PLUS使使用常常用技技巧Jan-15-200014SQL*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-200015SQL*PLUS常常用命命令介介绍DISC从从某一一连接接中退退出::DISCCOLUMN格格式化化某一一列的的显示示格式式:COLUMNCOLUMN_NAMEFORMATAXXXDESC查查看某某一对对象的的描述述:DESCOBJECT_NAMEEDIT编编辑当当前缓缓冲区区中的的内容容或某某一特特定的的文件件:EDIT或或EDLIST显显示当当前缓缓冲区区中的的内容容:LIST或或LSPOOL把运运行结结果重重定向向:SPOOL某某一文文件,,结束束SPOOLOFF,,默认认的扩扩展名名为LSTJan-15-200016SQL*PLUS常常用命命令EXIT::退出出当前前的连连接@和@@::运行行单独独的脚脚本和和在脚脚本中中运行行脚本本@cre.sql@@cre.sqlAPPEND::在当当前的的语句句的末末尾增增加内内容append或aCHANGE::改变变当前前最后后一行行的内内容,,用特特定的的内容容替换换指定定的内内容。。C/student/teacher清屏命令:SHIFT+DEL(clearscr)Jan-15-200017SQL语句句SELECT:作用:根据WHERE条件从表表,视图,SNAPSHOT中获取取数据。语法:selectdistinct(alldefault)column_name(expt,*)fromtable(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-200018SQL语句句UPDATE:作用:该语句用于修修改表或基表表的VIEW中的已存在在的数据,如如果要执行该语句必须须拥有UPDATEPRIVILEGE。语法:updatetable(view,snapshot)@dblinkt_aliasset(column_arraay)=subquery2orcolumn=valueor=subquery3whereconditionJan-15-200019SQL语句句INSERT:作用:该语句用于插插入单条或一一组记录到相相应的表和基基于单表的VIEW,如果要执行该该语句必须拥拥有INSERTPRIVILEGE。语法:insertintoschema.table(vieworsubquery1)@dblink(column_name)values(column_values)(orsubquery2)(asselect…………from…………)Jan-15-200020SQL语语句句DELETE:作用用::该命命令令用用于于从从表表或或基基于于单单表表的的VIEW中中删删除除一一些些记记录录,,如如果果要要执行行该该语语句句必必须须拥拥有有DELETEPRIVELEGE。。语法法::delete[from]table(view)@dblinkaliaswhereconditionCOMMIT::ROLLBACK::Jan-15-200021SQL语语句句CREATETABLE::CREATETABLE((COLUMNNAME))CREATETABLEASSELECTCOLUMNNAME(*)FROMTABLE_NAMECOPYFROMTOREPLACE(CREATE)ALTERTABLE::DROPTABLE::CREATE((ALTER/DROP)INDEX::Jan-15-200022常用用SQL函函数数NVL::把把空空值值用用某某一一特特定定值值进进行行替替换换DECODE::作作用用是是对对特特定定的的值值进进行行选选择择,,并并指指定定一一默默认认值值TO_CHAR::把把某某一一数数据据类类型型转转换换成成CHAR型型TO_DATE::把把某某一一数数据据类类型型转转换换成成DATE型型,,须须考考虑虑特特定定的的数数据据格格式式TO_NUMBER::把把某某一一数数据据类类型型转转换换成成NUMBER型型LTRIM::把把某某一一CHAR型型数数据据的的左左边边空空格格删删除除RTRIM::把把某某一一CHAR型型数数据据的的右右边边空空格格删删除除INSTR::获获取取某某些些字字符符在在某某一一字字符符串串中中的的位位置置SUBSTR::把把某某一一字字符符串串截截取取特特定定长长度度,,得得到到另另一一字字符符串串Jan-15-200023常用用SQL函函数数LPAD::把把某某一一字字符符串串按按照照一一定定位位数数进进行行特特定定字字符符的的左左扩扩展展RPAD::把把某某一一字字符符串串按按照照一一定定位位数数进进行行特特定定字字符符的的右右扩扩展展CHR::把把某某一一10进进制制的的的的NUMBER转转换换成成相相应应的的CHARREPLACE:把某某一字符符串的内内容用某某一特定定的字符符进行替替换ADD_MONTHS:把某某一日期期进行加加一个月月处理COUNT:对对某一数数据进行行个数统统计SUM::对某一一NUMBER型数据据进行相相加处理理MAX::提取某某一NUMBER型数数据的最最大值MIN::提取某某一NUMBER型数数据的最最小值Jan-15-200024其他通配符:完全通配配符:%可匹配配任意各各字符。。部分通配配符:_可匹配配单个字字符伪列类型型:CURRVAL和NEXTVAL:提取SEQUENCE中的当当前值和和下一值值。在使使用时应应先使用用NEXTVAL,才才能使用CURRVALLEVEL:对于SELECT语句句中的层层次查询询返回的的层次ROWID:数据的物物理地址址,类似似于指针针,由18位组组成,BLOCKID(8位位).COLUMNID(4位).FILEID((4位))ROWNUM:得到返回回的行的的个数Jan-15-200025SQL*PLUS使用用常用技技巧在SQL*PLUS环环境中如如何进行行交互式式输入::利用替代代符&如何利用用SQL生成SQL脚脚本:SPOOL的的功能如何在两个数数据库中进行行数据的复制制:COPYFROM……TO…[APPEND,CREATE,INSERT,REPLACE]Jan-15-200026数据库对象介介绍CLUSTERDATABASELINKFUNCTIONINDEXTABLEPROCEDUREPACKAGEPACKAGEBODYSEQUENCESYNONYMTRIGGERVIEWJan-15-200027DBA日常工工作数据库管理员员(DBA))职责:数据库物理设设计数据库启动/关闭数据库安装,,配置数据库存储管管理数据库安全管管理数据库故障检检测网络管理数据库性能检检测及优化数据库备份与与恢复Jan-15-200028定时检查alert.log文件用utlbstat/utlestat产生数数据库性能报报告对应用进行跟跟踪分析*对OPS定时检测冲冲突情况定时对数据库库中的表和索索引进行统计计和分析数据库用户和和安全管理数据库表空间间管理协助应用开发发人员进行设设计和分析数据库故故障处理理(数据据库补丁丁)…...Jan-15-200029ORACLE数数据库结结构SGA((SystemGlobalArea)DatabasebufferSharepoolRedobuffer用户进程程DBWRSMONPMONLGWRARCHRECOLcknDnnnCKPTDatafilesControlfilesRedologfilesJan-15-200030ORACLE实实例(instance)DBWRLGWRCKPTSMONPMONinstanceSGADatabufferRedoLogbufferLibrarycacheDatadictionarycacheSharedpoolControlfilesControlfilesControlfilesdatafilesControlfilesRedologfilesALTERfileParameterfilePasswordfileUserProcessServerProcessPGABackgroundprocessARCHArchivedlogfilesJan-15-200031OracleServerControlfilesControlfilesUserProcessServerProcessClientServerPGAJan-15-200032UserprocessServerprocessSELECT*FROMempORDERBYename;statementhandlehandleresultsOKOKparseExecuteFetchDML语句执执行过过程Jan-15-200033DBWRLGWRCKPTSMONPMONinstanceSGADatabufferRedoLogbufferLibrarycacheDatadictionarycacheSharedpoolARCHControlfilesControlfilesControlfilesdatafilesControlfilesRedologfilesServerProcessUPDATEempSETsal=sal*2WHEREempname=‘王海海’13452DML语句执行过过程Jan-15-200034COMMIT语句句执行过程程DBWRLGWRCKPTSMONPMONinstanceSGADatabufferRedoLogbufferLibrarycacheDatadictionarycacheSharedpoolARCHControlfilesControlfilesControlfilesdatafilesControlfilesRedologfilesServerProcessUserProcess1234Jan-15-200035系统管理工具具svrmgrl/svrmgrmsqldbaorapwdSQL*LoaderExport/ImportOEMJan-15-200036svrmgrl常用命令令Jan-15-200037启动与关闭数数据库步骤SHUTDOWNNOMOUNTMOUNTOPEN实例启动打开实例所需要的控制文件打开控制文件中定义的所有文件12Jan-15-200038ORACEL数据库启动动启动命令STARTUP[FORCE][RESTRICT][PFILE=filename][EXCLUSIVE|PARALLEL|SHARED][OPEN[RECOVER][database]|MOUNT|NOMOUNT]并行数据库启启动步骤-启动DLM锁-startupparallel-启动监听听进程Jan-15-200039ORACLE数据库关闭闭关闭数据库命命令shutdown[normal|transactional|immediate|abort]关闭数据库步步骤-停止监听听进程-查看系统统中是否存在在活动进程-用normal方式式或shutdownimmediate关关闭数据库Jan-15-200040SHUTDOWN方式Jan-15-200041ORACLE安装配置设置环境变量量NTORADMIN80-NEW-SIDTEST-INTPWDpassword-STARTMODEauto-PFILEinittest.oraUNIXORACLE_HOMEORACLE_SID......数据库安装参数数设设置置Jan-15-200042创建建数数据据库库spoolcrdbtest.lststartupnomountpfile=inittest.oraCreatedatabasetestmaxlogfiles10maxlogmembers5maxdatafiles100maxloghistory100logfilegroup1(‘‘/dev/rdrd/drd4’’,’’/dev/rdrd/drd5’’)size10m,group2(‘‘/dev/rdrd/drd6’’,’’/dev/rdrd/drd7’’)size10mdatafile‘/dev/rdrd/drd10’’size100mcharactersetzhs16cgb231280;Jan-15-200043创建数数据库库--创建数数据字字典sql.bsq创建数数据库库基表表catalog.sql数据字字典视视图catproc.sqlPL/SQLdbms*.sql&prvt*.plb数据库库包体体/包包头pupbld.sqlJan-15-200044创建数数据库库--故障处处理监控日日志文文件install.logmake.logholdfile.log常见安装装问题解解决Jan-15-200045控制文件件管理控制文件件作用控制文件件信息数据库名名称数据文件件定位重做日志志文件定定位表空间名名称当前sequence号checkpoint信息备份信息息...控制文件件管理备份重建保持控制制文件的的多个复复本Jan-15-200046V$CONTROLFILENAMEV$PARAMETERNAME(control_file)V$CONTROLFILE_RECORD_SECTIONTYPERECORDS_SIZERECORDS_TOTALRECORDS_USED控制文件件Jan-15-200047数据库逻逻辑结构构DatabaseTablespaceSegmentExtentOracleBlockO/SBlockDatafileLogicalPhysicalJan-15-200048数据库表表空间管管理表空间管管理Createtablespacealtertablespacedroptablespace回滚段管管理createrollbacksegmentalterrollbacksegmentdroprollbacksegmentJan-15-200049表空间管管理DBA_TABLESPACEDBA_DATA_FILESDBA_SEGMENTSDBA_EXTENTSDBA_FREE_SPACEDBA_FREE_SPACE_COALESCEDJan-15-200050重做日志(redolog)文件件重做日志文文件作用归档模式重做日志文文件管理-ALTERSYSTEMSWITCHLOGFILE;-ALTERSYSTEMCHECKPOINT;-ALTERDATABASEADDLOGFILE-ALTERDATABASEADDLOGFILEMEMBER-ALTERDATABASERENAMEFILE-ALTERDATABASEDROPLOGFILE-ALTERDATABASEDROPLOGFILEMEMBER-ALTERDATBASECLEARLOGFILE-ARCHIVELOGLISTJan-15-200051归档模式datafiles5051controlfile100101t1t2WithoutarchivingWitharchivingdatafiles5051controlfile100101t1t25151515151519952Jan-15-200052重做日志(redolog)文件V$DATABASEV$INSTANCEV$THREADV$LOGV$LOGFILEJan-15-200053数据库用户户管理用户管理createuseralteruserdropuser用户权限.profileJan-15-200054数据库备份份方案数据库的备备份方案有有以下几种种:全部或部分分卸出备份份(exp)增量卸出备备份冷备份热备份归档备份整个文件系系统的复制制Jan-15-200055卸出备份((exp))exphelp=yExample:expscott/tigerfile=exp.dmplog=exp.logbuffer=4096000full=y/nindexes=[y]/nrows=[y]/ncompress=[y]/nOWNERlistofownerusernamesTABLESlistoftablenamesGRANTSexportgrants(Y)INCTYPEincrementalexporttypeINDEXESexportindexes(Y)CONSTRAINTSexportconstraints(Y)CONSISTENTcross-tableconsistencySTATISTICSanalyzeobjects(ESTIMATE)Jan-15-200056归档备份((必须和冷冷/热备份份结合使用用)1.数据库库必须运行行在archive模式下svrmgrl>startupmountsvrmgrl>alterdatabasearchivelog;2.冷/热热备份3.数据库库控制文件件备份Jan-15-200057数据库恢复复数据库恢复复:数据表空间间/数据恢恢复控制文件恢恢复根据据备备份份方方案案的的不不同同,,恢恢复复也也有有以以下下两两种种方方法法::1.数数据据imp((倒倒入入))2.表表空空间间recoverJan-15-200058imphelp=yExample:impscott/tigerfile=exp.dmpfull=yrows=yindex=ylog=imp.log注意意::由于于在在imp的的过过程程中中,,部部分分约约束束及及角角色色将将由由于于对对象象倒倒入入的的先先后后顺顺序而而丢丢失失,,必必须须用用手手工工重重新新创创建建或或进进行行第第二二次次imp((不不倒倒入入数数据据))对比imp.log和exp.log文件件,观观察是是否存存在数数据未未倒入入Jan-15-200059表空间间恢复复临时表表空间间:临时表表空间间并不不包含含真正正的数数据,,恢复复的方方法是是删除除临时时表空空间并重重建即即可系统表表空间间:系统处处于noarchivelog模模式下下或备备份不不可用用,重重建数数据库库系统处处于archivelog模模式下下,恢恢复步步骤同同用户户表空空间回滚表表空间间:删除回回滚段段,删删除回回滚表表空间间,重重建回回滚表表空间间及回回滚段段Jan-15-200060用户表表空间间:错误现现象::在启动动数据据库时时出现现ORA-01157,ORA-01110或或操作作系统统级错错误如如ORA-07360;;在关关闭数数据库库(使使用shutdown或或shutdownimmediate)时时出现现错误误ORA-01116,ORA-01110及及操作作系统统级错错误ORA-073681.用户的的表空间可可以被轻易易地重建最近导出的的对象是可可用的或表表空间中的的对象可以以被轻易地地重建等.在这种情况况下,最简简单的方法法是offline并删除该该数据文件件,删除表表空间并重建建表空间以以及所有的的对象并重重建表空间间及所有对对象.2.数据据库运行在在archivemode下下,恢复步步骤为:将备份回拷拷覆盖被损损坏的数据据文件;回回拷(冷/热)备份份后生成的的所有日志文文件svrmgrl>recoverdatafilefilename;svrmgrl>alterdatabaseopenresetlogs;Jan-15-200061控制文件的的恢复:1.存在在一个或多多个控制文文件可用关闭数据库库,复制可可用的控制制文件2.所有有的控制文文件均被破破坏重建控制文文件:svrmgrl>startupnomountsvrmgrl>@cre.sql ----重建建控制文件件脚本Jan-15-200062CREATECONTROLFILEREUSEDATABASE"YY1"NORESETLOGSNOARCHIVELOGMAXLOGFILES32MAXLOGMEMBERS2MAXDATAFILES256MAXINSTANCES8MAXLOGHISTORY800LOGFILEGROUP1'/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-200063数据据库库优优化化数据据库库优优化化工工作作重重要要性性数据据库库优优化化过过程程数据据库库优优化化基基础础知知识识数据据库库优优化化内内容容数据据库库性性能能诊诊断断工工具具优化化技技巧巧及及脚脚本本ORACLE技技术术热热线线Jan-15-200064数据库基基础知识识ORACLE数数据库系系统数据据存储的的物理结结构和逻逻辑结构构模式对象象的组成成ORACLE数数据库系系统的进进程以及及内存结结构构成成ORACLE锁锁的概念念介绍二阶段提提交的概概念用户、角角色、权权限的概概念的介介绍举例介绍ORACLE是如何何处理一个个事务Jan-15-200065ORACLE事务处处理过程首先必须有有一台主机机或数据库库服务器运运行一个ORACLEINSTANCE工作站运行行一个应用用,它试图图通过适当当的SQL*NET驱动同服服务器取得得联系如果该服务务器也正在在运行适当当的SQL*NET驱动。服服务器检测测到应用的的连接请求求,开始为为此用户进进程创建一一个专用的的服务器进进程客户端的用用户执行一一个SQL语句并提提交此进程程服务器进程程收到此SQL语句句,并开始始检验在ORACLE的共享享池中是否否存在同样样的SQL语句。如如果在共享享池中发现现该SQL语句,服服务器进程程开始检验验该用户是是否对请求求的数据有有操作的权权限,然后后使用在共共享池中的的SQL语语句去执行行该语句。。如果该SQL语句句在共享池池中不存在在,就为此此语句分配配一个新的的共享池区区以便它能能够被解析析、执行服务器进程程从实际的的数据文件件或共享池池中取回必必须的数据据服务器进程程在在共享享池中修改改数据。在在上述所作作的生效之之后,DBWR后台台进程把修修改后的数数据块永久久的写入硬硬盘。在此此事务提交交成功之后后,LGWR进程立立即把此事事务记录到到在线的redologfile如果此事务务成功,服服务器进程程通过网络络返回一个个成功的信信息给应用用程序。如如果该事务务不成功,,将返回一一个适当的的信息在上述的事事务过程中中,其余的的后台进程程同样在运运行,等待待着条件符符合而被触触发。此外外,数据库库服务器还还管理着其其他用户的的事务,并并且在不同同事务之间间提供数据据一致性,,防止不同同事务对相相同数据操操作Jan-15-200066数据库优化化内容数据库建库库优化数据库初始始化文件数据库空间间优化系统设计优优化SQL语句句优化SGA优化化I/O、CPU优化化系统性能瓶瓶颈分析常见问题分分析Jan-15-200067数据库空间间设计优化化表空间设计计的原则为为:把由用户创创建的其余余表空间同同SYSTEM表空空间进行分分离把系统的数数据表空间间同索引表表空间分离离把操作频繁繁和不经常常操作的表表划分在不不同的表空空间中分离用户数数据和回滚滚段的数据据以防止某某个磁盘出出现故障丢丢失数据为特殊类型型的数据库库使用保留留某个表空空间回滚表空间间分配原则则临时表空间间分配原则则Jan-15-200068回滚段空间间分配原则则一个事务的的回退信息息可以写到到当前例程程中正在被被使用的任任何的一个个回滚段中中一个事务的的所有回退退信息只能能写入一个个回滚段中中多个事务的的回退信息息可以同时时写入同一一个回滚段段中,甚至至可以同时时写入一个个EXTENT中当回滚段的的EXTENT中的的所有事务务都被提交交或回退了了,此EXTENT就可以被被重新使用用一旦回滚滚段的某某个EXTENT被重重新使用用,在此此EXTENT中的所所有信息息都不在在可用在系统需需要更多多的空间间时,如如果回滚滚段的下下一个EXTENT中中有活动动事务,,例程就就会扩展展此回滚滚段select、、insert、update、delete语语句都可可能会使使数据库库从多个个回滚段段去读数数据回滚段的的头永远远不会移移入当前前被rollback的事务务为所占占用的extent中中当回滚段段的头进进行扩展展时,他他是按顺顺序的,,不会跳跳过环中中的EXTENT如果回滚滚段的头头不能使使用下一一个extent,它它就会另另外分配配一个extent,,并把它它插入环环中Jan-15-200069系统设计计时作的的优化ORACLE存存储基基本单位位----BLOCK建表参数数建索引参参数索引结构构Jan-15-200070系统设计计时作的的优化----建表参参数Jan-15-200071SQL语语句优化化ORACLE优化方式式COST_BASED(基于于代价))RULE_BASED(基于于规则))索引的使使用如何写高高效的SQL语语句写相同的的SQL语句,,保证程程序能够够利用共共享池的的内容,,加快程程序的执执行速度度写能够利利用索引引并且能能够符合合基于代代价的优优化条件件的SQL语句句尽量利用用PL/SQL的特性性减少网网络的传传输使用存储储过程,,以减少少网络的的传输和和提高系系统的编编译速度度Jan-15-200072无法使用用到索引引的SQL语句句COLUMN1>(<,>=,<=)COLUMN2其中COLUMN1和和COLUMN2在同同一张表表中COLUMNIS(ISNOT)NULLCOLUMNNOTINCOLUMN!=EXPRCOLUMNLIKE‘‘%ANYTHING’在上述条条件中不不管COLUMN上是是否有建建索引,,SQL语句都都不会利利用索引引。EXPR是一个个表达式式,它用用运算符符或函数数操作在在该列上上例如:EXPR*COLUMN=ANYTHINGNOTEXISTSSUBQUERY不包含未未被索引引的列的的任何条条件在LIKE表达达式中如如果模糊糊的列为为数字或或日期的的话在ORACLE内部的的本身的的数据转转换Jan-15-200073数据库常常见性能能分析表空间的的剩余空空间的问问题表的锁的的问题表的链接接问题索引的查查找速度度降慢问问题表操作作速度度降慢慢的问问题Jan-15-200074性能检检测工工具EXPLAIN的使使用介介绍EXPLAINPLAN的的加强强版TKPROF的的使用用介绍绍UTLBSTAT/UBLESTAT使用用介绍绍第三方方产品品Jan-15-200075EXPLAINEXPLIANPLAN作作用执行EXPLAINPLAN前前期准准备工工作EXPLAIN语语法explainplan((setstatementid='text’’)forstatementPLAN_TABLE结构Jan-15-200076EXPLAINPLANSelectid,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-200077TKPROF使用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/passwdJan-15-200078TKPROFTKPROF输出的文件件中关键字含含义:count一一个语句被被语法分析、、执行和取数数的次数cpu 对语语句的所有语语法分析,执执行或取数调调用的总CPU时间(以以秒计)elapsed 对语句句的所有语法法分析,执行行或取数调用用的总耗费时时间(以秒计计)disk对对所有语法分分析,执行或或取数调用的的,从磁盘数数据文件上数数据块物理读的总数query对对所有有语法法分析析,执执行或或取数数调用用的,,以一一致方方式检检索的的缓冲冲区总总数,,对查询询来说说,通通常用用一致致性方方式检检索缓缓冲区区current以以当前前方式式检索索的缓缓冲区区总数数。对对INSERT,UPDATE和和DELETE语句通常常用当当前方方式检检索缓缓冲区区Query和和current的的和是是存取取的缓缓冲区区的总数rows由由SQL语句句处理理的总总行数数。对对于SELECT语语句而而言,,返回回的行行数出出现在取数数的步步骤,,对UPDATE、、DELETE和INSERT语语句而而言,,处理理的行数出出现在在执行行步骤骤Jan-15-200079Example:在在执行行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'callcountcpuelapseddiskquerycurrentrows------------------------------------------------------------------Parse00.000.000000Execute10.000.000001Fetch123.00.003223022243993----------------------------------------------------------------------total223.000.003993022243993………RowsExecutionPlan----------------------------------------------------------0SELECTSTATEMENTGOAL:CHOOSE1NESTEDLOOPS43993TABLEACCESSGOAL:ANALYZED(FULL)OF'STAFF_MEMBER'29TABLEACCESSGOAL:ANALYZED(BYROWID)OF'WORK_AREA'29INDEXGOAL:ANALYZED(UNIQUESCAN)OF'SYS_C007339'(UNIQUE)…...Jan-15-200080UTLBSTAT/UTLESTAT:设置TIMED_STATISTICS=TRUEsvrmgrl>@utlbstatsvrmgrl>@utlestat系统将将生成成report.txt文本本文件件便于于分析析优化技技巧和和常用用脚本本:Jan-15-200081ORACLE技技术支支持网网站Jan-15-200082I.oerrerror_typeerror_noORACLE提提供了了一个个非常常实用用的故故障判判断命命令oerr,,格式式:oerroraerror_no,使使用该该命令令能够够解决决大多多数使使用ORACLE中中所遇遇到的的“故故障””:Example1:$oerrora30100301,00000,"errorinaddinglogfile'%s'-filecannotbecreated"//*Cause:Thecreationofthelogfilefailed//*Action:Check:1)thereisenoughspaceonthedevice//2)thenameofthefileisvalid//3)thedeviceisonline//4)anIOerroroccurred//consultassociatederrorsforfurtherinformation.Jan-15-200083Example2:$oerrora154201542,00000,"tablespace'%s'isoffline,cannotallocatespaceinit"//*Cause:Triedtoallocatespaceinanofflinetablespace//*Action:Bringthetablespaceonlineorcreatetheobjectin//othertablespaceJan-15-200084Example3:$oerrora403104031,00000,"unabletoallocate%sbytesofsharedmemory(\"%s\",\"%s\",\"%s\")"//*Cause:Moresharedmemoryisneededthanwasallocatedinthe//sharedpool.//*Action:Eitherusethedbms_shared_poolpackagetopinlarge//packages,reduceyouruseofsharedmemory,orincreasethe//amountofavailablesharedmemorybyincreasingthevalueofthe//init.oraparameter"shared_pool_size".Jan-15-200085II.无法自行解解决错误对于以下错错误,一般般是由于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-1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论