- 论坛徽章:
- 0
|
环境:
利用自己公司的中间件平台,在sqlserver2008数据库上,对某张业务表进行qe查询,后台翻页。
此qe最终可以体现为一句普通的sql语句,比如: select * from 业务表 order by rid 其中rid是此表的主键。(注意,此sql有且只有这一个rid排序字段)
中间件在处理时,会把结果扔到tempdb中某张ht_xxxxxxxx表,然后每次返回第x条到第y条
现象:
打开前台页面,点击“提交”后,查询结果的排序有时会错乱:照理应该按照rid排序,但是有时却没有按照rid排序,(可能几次中会发生一次,也可能几十次才发生一次)
也就是说,绝大多数时,正确的结果类似:
rid,其它字段1,其它字段2。。。。
1 ,。。。。
2 ,。。。。
3 ,。。。。
4 ,。。。。
5 ,。。。。
。。。
4999,。。。。
5000,。。。。
但是,发生错乱时,返回的结果却可能是:(不一定是从3442开始,似乎有点随机。)
rid,其它字段1,其它字段2。。。。
3442,。。。。
3443,。。。。
3444,。。。。
。。。。。
4999,。。。。
5000,。。。。
1 ,。。。。
2 ,。。。。
3 ,。。。。
。。。。
3440,。。。。
3441,。。。。
此时,看tempdb中的那张ht_xxxx表,其中的顺序也是错乱的。
如果把sql语句直接放到数据库客户端中执行,排序都正确。
想询问下,这样的情况是sybase的原因呢,还是主要问题是在我们自己使用的中间件上? |
|