关于DataRequest执行效率问题!(200分)

  • 主题发起人 主题发起人 sallypo
  • 开始时间 开始时间
S

sallypo

Unregistered / Unconfirmed
GUEST, unregistred user!
编程环境:
OS:WIN2K PRO
数据库及其连接方式:ADO+ORCALE
中间层:CORBA 3.3 + 多实例多线程
现象:当客户端操作表的数据量较大时(该表可以编辑),利用DataRequest事件将查询条件为' and 1<>1 '的数据值返回至客户端,该过程需要2~3分钟;如果利用主键值传一条记录系统将出现“灾难性故障”,从客户端发出DATAREQUEST至服务器端报错整个过程同样需要2~3分钟
说明:所传的SQL语句是无误的,如果在CORBA4.1+单实例多线程的环境下该项执行速度很快,请问服务器端应该怎样设置才可将小数据量查询速度调快
补充说明:
主要针对主从表一对多(子表数量为4个)关系,如果表中数据量较大(超过35万条记录)时,查询一条记录需要2~3分钟,附带说明如果是子表为一个即一对一的主从关系,或者一对多关系且数据量小的情况下,查询速度很快
以上情况均是采用DELPHI60+CORBA3.3+多实体多线程的环境下测试结果
 
为什么不能用select top 0 from 表
难道oracle不支持此SQL语句吗?
 
to 52free
top 0 不属于标准的SQL语句,而是一个数据库执行命令,它和SQL SERVER中的SP_HELP
类似,所以用top 0放至程序中会不支持,你可以采用其它方式来解决这一问题,
例如,ADODATASET中的MAXRECORDS
不知道有没有更好的方案解决多层体系结构中多个主从表间查询效率问题?

 
select top 语句根本就不在SQL92标准之列,我接触过的DB2,SYBASE,INFORMIX,ORACLE,SQLSERVER几种数据库中,只有sqlserver支持这写法
 
select * from table where 1=1
 
后退
顶部