摘要:一、 索引(index)使用的问题
1. 索引(index),用还是不用?这是个的问题。
是全表扫描还是索引范围扫描主要考虑sql的查询速度问题。这里主要关心读取的记录的数目。根据donald k .burleson的说法,使用索引范围扫描的原则是: 对于数据有原始排序的表,读取少于表记录数40%的查询应该使用索引范围扫描。对读取多于表记录数40%的查询应全表扫描。 对于未排序的表,读取少于表......
摘要:oracle 8i数据库服务器是高度可优化的软件产品,经常性的调整可以优化系统的性能,防止出现数据瓶颈。我们通过调整数据库系统,可以使它达到最佳性能以满足用户的需要。 下面,笔者将介绍优化和调整sun sparc solaris系统平台上的oracle 8i数据库服务器的一些相关命令和方法。
solaris性能监控命令
solaris提供了性能监控命令,用于监控数据库性能和决定数据库的需求。除......
在Oracle运行操作系统命令在oracle 8i中,往往会出现要在存储过程中运行操作系统命令的情况.一般来说,利用oracle enterprise manager设定作业时可以达到这个目的.但是由于oem在设定作业缺乏灵活性,设定的作业的参数是固定的.在实际应用当中往往需要在sql语句当中运行需要随时运行操作系统命令.oracle 8i没有直接运行os命令的语句,我们可以利用dbms_pipe程序包实现这一要求. 1 创建一个程序包,姑且起名叫daemon,sql语句如下: 【程序编程相关:
防火墙应具备的17个特性】dbms_pipe通过创建管道,可以让至少两个进程进行通信.oracle的管道与操作系统的管道在概念上有相同的地方,但是在实现机制不同. 下面介绍实现具体步骤: 【推荐阅读:
穿透防火墙的数据传输方法】create or replace package body daemon as 【扩展信息:
防火墙的“发胖”与“发威】/*创建daemon程序包*/ /*execute_system是实现运行os命令的函数*/ function execute_system(command varchar2, timeout number default 10) return number is status number; result varchar2(20); command_code number; pipe_name varchar2(30); begin pipe_name := dbms_pipe.unique_session_name; dbms_pipe.pack_message(system); dbms_pipe.pack_message(pipe_name); dbms_pipe.pack_message(command); /*向daemon管道发送表示命令的字符*/ status := dbms_pipe.send_message(daemon, timeout); if status <> 0 then raise_application_error(-20010, execute_system: error while sending. status = || status); end if; status := dbms_pipe.receive_message(pipe_name, timeout); if status <> 0 then raise_application_error(-20011, execute_system: error while receiving. status = || status); end if; /*获取返回结果*/ dbms_pipe.unpack_message(result); if result <> done then rais...
下一页 摘要:前言
在单一的应用环境或业务相对简单的系统下,系统性能问题,瓶颈所在往往是不言自明,解决问题的前提—— 定位问题是比较容易解决的, 但在一个复杂的应用环境下, 各应用系统对系统资源往往是一种共享和竞争的关系,而且应用系统之间也可能存在着共生或制约的关系, 资源利益的均衡往往是此消彼长, 而这种环境下的应用系统一旦出现资源竞争,系统的瓶颈往往难以断定,甚至会发生不同应用设计人员之间互相推诿责任的扯......