Oracle中资源的共享与竞争及问题定位
2007-05-13 12:29:55 来源:WEB开发网Statistics 给出了执行该 SQL 操作所消耗的资源的统计数据 , 信息的表达一目了然, 所有这些值都是越小越好, 以通过 SQL*Net 的数据吞吐量为例, 在 OCI 编程中使用以下技术可显著减少网络流量 : 通过将 Commit 操作与 Execute 操作绑定为一个操作。通过对数组进行成批数据的 delete, insert,update,通过对一个 SELECT 语句指定一个预取记录数。这些统计数据中, 尤其需要避免的是涉及磁盘存取的操作 , 因为多级存储的操作速度是 CPU >> Memory >> HD > Disc > network > disk。
2. 对投入运营的系统中 PHP 程序的监控
理想的开发流程是 设计 -> 文档 -> 编码 -> 测试 -> 投入使用,但实际运行的系统往往是由良莠不齐的程序所组成,有些缺乏文档 , 有些可读性差 , 有些程序极为脆弱。对于这样的既成事实 , 如果系统中出现了瓶颈,不可能一条语句一条语句地来进行测试 , 只能是用一种统一的方法定位主要问题的所在。由于 PHP 程序中的 SQL 语句使用了所谓动态 SQL 语句 , 即用 户可以在程序运行时动态生成一个 SQL 语句, 所以如果对静态的 PHP 程序文件进行。
( 如用 grep 工具 ) 可能会搜捕不到成形的完整 SQL 语句 , 这就要求用一种动态方法来拦截实际执行的每一个完整的 SQL 语句,观察 PHP 中关于 ORACLE 数据库操作的函数簇 , 发现 OCIParse 和 Ora_Parse 两个函数是 SQL 语句的入口,而将这两个函数统一替换为一个用户自定义的函数即可实现对 SQL 语句的拦截。在笔者涉入的实际系统中 , 是这样解决的 : 首先分析该系统中所有的 PHP 程序文件,发现凡涉及 ORACLE 数据库操作的都需要包含一个以 *.conf 结尾的配置文件 , 该配置文件是数据库的用户名,密码和连接标识符的定义文件 , 这些是开发初期定下的规范,以便于对程序中共用的配置信息进行统一的管理 , 以下是一个 oracle.conf:
- ››oracle 中 UPDATE nowait 的使用方法
- ››Oracle ORA-12560解决方法
- ››Oracle 10g RAC 常用维护命令
- ››Oracle如何在ASM中定位文件的分布
- ››Oracle的DBMS_RANDOM.STRING 的用法
- ››oracle 外部表导入时间日期类型数据,多字段导入
- ››Oracle中查找重复记录
- ››oracle修改用户登录密码
- ››Oracle创建删除用户、角色、表空间、导入导出等命...
- ››Oracle中登陆时报ORA-28000: the account is lock...
- ››Oracle数据库在配置文件中更改最大连接数
- ››Oracle中在pl/sql developer修改表的两种方式
更多精彩
赞助商链接