起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 307|回复: 9

【结贴】TQuery查SQL出现the operation timed out问题

[复制链接]
发表于 2010-6-7 17:50:27 | 显示全部楼层 |阅读模式
两SQL:
  SQL1和SQL2  
  SQL1有14个字段
  SQL2 有15个字段

查询分析器查:
  SQL1数据量 5800行
  SQL2数据量30000行
  SQL2查询时间为SQL1查询时间的4倍

声明TQuery查询:
  SQL1在有些机器出现“the operation timed out“(windows2003) 或“操作超时” (windowsXP)
SQL2没有问题

改变SQL1数据大小,在2000行以下时不报错


想了解下大概是什么原因?
回复

使用道具 举报

 楼主| 发表于 2010-6-8 08:42:53 | 显示全部楼层
版本3012



网络原因?  SQL2的数据量要更大不报错
               SQL语法问题? 查询分析器和有些客户端返回正确不报错
              个别机器的配置或缓存问题? 报错的机器在查SQL1小量数据时不报错。 而且报错的机器本机装服务端连本机大量数据不报错
回复 支持 反对

使用道具 举报

发表于 2010-6-8 09:02:07 | 显示全部楼层
首先,你的sql1和sql2在数据库中执行 时间 是否 很长?如果是,请优化一下sql或者数据表的索引。

其次,sql中如果涉及到 大字段(图片或者二进制),那么建议 在平台中 不要使用一个数据集来实现,而是 用两个数据集--主从的方式,对于普通字段用一个数据集,大字段的用另一个数据集,且作为前一个 数据集的从表。

最后,数据集 上设置一下取数据方案。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-6-8 09:22:50 | 显示全部楼层
执行时间不长。   主要是用SQL1,  发现问题后用SQL2测试没问题(SQL2数据量和执行时间都比SQL1多)

没有涉及大字段。

取数据方案设置后,
while dataSet.datafetch.canfetch do
  dataset.datafetch.fetch;
仍会报相同错误

-
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-6-8 09:27:27 | 显示全部楼层
刚才逐一屏蔽SQL1中的字段, 在屏蔽了一列数据多为汉字的字段后不报错(仍有另一个字段数据里多为汉字)。。。平台在大数据量时出现中文就会报错了??
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-6-8 09:31:07 | 显示全部楼层
一共两个字段里的数据多位汉字。
经测试
任意屏蔽一列都没有问题。
回复 支持 反对

使用道具 举报

发表于 2010-6-8 09:52:27 | 显示全部楼层
使用标准数据集查询报错么?能把你说的这个数据表中的数据导出来我试试么?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-6-8 09:56:53 | 显示全部楼层
可以导出来。 不过估计测不出来。  本机或大部分局域网可能都测不出来。  是有些机器的客户端出现的问题(而且这些客户端连本机或同网段局域网的没问题)。

现在的情况是:
生产环境服务器  192.168.1.28
开发环境服务器  192.168.220.200

用192.168.190.8这台机器连生产服务器报错(小数据量不报错)
用192.168.220.100这台机器连也报错(小数据量不报错)
192.168.190.8连本机不报错
192.168.220.100连开发服务器不报错

报错情况下的配置,同样的SQL小数据量不抱错。  另一个SQL超大数据量也不报错
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-6-8 10:07:04 | 显示全部楼层
结贴吧 。  不打算直接查这么多字段了。 屏蔽一个相对无关的字段

不过这个问题希望你们能够重视一下
回复 支持 反对

使用道具 举报

发表于 2010-6-8 10:22:25 | 显示全部楼层
好我们注意观察一下。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-8 21:02 , Processed in 0.045442 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表