sql 特殊超时问题 ! 怪异! 请求帮助!!!

jlsrc 2008-01-16 10:31:21
sql2000数据库,

在企业管理器中操作,

表gr中查询:(整个表2万多条记录)
select top 44 * from gr order by id desc
结果很快出来,

可是把44这个数字改成45或更大的数字就会超时!

用查询分析器连接数据库操作,出现同样的问题。

但是却能执行“打开表”查看所有行的操作!

为什么指定查询记录条数时,超过44就会超时呢?

谁能指点我一下?
问题补充:id 建立索引了,问题依旧。
...全文
143 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
动动 2008-01-21
  • 打赏
  • 举报
回复
这样查询没有问题,我在几十万条的数据里试过了.
要不是你的id有重复,不是自动排列;要不就是数据不完整.
修复一下该数据库,问题就解决了.
查询是正确的!
zjcxc 2008-01-16
  • 打赏
  • 举报
回复
可能的问题:
1. 数据库或者表有问题, 试试 dbcc checkdb('库名') 和 dbcc checktable('表名')
2. 统计信息丢失或者是过期(也就是长时间没有更新), 丢失(缺少)统计信息这个一般看查找计划可以看得出来(有丢失统计信息的地方会有红色(2000)或者黄色(2005)的图形符号), 遇到这种情况使用 create statistics 创建缺少的统计信息即可
3. 索引损坏或者无效,可以尝试重建索引
-狙击手- 2008-01-16
  • 打赏
  • 举报
回复
dbcc checktable 你的表


--try ;
pt1314917 2008-01-16
  • 打赏
  • 举报
回复
恩,可以试试熊的方法。看将数据导入新表以后,是否还会这样。
dobear_0922 2008-01-16
  • 打赏
  • 举报
回复
把表中的数据转到一个新表中,在新表中查询试试,,,
select * into gr2   from   gr 
select top 45 * from gr2 order by id desc
w2jc 2008-01-16
  • 打赏
  • 举报
回复
关注,学习,帮顶!
wzy_love_sly 2008-01-16
  • 打赏
  • 举报
回复
索引问题?
dobear_0922 2008-01-16
  • 打赏
  • 举报
回复
确实奇怪,看看
dawugui 2008-01-16
  • 打赏
  • 举报
回复
select top 44 * from gr

不排序试试?

dawugui 2008-01-16
  • 打赏
  • 举报
回复
确实怪.

想想先.
kk19840210 2008-01-16
  • 打赏
  • 举报
回复
dbcc checktable (gr)  查看下你表的完整性
-狙击手- 2008-01-16
  • 打赏
  • 举报
回复
dbcc checktable gr
一者仁心 2008-01-16
  • 打赏
  • 举报
回复
id是自增么 如果不是 看看是不是重复纪录了
sp4 2008-01-16
  • 打赏
  • 举报
回复
应该是这个表索引结构除了问题,做下该表的修复吧
prcgolf 2008-01-16
  • 打赏
  • 举报
回复
up
shirley_yue 2008-01-16
  • 打赏
  • 举报
回复
关注,学习
free1879 2008-01-16
  • 打赏
  • 举报
回复
超时时 你等了几分钟?
jlsrc 2008-01-16
  • 打赏
  • 举报
回复
正常了,情况是这样的:

我原来对gr表中只作了一条包含3个字段的索引:xl,yx,id,因为除id外其他两个字段不是唯一值,所以没有对索引做唯一性要求。

根据大家的提示,我把原来的索引分成两个,一个包含xl和yx字段,另一个是id字段,desc排序,唯一性,忽略重复值。

然后再select就正常了。

但是我有一个疑问:

我原来的索引是想让数据记录按照相同的xl和yx值分块放,然后每一块数据再根据id排序,不知道按我第一个索引能做到吗?

如果能,那我分成两条索引后,还能达到我原来的目的吗?

请高人朋友解惑。

谢谢大家的帮助!
jlsrc 2008-01-16
  • 打赏
  • 举报
回复
谢谢这么多的热心朋友!

大家给我的建议试验结果:

1、不排序,我只试验到一百多,正常,然后就没试更大的数字。

2、'gr' 的 DBCC 结果。
对象 'gr' 有 26553 行,这些行位于 13284 页中。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

CHECKDB 发现了 0 个分配错误和 0 个一致性错误(在数据库 'pub' 中)。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

3、索引重建无效

4、“统计信息丢失或者是过期(也就是长时间没有更新), 丢失(缺少)统计信息这个一般看查找计划可以看得出来(有丢失统计信息的地方会有红色(2000)或者黄色(2005)的图形符号), 遇到这种情况使用 create statistics 创建缺少的统计信息即可 ”

----不好意思,我是菜鸟,在哪里看“查找计划”啊?我在企业管理器中没看到呀。

5、数据导入新表以后,查询gr2,还是出现相同问题,只要order by id desc ,就不能超过44。

6、id创立时就是自增的。
xing_8888_good 2008-01-16
  • 打赏
  • 举报
回复
呵呵,这个问题真是奇怪!!


你重新启动服务看看



有可能是你打开数据库后第一次运行,所以特慢!!


加载更多回复(1)

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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