关于预测方法
根据以上讨论,尤其是需求与竞争之间的关系,我们预测 Oracle 性能问题的方式有两种:
* 识别出以增长的速率消耗资源或在一段时间内表现出响应时间变慢的 SQL 语句。对于这些 SQL 语句,根据发展趋势识别出需要现在进行调整的 SQL,以避免将来出现问题。
* 识别出接近容量极限以及以后会形成瓶颈的数据库资源(锁、锁存器、I/O 通道等)。这些资源需要增加容量或提高利用率以达到计划的需求。
预测模型:为何少即是多
性能监控诊断优化
竞争及其影响
当两个或更多 Oracle 会话想要使用某一资源,但该资源上某种形式的限制阻止这样做时便产生了竞争。通常这些限制与并发性相关,即有关多少会话可同时使用某一资源的限制。会话就资源的使用进行竞争,并且其中至少一个会话的处理将被延迟,而必须等待资源变为可用状态。
竞争对性能具有双重影响:
* 竞争可减少数据库可处理的工作量。例如,锁竞争可减少每秒可执行的 SQL 语句数量。
* 竞争可减少系统其他部分的负载量。例如,锁竞争可实际减少 /O 需求,消除锁竞争可能导致磁盘上负载的增加。
图 3 描绘了竞争的影响。数据库处理应用程序需求的能力限制反而可使需求下降到较低的水平。实际上,这意味着竞争可减少 I/O 子系统上的需求。
由于本文旨在探讨Java"异常机制"的深层原理,因此关于"异常"的使用方法都不做详细说明。首先看一段非常熟悉的用于打开一个文件的C程序段:
FILE *fp;
fp=fopen(filename,"rw");
if(fp==NULL){
printf("cannot open file\n");
exit(0);
}
工具箱和方法论
高效的性能管理包含两个同等重要的组成部分。首先是方法论——定义为确保系统运行于最佳状态下所必须执行的任务的过程。第二个组件是工具箱——对工具的选择,通过收集性能相关的信息用来执行这些方法。当决定应用性能管理(APM)解决方案时,关键是确保所选择的工具能够作为有效且经过验证过的方法的一部分。
实际的交易
一些性能管理解决方案依赖于模拟交易的性能评价(计算机产生的用于测试应用程序性能的周期性处理过程)的性能测试。尽管这种方式能够有效的考察系统开销,但是模拟交易无法精确的洞悉真正最终用户的操作体验或者真正的事物处理的性能。模拟交易无法检测意料之外的性能问题。当决定APM解决方案时,关键之处在于确保解决方案能够对真实系统的交易性能提供24×7的评价。
我常想,管道工们整天不停地疏通清理堵塞的管道,总有一天他们肯定会讨厌那些天天相伴的管道。他们会讨厌管道上的污物,讨厌自己多年学来的技巧,更讨厌必需学那些技巧。可是那些导流的管道,能有多复杂呢?我喜欢电脑带来的通信便利,喜欢它们给我的生活提供方便,喜欢它们偶尔给我带来一些幻想,但事实上我很讨厌电脑本身。电脑是一种脆弱、不直观的东西 - 一堆易碎品大杂烩加上一些难以捉摸、具有限制性的软件。为什么呢?
SQL 语言明显是非过程化的语言:您只需指定想要的数据,而不必关心如何获取数据。数据库优化器将决定获取所需数据的最佳方式。然而,优化器并不是完美的,开发人员或 DBA 经常需要对欠佳的优化器决策进行更正。并且优化器不能对数据库设计或实施缺陷(例如缺少索引)加以弥补。
数据库在客户端-服务器时代具有非常显著的地位,但现今其中心地位已有所淡化。它们仅构成三个重要架构层的其中之一,不仅已高度商品化,而且很少并入内置业务逻辑。然而,数据库仍对应用程序的性能起着至关重要的作用,其中有两大主要原因:
* 只有数据库需要用来执行大量的物理磁盘 I/O,而现今的磁盘 I/O(相对于磁盘大小和 CPU 速度)比过 去更为关键。