Oracle基于Client/Server的性能调整
2007-05-12 12:26:33 来源:WEB开发网核心提示: 2.1 使用Oracle数据库的完整约束性当为应用建表时,应当为一些有特殊要求的数据加上适当的完整性约束,Oracle基于Client/Server的性能调整(6),这样就能实现由数据库本身而不是应用程序来约束数据符合一定的条件,数据库服务器端的完整约束的执行操作是在比SQL语句级别更低的
2.1 使用Oracle数据库的完整约束性
当为应用建表时,应当为一些有特殊要求的数据加上适当的完整性约束,这样就能实现由数据库本身而不是应用程序来约束数据符合一定的条件。数据库服务器端的完整约束的执行操作是在比SQL语句级别更低的系统机制上优化,它与客户端无关,只在服务器中运行,不需在Client 端和Server端之间传递SQL语句,有效地减轻网络I/O负担。
2.2 使用数据库触发器
完整约束性只能实现一些较简单的数据约束条件,对一些较复杂的事物处理规则就无能为力,这时最好不要在应用程序中实施复杂的程序控制,而是应当采用数据库触发器来实施复杂的事物规则。数据库触发器能实现由数据库本身,而不是应用程序,来约束数据符合复杂的事物处理规则,并且容易创建,便于管理,避免大量的网络I/O。
例如:将当前表A中成为历史的记录从A表中转储到历史表B中,表示为Lsbs。
在应用程序中实现: 用数据库触发器实现:
Beign Create trigger delete1
Update A set lsbs='T'; After update of lsbs on A
Insert into B For each row
Select * from A where lsbs='T'; Insert into B
Delete A where lsbs='T'; select * from A where :new.lsbs='T';
End; Delete A where :new.lsbs='T';
End delete1;
在应用程序中实现时,所有的SQL命令请求传送的数据都要通过网络在Client端和Server端进行交换,而不像数据库触发器一样,SQL本身在Server端,不需要通过网络传输数据。当进行操作的数据量相当大时,并且多个用户同时操作时,通过在应用程序中实现复杂的控制,必将增大网络I/O的负荷,使整个系统的性能降低,而用数据库触发器能完全避免这种情况发生。
- ››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修改表的两种方式
更多精彩
赞助商链接