CREATE TABLE [traitStressArc3] (
[RecID] [int] IDENTITY (1, 1) NOT NULL ,
[TraitID] [int] NOT NULL 
) ON [PRIMARY]
GO
declare @i int
set @i = 1
while @i < 10000
begin
  insert traitStressArc3 (TraitID) values (@i) 
  set @i = @i + 1
end我插入10000条数据在台式机上只用了2秒,而在一台服务器上用时100秒,是什么原因啊,有人碰到过吗?

解决方案 »

  1.   

    看看这样要几秒:
    CREATE TABLE [traitStressArc3] (
    [RecID] [int] IDENTITY (1, 1) NOT NULL ,
    [TraitID] [int] NOT NULL  
    ) ON [PRIMARY]
    GO
    insert into [traitStressArc3]
    select a.number+(2048*b.number)+1 
    from master..spt_values a,master..spt_values b 
    where a.type='p' and b.type='p' and a.number+(2048*b.number)+1<=10000
    select * from [traitStressArc3]
    go
    drop table [traitStressArc3]
      

  2.   

    晕哦,不管执行多少次都慢啊,服务器比我台式机还后购置。服务器是IBM3650X,8G内存。应该和硬件资源没关系吧,是不是需要设置什么的?
      

  3.   

    哦。那你重启一下服务器或者sql 服务再看看了语句本身木有问题。
      

  4.   

    估計這與服務器的可用資源有關,看一下內存和CPU的使用率
      

  5.   

    服务器上就只有一个SQL数据库,没其它软件运行
      

  6.   

    如果跟踪一下服务器的磁盘IO,如果CPU及内存占用均少于60%,没有在3秒内完成,很有可能其中有磁盘已有问题,另外,看一下警报及sql日志,看看没有错误等级>=21及以上的错误....