ORACLE教材教学课件_第1页
ORACLE教材教学课件_第2页
ORACLE教材教学课件_第3页
ORACLE教材教学课件_第4页
ORACLE教材教学课件_第5页
已阅读5页,还剩92页未读 继续免费阅读

下载本文档

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

文档简介

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"//*Cause:Thecreationofthelogfilefailed//*Action:Check:1)thereisenoughspaceonthedevice//2)thenameofthefileisvalid//3)thedeviceisonline//4)anIOerroroccurred//consultassociatederrorsforfurtherinformation.Jan-15-200083ORACLE数据库培训教材Example2:$oerrora154201542,00000,"tablespace'%s'isoffline,cannotallocatespaceinit"//*Cause:Triedtoallocatespaceinanofflinetablespace//*Action:Bringthetablespaceonlineorcreatetheobjectin//othertablespaceJan-15-200084ORACLE数据库培训教材Example3:$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-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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论