《oracle实训培训教程.ppt》由会员分享,可在线阅读,更多相关《oracle实训培训教程.ppt(60页珍藏版)》请在三一办公上搜索。
1、Oracle数据库的工作原理,自我介绍,Oracle数据库的物理结构,Spfile(pfile)ControlfileDatafileRedo logfilePassword fileArchivelog,Oracle数据库的逻辑结构,DatabaeTablespaceSegmentExtentBlockTableIndex,逻辑结构之间的关系,逻辑结构和物理结构的关系,segment,什么是segmentSegment的type什么是segment的hwm(high water mark)Hwm对sql性能的影响如何降低hwm降低hwm时需要注意什么,Oracle db的优势到底在哪里,1、
2、有独立的undo做保证2、可以很容易的实现consistent read3、唯一不支持dirty read的数据库4、唯一select无需加锁的数据库5、对并发性的支持优于其他数据库6、锁的粒度非常小7、唯一支持flashback的数据库,undo,Undo segment的3大用处,Select无需加锁的原因,Undo自动管理减轻dba的管理任务,Undo segment的类型,自动undo管理,Undo使用监控,Undo空间估算,Ora-01555错误的模拟与分析,参数undo_retention的重要意义Ora-01555为什么会出现Ora-01555的模拟Ora-01555出现的原理分
3、析如何尽可能的避免Ora-01555错误,什么是oracle实例,Oracle实例的重要组成部分,后台进程(background process)select*from v$bgprocess共享内存(sga:system global area)select*from v$sga_dynamic_components,实例的启动过程,Checkpoint和实例恢复调整,理解checkpoint在oracle db中的重要意义理解dbwr的写机制理解lgwr的写机制理解实例恢复的过程理解redo的大小对性能的影响,合理使用计算机资源,和计算机交互无非是和下面5种重要资源交互:File(disk
4、 io)Memory(为什么计算机要使用内存?减少物理io)Network CpuProcess,Db memory 调整,明确oracle使用内存的主件理解sga使用内存的原理理解pga使用内存的原理,了解和Sga相关的参数,理解lock_sga的作用,注意windows下不起作用理解sga_max_size的作用(从9.2版本引入)理解sga_target的作用(从10.1版本引入)理解参数pre_page_sga的作用,Sga的组成,Shared_poolData bufferRedo log bufferLarge poolJava poolStream pool,Sga自动管理,Sg
5、a自动管理的优缺点如何设置sga自动管理Sga自动管理之后老参数的作用如何正确使用sga自动管理如何通过sga advisor来给sga设定合理的值使用sga advisor的条件参数statistics_level的作用,Sga advisor的数据来源,数据源于下面查询 SELECT sga_size,(1-estd_db_time_factor)*100 FROM v$sga_target_advice order by 1如何读懂advisor曲线根据advisor判断sga设置是否合理,Sga advisor的曲线分析,根据曲线指示正确设置sga_target的值,防止设置过大浪费物
6、理内存、设置过小影响系统性能,Data buffer调整,Data buffer的作用就如同memory对计算机的作用是同样的道理,没有memory的计算机我们无法想想哪的慢到什么程度Sga自动管理下db_cache_size的作用正确使用 buffer cache advisorBuffer cache advisor的数据来源 select size_for_estimate,a.estd_physical_read_factor from v$db_cache_advice a,Buffer cache advisor的意义,Shard pool的作用,Oracle引入shard poo
7、l的意图我们能正确领会oracle的意图吗在某种程度上shared pool的大小不能直接决定系统的性能什么是绑定变量在oltp系统中不使用绑定变量的危害是什么Olap系统为什么不建议使用绑定变量,Shard pool 调整,正确使用shared pool advisorShared pool advisor的数据来源 select a.SHARED_POOL_SIZE_FOR_ESTIMATE,a.ESTD_LC_TIME_SAVED_FACTOR from v$shared_pool_advice a,shared pool advisor曲线的意义,根据曲线的含义正确设定shared_p
8、ool_size的值,Pga 调整,pga_aggregate_target的作用Pga的内存在何时分配Pga的内存是源于os还是oracle什么是工作区workarea_size_policy的意义在pga自动管理的情况下,sort_area_size和hash_area_size在什么情况下还可以发挥作用,Pga advisor的使用,Pga advisor的数据来源 select*from v$pga_target_advice如何读懂advisor曲线根据advisor曲线判断pga设置是否合理,合理使用view,View可以增加程序的可读性、控制数据的安全访问,也是面向对象特性的一个
9、体现,但是view的使用在某种程度上对sql性能没有任何提高,合理使用trigger,在大型的、复杂的应用里尽可能的少使用trigger,使用它方便的同时可能不仅会使应用的灵活性受到限制同时可能会对性能产生影响如果trigger实现的功能很复杂,那么最好把复杂的业务逻辑通过procedure或者function来实现之后再在trigger里调用process或者function,多使用procedure、function或者package,procedure、function,package进行了预编译procedure、function,package中sql自动使用绑定变量,尽可能的多使用
10、synonym,Synonym的引入是oracle面向对象思想的又一重要体现,在procedure、function,package里尽可能的多使用Synonym以减少由于对象(如表)名字改变而大量修改引用该对象的procedure、function,package;同时synonym的使用可以封装如:schema.object_namnedblink这种远程对象的使用,使用户更加安全的透明访问对象,少使用sequence,使用sequence有时候确实很方便,不过sequence不能保证绝对的连续,而且如果对sequence的一些特性(如cache)控制不好会对性能产生影响,合理使用外键,在
11、大型的、复杂的应用里尽可能的少使用外键,外键的使用会使数据的完整性、一致性得到有力保障,但是它的使用有时会使应用的灵活性受到很大限制,如果不使用它,那么数据的完整性和一致性完全需要我们应用开发人员自己来控制,这对应用设计和开发人员都提出了很高的要求,这个到底是否使用根据自己的应用特点和团队技术实力自行选择,Index,Index的分类Index的原理Index的scan方式Index的维护,rowid,B-tree index,Execute plan(执行计划),什么是执行计划如何看懂执行计划The execution order in EXPLAIN PLAN output begins
12、with the line that is the furthest indented to the right.The next step is the parent of that line.If two lines are indented equally,then the top line is normally executed first.,利用树形结构巧妙读懂执行计划,什么是执行计划里的COST,执行计划-Plan hash value:2598313856-|Id|Operation|Name|Rows|Bytes|Cost(%CPU)|Time|-|0|SELECT STAT
13、EMENT|1|35(3)|00:00:01|1|SORT AGGREGATE|1|2|VIEW|DBA_OBJECTS|9919|35(3)|00:00:01|3|UNION-ALL|*4|FILTER|*5|HASH JOIN|11540|867K|34(3)|00:00:01|6|TABLE ACCESS FULL|USER$|31|93|2(0)|00:00:01|*7|TABLE ACCESS FULL|OBJ$|11540|833K|31(0)|00:00:01|*8|TABLE ACCESS BY INDEX ROWID|IND$|1|8|2(0)|00:00:01|*9|IND
14、EX UNIQUE SCAN|I_IND1|1|1(0)|00:00:01|10|NESTED LOOPS|1|16|1(0)|00:00:01|11|INDEX FULL SCAN|I_LINK1|1|13|0(0)|00:00:01|12|TABLE ACCESS CLUSTER|USER$|1|3|1(0)|00:00:01|*13|INDEX UNIQUE SCAN|I_USER#|1|0(0)|00:00:01|-,COST是如何估算的,Cost=(#SRds*sreadtim+#MRds*mreadtim+#CPUCycles/cpuspeed)/sreadtim where:#S
15、RDs is the number of single block reads#MRDs is the number of multi block reads#CPUCycles is the number of CPU Cycles*)sreadtim is the single block read time mreadtim is the multi block read time cpuspeed is the CPU cycles per second CPUCycles includes CPU cost of query processing(pure CPU cost)and
16、CPU cost of data retrieval(CPU cost of the buffer cache get).,Cpu资源对成本的影响,To ensure that CPU costing is in use:In Oracle9i,use dbms_stats.gather_system_stats to collect statistics Set the undocumented parameter _optimizer_cost_model=cpu;,执行计划中filter和access的区别,Filter是纯粹的过滤条件Access表明该条件对optimizer的访问路径
17、可能产生影响Access path如:Full table scanIndex scan 或者uinque scan等,Optimizer statistics,什么是优化器统计信息表的优化器统计信息(dba_tables&dba_tab_statistics)列的优化器统计信息(dba_tab_cols&dba_tab_col_statistics)Index的优化器统计信息(dba_indexes&dba_ind_statistics),如何搜集优化器统计信息,Analyze table table_name compute statistincs cascade;Exec dbms_st
18、ats.gather_table_statsExec dbms_stats.gather_index_statsExec dbms_stats.gather_schema_statsExec dbms_stats.gather_database_stats,histogram(柱状图),什么是柱状图柱状图的类型Understanding Height-Based Histograms Understanding Value-Based Histograms 如何获取histogram的信息(dba_tab_histograms&DBA_HISTOGRAMS),Exp/imp的缺陷,Client工具依赖网络对网络造成的负载比较严重不支持并行不支持交互,Expdp/impdp,Server端工具不依赖网络在后台开启job执行支持并行支持交互,Expdp/impdp的工作原理,通过em监控主机和db对cpu的使用,通过em监控系统io的使用,通过em监控实例的吞吐量,A&Q谢谢,