insert语句速度慢,是什么原因?
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秒,是什么原因啊,有人碰到过吗?
------解决方案-------------------- 没有清空缓存??第一次慢后面的就快了?
------解决方案-------------------- 服务器不给力.
------解决方案-------------------- 再试一次也许不这样了。
可能受你服务器上其它东西影响了吧
------解决方案--------------------
看看这样要几秒:
SQL code
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]
------解决方案-------------------- 探讨 没有清空缓存??第一次慢后面的就快了?
------解决方案-------------------- 1、磁盘io 2、索引 看看计划
------解决方案-------------------- 探讨 晕哦,不管执行多少次都慢啊,服务器比我台式机还后购置。服务器是IBM3650X,8G内存。应该和硬件资源没关系吧,是不是需要设置什么的?
------解决方案-------------------- 探讨 引用: 没有清空缓存??第一次慢后面的就快了? 写数据没有缓存吧
------解决方案-------------------- 的确很慢
------解决方案-------------------- 哦。那你重启一下服务器或者sql 服务再看看了 语句本身木有问题。
------解决方案-------------------- 探讨 执行上面的语句,台式机和服务器都正常,不到1秒。 引用: 看看这样要几秒: SQL code CREATE TABLE [traitStressArc3] ( [RecID] [int] IDENTITY (1, 1) NOT NULL , [TraitID] [int] NOT NULL ) ON [PRIMARY] GO insert into [traitStressArc3] ……
------解决方案-------------------- 估計這與服務器的可用資源有關,看一下內存和CPU的使用率
------解决方案-------------------- 服务器有毛病吧
------解决方案-------------------- 如果跟踪一下服务器的磁盘IO,如果CPU及内存占用均少于60%,没有在3秒内完成,很有可能其中有磁盘已有问题,另外,看一下警报及sql日志,看看没有错误等级>=21及以上的错误....
------解决方案-------------------- 或者raid做得有问题