在单一的应用环境或业务相对简单的系统下,系统性能问题,瓶颈所在往往是不言自明,解决问题的前提——定位问题是比较容易解决的,但在一个复杂的应用环境下,各应用系统对系统资源往往是一种共享和竞争的关系,而且应用系统之间 也可能存在着共生或制约的关系,资源利益的均衡往往是此消彼长,而这种环境下的应用系统一旦出现资源竞争,系统的瓶颈往往难以断定,甚至会发生不同应用设计人员之间互相推诿责任的扯皮现象,本文仅就此问题对Linux平台下各应用系统对ORACLE数据库的使用情况作一探讨,ORACLE数据库的TUNING不是一个可以一言以蔽的主题,本文无意概全,内容仅涉及问题的定位及各应用对数据库资源的共享与竞争问题。
本文试验及问题取证的环境:
RedHat6.1 Web server(Apache1.3.9+PHP4.0)+Client/Server(Pro*C)之Server端
RedHat6.2 + Oracle8.1.6.1.0
RedHat7.1 Web server(Apache1.3.20+PHP4.06) + Oracle8.1.7.0.0
为方便问题的讨论,应用系统已做简化,竞争方仅包括一个Pro*C的daemon程序作为C/S模式的服务端,和由Apache+PHP所支持的WEB网站业务。
1. 单个SQL语句的处理
首先,最简单的情况莫过于单个SQL语句的分析,SQL语句的优化也是数据库优化的一个最直接最立竿见影的因素。SQL语句的性能监控从监控工具来说大致可分为由高级语言提供和由ORACLE本身提供,高级语言以典型的应用C 语言和WEB开发语言PHP为例,C语言中可以用gettimeofday函数来在某一数据库操作之前和之后分别获取一个时间值,将两个时间值之差做为衡量该数据库操作的效率,在PHP中,也可以用gettimeofday, 操作方法当然与C语言中有所不同. 当然, PHP中也有其它一些函数可以达到同样的时间精度, 关于时间精度的考虑, 不能简单以大小衡量微秒级的时间数值, 因为时钟中断的时间间隔从根本上决定了时间计算所能达到的精度, 此外, 操作系统本身对进程的时间片分配, 及进程切换的开销等因素也在一定程度上影响时间数据的意义. 所以, 以下时间的计算最理想的情况是对同一操作在尽可能避免缓存的情况下进行多次的循环操作, 取总的时间值加以平均, 从而得到比较接近真实情况的时间值。
特别推荐:
|
操作系统专题热点词(点击打开里面有更多内容) |
| 操作系统宝典 注册表 Linux入门 Longhorn Win2003 FreeBSD 系统安装 文件系统 系统故障 两百例XP技巧 DIY安装光盘 系统维护 让XP更漂亮 优化 无盘 300例注册表技巧 系统进程解析 打造FreeBSD桌面 |
|
专题热点词(点击打开里面有更多内容) |
| 黑客 蠕虫 入侵检测 恶意代码 防火墙 木马 黑客常用软件 黑客技术 配置安全系统 IM软件安全 DOS攻击 |
|