Chinaunix

标题: 请问,不知道有没有发现count(distinct a)时不时会出现问题? [打印本页]

作者: ym221479    时间: 2010-01-06 19:17
标题: 请问,不知道有没有发现count(distinct a)时不时会出现问题?
最近在弄项目报表的问题,一个栏目里面的数字使用的count(distinct ryid)这样的方法,在数据库工具DBArtisan里面执行,10次里面偶然会出现数据差别很大的情况,反复查sql语句,最后定为到count(distinct ryid)这里,但是不知道原因,所以想请教下,是不是有哪位大大也遇到过同样的问题呢?
作者: andkylee    时间: 2010-01-06 19:32
可能是统计值更新的问题吧
作者: ym221479    时间: 2010-01-06 21:11
原帖由 andkylee 于 2010-1-6 19:32 发表
可能是统计值更新的问题吧


不大会的,我重复执行sql的间隔大概也就是7、8秒钟的样子,sql本身执行需要耗时大概3秒钟,业务数据在这么短的时间里面应该不会有大的变动,但是执行结果却是大相径庭。当然,正确的次数还是能占到90%以上的。
作者: andkylee    时间: 2010-01-07 13:30
反复看sql语句的查询计划,看是否相同?
set showplan on
作者: ym221479    时间: 2010-01-07 21:57
原帖由 andkylee 于 2010-1-7 13:30 发表
反复看sql语句的查询计划,看是否相同?
set showplan on



头一次听到说sql的查询计划,受教了,这个set命令如何执行?直接可以在DBArtision里面执行?
作者: ym221479    时间: 2010-01-07 22:13
还想补充下,用来做统计的业务表在sybase的配置里面专门分了一部分内存给他用,是为了能让表在日常的查询里面速度快一些,这样的设置会不会也能导致这样的问题?
作者: andkylee    时间: 2010-01-08 13:26
标题: 回复 #5 ym221479 的帖子
在dbartisan下我没有用过showplan。
查看查询计划set showplan on,最好在命令行isql查看,比较方便。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2