2010-11-22 105 views
1

我正面临一些非常奇怪的事情。无法从SQL Server中的表中选择所有数据

在包含400000条记录的表格(T)中。

当选择这样的:

select top 150000 * from T 

我得到的答案在3个secondes

,但如果我把他们的一切,我5分钟后停止请求,而不必结果。

有关这个问题的任何想法?

THX,

+1

你有没有索引在桌子上? – 2010-11-22 11:45:15

+0

你如何选择数据?使用SMS? – abatishchev 2010-11-22 11:47:01

+0

你为什么试图向客户端获得400.000条记录? 你可以看看查询计划吗? – Jan 2010-11-22 11:47:25

回答

4

查找原因的主要区域是:

  1. 磁盘IO
  2. 缓存命中率
  3. 表中的一个页上的A嵌段由于其他进程(向您的查询添加WITH(NOLOCK)表提示)
  4. 网络瓶颈(如果goi ng客户端关数据库服务器)

我同意阿尔曼,索引是不需要的,每个表的页面必须读取。

+0

因为我是一个未注册的用户,所以我不能满足,但是会强烈怀疑编号为3的 – 2010-11-22 11:59:32

+0

添加(NoLock)很棒! – 2010-11-22 12:01:45

+0

那么,当请求试图锁定它想要读取的表时它会被阻塞吗?还有一些问题:我没有在桌面上创建2个ndx,估算计划将其中一个作为结果。所以我会毁掉那些2 ndx并重新测试 – 2010-11-22 12:03:05

相关问题