Oracle数据库性能模型.doc

Oracle数据库性能模型.doc

ID:57814397

大小:230.00 KB

页数:8页

时间:2020-03-30

Oracle数据库性能模型.doc_第1页
Oracle数据库性能模型.doc_第2页
Oracle数据库性能模型.doc_第3页
Oracle数据库性能模型.doc_第4页
Oracle数据库性能模型.doc_第5页
资源描述:

《Oracle数据库性能模型.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、最近一直在思考一个问题:如何为一个数据库建立性能模型?作为一名DBA来说,我们面临的一个巨大挑战是:如何保证数据库的性能可以满足快速变化的应用的需求,如何在数据量和访问量持续增长的情况下,保证应用的响应时间和数据库的负载处在合理的水平下。我们可能会经常面对以下的问题:某个SQL每秒要执行100次,响应时间是多少?某个应用发布后,对数据库的影响如何?所以,评估应用对数据库所产生的影响,优化应用并预测风险,保证数据库的可用性和稳定性,这是应用DBA真正有价值的地方。响应时间为中心:如果要选择一个评价系统优劣的性

2、能指标,毫无疑问应该是响应时间。响应时间是客户体验的第一要素,所有的优化都应该为降低响应时间而努力。对于数据库系统也是如此,我们优化系统,优化SQL,最终目标都是为了降低响应时间,单位时间内可以处理更多的请求。数据库时间模型:响应时间一般分为服务时间(Servicetime)和等待时间(Waittime),服务时间指进程占用CPU的时间,包括前台进程(Serverprocess)和后台进程(Backgroudprocess),我们一般只关注前台进程占用的CPUtime。等待时间包括很多类型,一般最常见的是I

3、O等待和并发等待,IO等待包括sequentialread,scatteredread和logfilesync等等,而并发等待主要是latch和enqueue。SQLexecuteelapsedtime指用户进程执行SQL的响应时间,包含CPUtime和waittime。以下是Oracle数据库的时间模型:在Oracle系统中,我们可以利用AWR或Statspack报告,看到数据库的时间信息:StatisticNameTime(s)%ofDBTimesqlexecuteelapsedtime3,062.17

4、91.52DBCPU2,842.0884.95parsetimeelapsed25.870.77PL/SQLexecutionelapsedtime11.750.35sequenceloadelapsedtime7.550.23hardparseelapsedtime5.060.15connectionmanagementcallelapsedtime3.130.09hardparse(sharingcriteria)elapsedtime0.040.00repeatedbindelapsedtime0.0

5、10.00PL/SQLcompilationelapsedtime0.000.00DBtime3,345.74 backgroundelapsedtime204.91 backgroundcputime72.30 DBtime是整个数据库用户进程消耗的总时间,是从第一项到第十项时间的总和(从sqlexecuteelapsedtime到PL/SQLcompilationelapsedtime),但是我们会发现这十项时间的总和比DBTime要大一些,这是因为部分时间信息有重叠的部分,比如SQLexecuteel

6、apsedtime就包括了很大一部分DBcpu的时间。而backgroundelapsedtime和backgroundcputime则是Oracle后台进程消耗的时间和cputime。数据库响应时间分析:数据库系统的响应时间由四个要素决定:CPU,IO,内存和网络,其中CPU和IO是最重要的因素。与之相比,内存与网络则简单很多,因为通常情况下,对于一个调优的系统来说,内存访问的延迟时间非常小(100ns以下,1ms=1000000ns)相比较CPU和IO几乎可以忽略。而网络延迟则通常是一个常数,比如在一个

7、数据中心的情况下,网络的延迟一般在3ms以下,如果存在多数据中心的情况,网络延迟可能会超过20ms,所以对于一个分布式系统来说,网络延迟是必须要考虑的问题。在这里,我们不考虑分布式系统,并且忽略内存的访问延迟,重点分析CPU和IO,我们看以下数据库的AWR片段:我们看到这个系统中DBCPU占整个DBtime的87.21%,UserI/O占整个DBtime的9.12%,commit相关的IO等待占2.35%(主要是logfilesync),CPU和IO占用了整个DBtime的96.68%。由于DBCPU所占的

8、比例很高,所以这个数据库系统是CPUintensive类型,这里的DBCPU主要是执行SQL的服务时间。我们再看另外的一个数据库的AWR片段:我们看到,Commit和UserI/O占DBtime的81.46%,而DBCPU只占13.82%,所以这个数据库系统是IOinstensive类型的。PhysicalreadPhysicalread是指Oracle在buffercache中没有找到相应的block,需要从I

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。