请教:为何多线程ado查询sql server7,效果没有明显的改善?而且保持连接在查竟然比查完了就free还要慢?!!!!!

wddarkknight 2002-11-30 06:29:46
是这样的:类似的sql语句(where里面一个条件不同),14台机器一个埃一个的查是330毫秒左右一次(开始查询到出结果,不算sqlserver第一次查询的时间)
使用多线程技术,开14个线程同时开查,在线程内部生成adoquery(这些adpquery和上面的adoquery属性完全一样),线程结束以后free,平均下来每个是280多毫秒(里面有计时部分),测试的时候网络除了本机和数据库服务器的机器以外没有任何机器开着。 这样查询效果很难让人满意。。。。我又改进了一下,在线程create里面就生成了adoquery,并且执行了一个小查询。然后手动激活这个线程,这个时候才开始计时,结果让我大跌眼镜!速度慢的出奇平均速度1。4秒一个!!!! 请问各位高手,多线程ado查询还有什么要注意的地方可以加快速度?非常的感谢!对了,我皆按照李维的建议对ado进行了优化,cache设置为100。整个操作只有select .
...全文
103 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
gmc007 2002-12-02
  • 打赏
  • 举报
回复
我是这样理解的:
1.14台机器同时查询,也就等于一台机器上有14个线程同时查询;
2.多线程如果用于客户端,主要是处理费时的操作。比如你要查询的数据量非常大,或者是分布式查询。
3.如果你是在做三层结构的应用的话,那么在中间层运用多线程是必要的。
wddarkknight 2002-12-02
  • 打赏
  • 举报
回复
抱歉,我说得不清楚,一开始是14台机器同时查询,分别计时
然后是关掉13台,开一台使用14各线程查询
使用ado连接sqlserver而已。。。。。。。
wddarkknight 2002-12-01
  • 打赏
  • 举报
回复
up啊!
gmc007 2002-12-01
  • 打赏
  • 举报
回复
14台机器一个埃一个的查是330毫秒左右一次
使用多线程技术,开14个线程同时开查

-------------
不懂

你的程序是什么结构,是三层吗?
如果不是,你每台机器开多个线程是什么意思(目的)?
耙子 2002-12-01
  • 打赏
  • 举报
回复
你现在没办法排除数据库服务器的性能不高的影响。
cgh1970 2002-11-30
  • 打赏
  • 举报
回复
up

2,507

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧