1、-范文最新推荐- 大型ORACLE数据库优化设计方案 摘要主要从大型数据库ORACLE环境四个不同级别的调整分析入手,分析ORACLE的系统结构和工作机理,从九个不同方面较全面地总结了ORACLE数据库的优化调整方案。关键词ORACLE数据库环境调整优化设计方案对于ORACLE数据库的数据存取,主要有四个不同的调整级别,第一级调整是操作系统级包括硬件平台,第二级调整是ORACLERDBMS级的调整,第三级是数据库设计级的调整,最后一个调整级是SQL级。通常依此四级调整级别对数据库进行调整、优化,数据库的整体性能会得到很大的改善。下面从九个不同方面介绍ORACLE数据库优化设计方案。一.数据库优
2、化自由结构OFA(OptimalflexibleArchitecture)数据库的逻辑配置对数据库性能有很大的影响,为此,ORACLE公司对表空间设计提出了一种优化结构OFA。使用这种结构进行设计会大大简化物理设计中的数据管理。优化自由结构OFA,简单地讲就是在数据库中可以高效自由地分布逻辑数据对象,因此首先要对数据库中的逻辑对象根据他们的使用方式和物理结构对数据库的影响来进行分类,这种分类包括将系统数据和用户数据分开、一般数据和索引数据分开、低活动表和高活动表分开等等。二、充分利用系统全局区域SGA(SYSTEMGLOBALAREA)SGA是oracle数据库的心脏。用户的进程对这个内存区发
3、送事务,并且以这里作为高速缓存读取命中的数据,以实现加速的目的。正确的SGA大小对数据库的性能至关重要。SGA包括以下几个部分:2、字典缓冲区。该缓冲区内的信息包括用户账号数据、数据文件名、段名、盘区位置、表说明和权限,它也采用LRU方式管理。3、重做日志缓冲区。该缓冲区保存为数据库恢复过程中用于前滚操作。4、SQL共享池。保存执行计划和运行数据库的SQL语句的语法分析树。也采用LRU算法管理。如果设置过小,语句将被连续不断地再装入到库缓存,影响系统性能。另外,SGA还包括大池、JAVA池、多缓冲池。但是主要是由上面4种缓冲区构成。对这些内存缓冲区的合理设置,可以大大加快数据查询速度,一个足够
4、大的内存区可以把绝大多数数据存储在内存中,只有那些不怎么频繁使用的数据,才从磁盘读取,这样就可以大大提高内存区的命中率。三、规范与反规范设计数据库1、规范化2、反规范化反规范的必要性是否规范化的程度越高越好呢?答案是否定的,应根据实际需要来决定,因为“分离”越深,产生的关系越多,结构越复杂。关系越多,连接操作越频繁,而连接操作是最费时间的,在数据库设计中特别对以查询为主的数据库设计来说,频繁的连接会严重影响查询速度。所以,在数据库的设计过程中有时故意保留非规范化约束,或者规范化以后又反规范,这样做通常是为了改进数据库的查询性能,加快数据库系统的响应速度。反规范技术在进行反规范设计之前,要充分考
5、虑数据的存取需求,常用表的大小、特殊的计算、数据的物理存储等。常用的反规范技术有合理增加冗余列、派生列,或重新组表几种。反规范化的好处是降低连接操作的需求、降低外码和索引数目,减少表的个数,从而提高查询速度,这对于性能要求相对较高的数据库系统来说,能有效地改善系统的性能,但相应的问题是可能影响数据的完整性,加快查询速度的同时降低修改速度。3、数据库设计中的优化策略数据应当按两种类别进行组织:频繁访问的数据和频繁修改的数据。对于频繁访问但是不频繁修改的数据,内部设计应当物理不规范化。对于频繁修改但并不频繁访问的数据,内部设计应当物理规范化。比较复杂的方法是将规范化的表作为逻辑数据库设计的基础,然
6、后再根据整个应用系统的需要,物理地非规范化数据。规范与反规范都是建立在实际的操作基础之上的约束,脱离了实际两者都没有意义。只有把两者合理地结合在一起,才能相互补充,发挥各自的优点。四、合理设计和管理表1、利用表分区分区将数据在物理上分隔开,不同分区的数据可以制定保存在处于不同磁盘上的数据文件里。这样,当对这个表进行查询时,只需要在表分区中进行扫描,而不必进行FTS(FullTableScan,全表扫描),明显缩短了查询时间,另外处于不同磁盘的分区也将对这个表的数据传输分散在不同的磁盘I/O,一个精心设置的分区可以将数据传输对磁盘I/O竞争均匀地分散开。2、避免出现行连接和行迁移在建立表时,由于
7、参数pctfree和pctused不正确的设置,数据块中的数据会出现行链接和行迁移,也就是同一行的数据不保存在同一的数据块中。如果在进行数据查询时遇到了这些数据,那么为了读出这些数据,磁头必须重新定位,这样势必会大大降低数据库执行的速度。因此,在创建表时,就应该充分估计到将来可能出现的数据变化,正确地设置这两个参数,尽量减少数据库中出现行链接和行迁移。3、控制碎片碎片(fragmentation)是对一组非邻接的数据库对象的描述。碎片意味着在执行数据库的功能时要耗费额外的资源(磁盘I/O,磁盘驱动的循环延迟,动态扩展,链接的块等),并浪费大量磁盘空间。当两个或多个数据对象在相同的表空间中,会发
8、生区间交叉。在动态增长中,对象的区间之间不再相互邻接。为了消除区间交叉将静态的或只有小增长的表放置在一个表空间中,而把动态增长的对象分别放在各自的表空间中。在createtable、createindex、createtablespace、createcluster时,在storage子句中的参数的合理设置,可以减少碎片的产生。4、别名的使用别名是大型数据库的应用技巧,就是表名、列名在查询中以一个字母为别,名,查询速度要比建连接表快1.5倍。5、回滚段的交替使用由于数据库配置对应用表具有相对静止的数据字典和极高的事务率特点。而且数据库的系统索引段、数据段也具有相对静止,并发现在应用中最高的负荷
9、是回滚段表空间。把回滚段定义为交替引用,这样就达到了循环分配事务对应的回滚段,可以使磁盘负荷很均匀地分布。五、索引Index的优化设计1、管理组织索引索引可以大大加快数据库的查询速度,索引把表中的逻辑值映射到安全的RowID,因此索引能进行快速定位数据的物理地址。但是有些DBA发现,对一个大型表建立的索引,并不能改善数据查询速度,反而会影响整个数据库的性能。这主要是和SGA的数据管理方式有关。ORACLE在进行数据块高速缓存管理时,索引数据比普通数据具有更高的驻留权限,在进行空间竞争时,ORACLE会先移出普通数据。对一个建有索引的大型表的查询时,索引数据可能会用完所有的数据块缓存空间,ORA
10、CLE不得不频繁地进行磁盘读写来获取数据,因此在对一个大型表进行分区之后,可以根据相应的分区建立分区索引。如果对这样大型表的数据查询比较频繁,或者干脆不建索引。另外,DBA创建索引时,应尽量保证该索引最可能地被用于where子句中,如果对查询只简单地制定一个索引,并不一定会加快速度,因为索引必须指定一个适合所需的访问路径2、聚簇的使用Oracle提供了另一种方法来提高查询速度,就是聚簇(Cluster)。所谓聚簇,简单地说就是把几个表放在一起,按一定公共属性混合存放。聚簇根据共同码值将多个表的数据存储在同一个Oracle块中,这时检索一组Oracle块就同时得到两个表的数据,这样就可以减少需要
11、存储的Oracle块,从而提高应用程序的性能。六、多CPU和并行查询PQO(ParallelQueryOption)方式的利用1、尽量利用多个CPU处理器来执行事务处理和查询CPU的快速发展使得ORACLE越来越重视对多CPU的并行技术的应用,一个数据库的访问工作可以用多个CPU相互配合来完成,加上分布式计算已经相当普遍,只要可能,应该将数据库服务器和应用程序的CPU请求分开,或将CPU请求从一个服务器移到另一个服务器。对于多CPU系统尽量采用ParallelQueryOption(PQO,并行查询选项)方式进行数据库操作。2、使用ParallelQueryOption(PQO,并行查询选择)
12、方式进行数据查询使用PQO方式不仅可以在多个CPU间分配SQL语句的请求处理,当所查询的数据处于不同的磁盘时,一个个独立的进程可以同时进行数据读取。3、使用SQL*LoaderDirectPath选项进行大量数据装载使用该方法进行数据装载时,程序创建格式化数据块直接写入数据文件中,不要求数据库内核的其他I/O。七、实施系统资源管理分配计划ORACLE提供了DatabaseResourceManager(DRM,数据库资源管理器)来控制用户的资源分配,DBA可以用它分配用户类和作业类的系统资源百分比。在一个OLDP系统中,可给联机用户分配75%的CPU资源,剩下的25%留给批用户。另外,还可以进
13、行CPU的多级分配。除了进行CPU资源分配外,DRM还可以对资源用户组执行并行操作的限制。八、使用最优的数据库连接和SQL优化方案1、使用直接的OLEDB数据库连接方式。通过ADO可以使用两种方式连接数据库,一种是传统的ODBC方式,一种是OLEDB方式。ADO是建立在OLEDB技术上的,为了支持ODBC,必须建立相应的OLEDB到ODBC的调用转换,而使用直接的OLEDB方式则不需转换,从而提高处理速度。2、使用ConnectionPool机制在数据库处理中,资源花销最大的是建立数据库连接,而且用户还会有一个较长的连接等待时间。解决的办法就是复用现有的Connection,也就是使用Conn
14、ectionPool对象机制。ConnectionPool的原理是:IIS+ASP体系中维持了一个连接缓冲池,这样,当下一个用户访问时,直接在连接缓冲池中取得一个数据库连接,而不需重新连接数据库,因此可以大大地提高系统的响应速度。3、高效地进行SQL语句设计通常情况下,可以采用下面的方法优化SQL对数据操作的表现:(1)减少对数据库的查询次数,即减少对系统资源的请求,使用快照和显形图等分布式数据库对象可以减少对数据库的查询次数。(2)尽量使用相同的或非常类似的SQL语句进行查询,这样不仅充分利用SQL共享池中的已经分析的语法树,要查询的数据在SGA中命中的可能性也会大大增加。(3)限制动态SQ
15、L的使用,虽然动态SQL很好用,但是即使在SQL共享池中有一个完全相同的查询值,动态SQL也会重新进行语法分析。(4)避免不带任何条件的SQL语句的执行。没有任何条件的SQL语句在执行时,通常要进行FTS,数据库先定位一个数据块,然后按顺序依次查找其它数据,对于大型表这将是一个漫长的过程。(5)如果对有些表中的数据有约束,最好在建表的SQL语句用描述完整性来实现,而不是用SQL程序中实现。(6)可以通过取消自动提交模式,将SQL语句汇集一组执行后集中提交,程序还可以通过显式地用COMMIT和ROLLBACL进行提交和回滚该事务。(7)检索大量数据时费时很长,设置行预取数则能改善系统的工作表现,
16、设置一个最大值,当SQL语句返回行超过该值,数值库暂时停止执行,除非用户发出新的指令,开始组织并显示数据,而不是让用户继续等待。九、充分利用数据的后台处理方案减少网络流量1、合理创建临时表或视图所谓创建临时表或视图,就是根据需要在数据库基础上创建新表或视图,对于多表关联后再查询信息的可建新表,对于单表查询的可创建视图,这样可充分利用数据库的容量大、可扩充性强等特点,所有条件的判断、数值计算统计均可在数据库服务器后台统一处理后追加到临时表中,形成数据结果的过程可用数据库的过程或函数来实现。2、数据库打包技术的充分利用利用数据库描述语言编写数据库的过程或函数,然后把过程或函数打成包在数据库后台统一
17、运行包即可。3、数据复制、快照、视图,远程过程调用技术的运用数据复制,即将数据一次复制到本地,这样以后的查询就使用本地数据,但是只适合那些变化不大的数据。使用快照也可以在分布式数据库之间动态复制数据,定义快照的自动刷新时间或手工刷新,以保证数据的引用参照完整性。调用远程过程也会大大减少因频繁的SQL语句调用而带来的网络拥挤。总之,对所有的性能问题,没有一个统一的解决方法,但ORACLE提供了丰富的选择环境,可以从ORACLE数据库的体系结构、软件结构、模式对象以及具体的业务和技术实现出发,进行统筹考虑。提高系统性能需要一种系统的整体的方法,在对数据库进行优化时,应对应用程序、I/O子系统和操作
18、系统(OS)进行相应的优化。优化是有目的地更改系统的一个或多个组件,使其满足一个或多个目标的过程。对Oracle来说,优化是进行有目的的调整组件级以改善性能,即增加吞吐量,减少响应时间。如果DBA能从上述九个方面综合考虑优化方案,相信多数ORACLE应用可以做到按最优的方式来存取数据。参考文献1、美JoeGreene,AdvancedInformationSystems,Inc.etal.Oracle8服务器技术精粹M.清华大学出版社,19992、瓮正科王新英Oracle8.XForWindowsNT实用教程M.清华大学出版社,19993、KevinLoney.Oracle8i数据库管理员手册
19、M.机械工业出版社,20004、周渝斌基于ORACLE8i的大型数据库技术讲座之一数据库优化篇J.电脑编程技巧与维护,2002,(4):5,大型ORACLE数据库优化设计方案飞雪 一、活动目的:展示XX公司综合实力,树立公司形象,积累共享客户资源,拓展销售渠道。借此机会挖掘天津地区的潜在市场动力,推动在目标客户群中的影响力,战略性地提升品牌的知名度。文秘114建立目标客户的交流平台。二、目标客户群:地产界精英三、活动主题:XX杯中韩Golf邀请赛四、活动时间:2005年05月20日五、活动地点:XXXX高尔夫俱乐部六、参加人员:40人主办方10人特邀嘉宾30名八、预期效果:1、各大DT企业定期
20、在举办形式多样的品牌推广活动,只有具有创新意义、雅俗共赏的活动才能给人留下深刻的印象,继而对主办企业产生美好印象并自发进行企业口碑宣传。2、采用高尔夫球交流赛形式,可以营造宽松、良好的交流氛围,构建一个畅通的客户关系沟通渠道。树立公司企业形象,宣传企业经营优势。3、特邀参加活动的人员均是在地产界功成名就的风云人物。采用交互的比赛方式,可迅速拉近距离,最终达到扩展销售渠道的目的。高尔夫联谊赛企划案飞雪 转眼间我们毕业已经五年了。事业、结婚、生子已经成为我们这些人的主题。当年意气风发的同学们应该聚一聚了。聚会必要性 1.毕业是一个人的里程碑,值得纪念;毕业五年则是人生中更关键
21、的一个里程碑,心态基本稳定、职业基本稳定、家庭基本稳定;同时又在迎接新的发展; 2.五年以前的小范围聚会,大多只是相互保持联系;而五年的聚会则是大家充分交流与沟通,为新的发展提供新的契机; 总体思路及目标 因为机会难得,要组织就要组织好,组织到位。要保证以下指标: a)参加的人数多 我们不指望所有的同学都能够参加,但需要尽可能多的同学参与。这样才能体现本次聚会的意义。参加的人数太少或缺少某个片区的参与,整个活动效率将会大打折扣; b)活动要明确主题 整个活动要突出体现要达到的目标,活动安排要围绕目标展开,避免活动搞成了简单的
22、聚餐。 c)活动项目要丰富和有意义 设计的聚会内容要能够让同学们感觉到参加的必要性和重要性。能够促进更多人数参加。 主要考虑以下主旋律: i.校园重游; ii.同学重逢、叙旧; iii.一起观光旅游(可就近长沙市,也可到附近等地旅游,希望大家一起商量) iv.晚会,全程摄相,照相,并制作纪念VCD,通讯录) v.其他(大家提想法) d)活动过后促进同学间沟通和联系毕业五年,大家变化都很大:年龄、家庭、职业、地理位置等环境都发生了变化。通过聚会,使事业上相近、地域上相邻、嗜好相同的同学能够更通畅沟通,增进友
23、谊,促进共同的发展。 e)活动组织要有序和严谨 保证活动的顺利进行,保证资金有效管理,少花钱多办事; 关键字:策划书一:活动组织1.1、时间选择首先,工作时间搞活动的可能性不大。 我个人趋向于选择10月,原因如下: l同学聚会组织难度较大,很多同学杳无音讯,要通知到会比较困难。 l活动行程的方案和确定落实也需要时间; l资金到位也需要时间; 1.2、筹备阶段成立筹备小组(我本人建议由等同学负责成立,原则以方面召集同学,方便组织活动为准) 从现在开始大家就聚会的想法进行交流; 于2008年7.1节
24、成立510(5年聚会,今秋10月)筹备小组(45人), 负责收集同学们的意见并进行整理; 负责召集筹备会议: 完成活动召集任务 初步预算经费及筹集启动经费; 确定正式活动的时间; n建立银行帐号,方便大家提前汇款,专人负责活动经费财务管理n要及时在同学录上公布报名情况.和有关事宜n公布筹委会电话,信箱,方便同学们联系二:活动项目设计2.1、时间设计L我个人认为最好是集体旅游一次,在外面住一到两晚,大家都有个充分交流的时间,也能放下其他所有的事情;l整个活动内容要丰富,行程要严谨;避免出现赶行程、等行程现象; 15 / 16