关于sql2000执行查询时,对某表的扫描计数的问题

tuzhenqiao 2011-07-07 10:29:57
由于前两天换了个服务器,导致我sql在查询某些语句的时候很慢,后来我就跟踪某些特定语句,发现一个问题。
后来总结出一个简单的对比sql语句

select * from plandetail where isu8=4

当执行这条的时候,新服务器。扫描计数 16,逻辑读 12040 次,物理读 0 次,预读 0 次。 扫描计数 一直是16

老服务器是扫描计数 1.

查询其他的表都还差不多,我的数据库是整个考到新服务器的,而且看了两个服务器的plandetail这个表结构,没差异啊。


为什么我这个表查询时扫描计数 16 ,这是什么问题。
谢谢了。
...全文
151 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
tuzhenqiao 2011-07-09
  • 打赏
  • 举报
回复
我没有换成企业版,昨天,我在plandetail 表上给两个字段补上了索引,
CREATE NONCLUSTERED INDEX INDEX_planId ON plandetail (planId)
CREATE NONCLUSTERED INDEX INDEX_isu8 ON plandetail (isu8)
速度是快了,但还是没有老服务器快。
当isu8为0时查询速度快了。当为1或者2时就慢了,表里面0的数据最少,1,其次,2最多。
当速度快,isu8=0 时,没有parallelism/Gather Streams 并行处理,
当速度慢,isu8=1 or 2时 就有parallelism/Gather Streams
后来我把并行关闭,速度就快多了。
但跟老的比较起来还是慢点(以毫秒算),在sql里我新服务器是16个处理器,怎么并行还慢呢?
而老服务器虽然这两个字段没索引但还是比新的要快点。。

难道真的跟sql 的版本有关。
先就这样了,速度问题暂时解决,,如果还不行,我就打算换企业版。

misterliwei 2011-07-07
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 tuzhenqiao 的回复:]

新服务器:select 成本:0% top 成本:0% parallelism/Gather Streams 成本:40%
sort/topn sort 成本:41% plandetail.PK_plandetail 19%

老服务器:select 成本:0% sort/topN sort 成本:95% plandetail.Pk_plandetail 成本:5%
[/Quote]
难道是并行计划造成的?关闭并行计划试试呢?
sp_configure 'max degree of parallelism', 1
go
reconfigure with override

tuzhenqiao 2011-07-07
  • 打赏
  • 举报
回复
新服务器:select 成本:0% top 成本:0% parallelism/Gather Streams 成本:40%
sort/topn sort 成本:41% plandetail.PK_plandetail 19%

老服务器:select 成本:0% sort/topN sort 成本:95% plandetail.Pk_plandetail 成本:5%
fbmsyu 2011-07-07
  • 打赏
  • 举报
回复
干什么用Personal Edition
有限制。
misterliwei 2011-07-07
  • 打赏
  • 举报
回复
查询 菜单中 选择 查看执行计划。
tuzhenqiao 2011-07-07
  • 打赏
  • 举报
回复
执行计划,怎么看啊。
misterliwei 2011-07-07
  • 打赏
  • 举报
回复
和内存应该没什么关系,因为没有产生物理读,说明都已缓存了。
把两台服务器的执行计划贴出来看看呢。
tuzhenqiao 2011-07-07
  • 打赏
  • 举报
回复
我新服务器,16个G的内存。2.4GHz Cpu
老的才4G内存,2.2GHZ
rucypli 2011-07-07
  • 打赏
  • 举报
回复
重建索引 迁移可能导致索引失效
tuzhenqiao 2011-07-07
  • 打赏
  • 举报
回复
我刚才把新服务器的数据库又考到老服务器上,结果运行,还是老服务器快。两个服务器查询的结果是一样的。
老的快多了,同样的老服务器扫描计数 1,新的还是16.
难道跟sql 的版本有关,
我新服务器的sql,是Personal Edition
老服务器是Standard Edition
--小F-- 2011-07-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 tuzhenqiao 的回复:]
我看了索引,都还在的,我是把主键建索引的。。
要不我再重建看看,,
[/Quote]
重新建立下索引
AcHerat 2011-07-07
  • 打赏
  • 举报
回复
isu8这个字段有没有建立索引,老服务器应该有索引吧!

估计是进行了全表扫描。
tuzhenqiao 2011-07-07
  • 打赏
  • 举报
回复
我看了索引,都还在的,我是把主键建索引的。。
要不我再重建看看,,
tuzhenqiao 2011-07-07
  • 打赏
  • 举报
回复
补充下,我新服务器的sql,是Personal Edition
老服务器是Standard Edition
跟着有关系吗?
xuam 2011-07-07
  • 打赏
  • 举报
回复
是不是索引没有了?重建一下看看
tuzhenqiao 2011-07-07
  • 打赏
  • 举报
回复
还是等晚上下班后,我换数据库的版本看看,,现在不敢乱试,服务器正在运行。。


我新服务器的sql,是Personal Edition
老服务器是Standard Edition

我换成服务器版的看看,

22,207

社区成员

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

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