WEB开发网
开发学院数据库Oracle Oracle中资源的共享与竞争及问题定位 阅读

Oracle中资源的共享与竞争及问题定位

 2007-05-13 12:29:55 来源:WEB开发网   
核心提示: Statistics 给出了执行该 SQL 操作所消耗的资源的统计数据 , 信息的表达一目了然, 所有这些值都是越小越好, 以通过 SQL*Net 的数据吞吐量为例, 在 OCI 编程中使用以下技术可显著减少网络流量 : 通过将 Commit 操作与 Execute 操作绑定为一个操作,通

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:

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:Oracle 资源 共享

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接