adoQuery在POST时太慢,怎么办?(100)

  • 主题发起人 主题发起人 wind_2005
  • 开始时间 开始时间
W

wind_2005

Unregistered / Unconfirmed
GUEST, unregistred user!
我用adoQuery.Edit;……adoQuery.Post;进行数据编辑并提交,随着数据的增加,Post的速度越来越慢,现在post一次需要15秒以上,使用的数据库为Oracel9i,所处理的表中有55万条数据,只有两个索引,请问,如何处理能使得数据编辑更快?如何优化数据库及程序处理方式?在这里谢谢大家了!补充:谢谢各位的回复,我在55万条数据中仅查出需要的5条记录,再将其中的一条进行编辑并Post,单步执行,在Post处停留了15秒。--------谢谢danng,我在查询数据时有一个字段是用数据库中的自定义函数生成的(类似:getAllString(fieldname1) as allString),请问这样用会使性能严重降低吗?(目前这个函数的使用是必须的。)(不好意思,由于涉及改动太大,且最近的确太忙,我未做取消函数的测试就来问你了)我用update语句代替Post方式,更新由原来的15秒提高到了5秒,但这个速度似乎还是慢了点,是不是数据库设置的问题呢?谢谢!
 
open的数据太大?
 
不大,只有五条记录
 
你的adoQuery是不是用了固定字段,且有Lookup的字段关联了很大的数据集呢?
 
可能是你的Oracle驱动版本问题
 
再怎样也不会出现楼主的问题,是不是有来danng所描述的问题。或者你用Insert语句来实现看看!
 
呵呵~~今天第一次看到有说Oracel的负面消息了
 
谢谢danng,我在查询数据时有一个字段是用数据库中的自定义函数生成的(类似:getAllString(fieldname1) as allString),请问这样用会使性能严重降低吗?(目前这个函数的使用是必须的。)(不好意思,由于涉及改动太大,且最近的确太忙,我未做取消函数的测试就来问你了)我用update语句代替Post方式,更新由原来的15秒提高到了5秒,但这个速度似乎还是慢了点,是不是数据库设置的问题呢?谢谢!
 
不是post的问题!你如果在50万条数据中用了查询再提交,时间是花在查询上.你如果用Insetr into...就会知道了.
 
贴出代码来,让大家帮你分析。我这里几百万数据的服务器也很快的。
 
有触发器?没遇到过速度这么慢的啊。如果这张表的数据每天都在大批量的增加数据,建议增加历史表。
 
1.以前老师说了,SQL要用传参数的方式,而不要用传值的方式。2.实在需要速度,那就改过程吧,其实过程处理起来也满简单的。
 
另外,两层直连时,若遇到后台的共享锁或闩锁,那更新就更慢,特别是像ORACLE那样的行级锁,若操作者一直占有锁,那你就更麻烦.建议改伪三层,用无状态对像,在操作的人大家都好。
 
帮你顶,纯接分
 
用ado的批处理
 
后退
顶部