1、 会话级:如果我们能够确定某个会话存在性能问题,用SQL_TRACE/10046进行SQL跟踪,了解执行计划、解析过程、会话中的等待事件。
2、 实例级:当无法确定哪个会话性能有问题,就需要从实例级别来分析问题的所在。
a、 整体性能评估时,查看动态视图v$sysstat,v$system_events等。Oracle10之前,statspack工具包是做实例级性能分析的首选工具,它定期收集数据库的性能信息,然后生成报告;在10g,AWR自动收集信息,采集周期是1小时,ADDM基于AWR的数据。
b、 及时分析时,使用ASH更容易定位到问题的所在。基于ASH的EM-Top Activity是最好性能分析的工具
数据库时间模型:
响应时间一般分为服务时间(Service time)和等待时间(Wait time),服务时间指进程占用CPU的时间,包括前台进程(Server process)和后台进程(Backgroud process),我们一般只关注前台进程占用的CPU time。等待时间包括很多类型,一般最常见的是IO等待和并发等待,IO等待包括sequential read,scattered read和log file sync等等,而并发等待主要是latch和enqueue。SQL execute elapsed time指用户进程执行SQL的响应时间,包含CPU time和wait time。
以下是Oracle数据库的时间模型:
Configuration :由于设置不当引起,比如enq: TX - allocate ITL entry
Application; 应用逻辑出问题引起,比如enq: TX - row lock contention
Commit: long file sync 引起
Concurrency: 其他重要并行原因引起,latch; buffer busy waits; library cache lock/pin
-----------------------------------------------------------------------------------------------分布式架构采用MySQL数据库,集中式架构采用Oracle数据库,前者通过数据拆分(Sharding)、读写分离,解决海量数据处理和弹性扩展的问题, 集中式Oracle数据库则用于保存核心数据,提供简单可靠的数据存储和访问服务。合理的使用Oracle和MySQL数据库,集中式架构和分布式架构共 存,不仅可以控制Oracle数据库的压力和规模,而且可以降低整体开发成本和维护成本。
读写分离架构利用了数据库的复制技术,将读和 写分布在不同的处理节点上,从而达到提高可用性和扩展性的目的
数据分片(Sharding)的原理就是将数据做水平切分,类似于hash分区 的原理,通过应用架构解决访问路由和数据合并的问题。Sharding架构的优势在于,集群扩展能力很强,几乎可以做到线性扩展,而且整个集群的可用性也 很高,部分节点故障,不会影响其他节点提供服务。Sharding原理简单,容易实现,是一种非常好的解决数据库扩展性的方案。但是Sharding对应 用场景的要求很高,因为一旦使用数据分片架构,如果需要跨不同的节点做join,或者统计类型的操作,将会变得非常困难,应该尽量避免。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7399830/viewspace-741601/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/7399830/viewspace-741601/