SqlServer插入慢的问题解决

SqlServer插入慢的问题解决,第1张

概述          这个是我加入的QQ群里面一个网友问的问题。他说一个表做一个INSERT都会超时。正困惑呢,向群里面的人求助。我刚好对这方面知道点,就回答了说要优化聚集索引。他不明白具体该怎么做,似乎也不知道什么是聚集索引。我对他说你可以看看你插入记录时的磁盘IO是否比较多,他说他的磁盘已经换成了RAID,不好查看磁盘IO。OK, 我继续替他分析道: 你那个insert慢是因为你每次插新记录,数           这个是我加入的QQ群里面一个网友问的问题。他说一个表做一个INSERT都会超时。正困惑呢,向群里面的人求助。我刚好对这方面知道点,就回答了说要优化聚集索引。他不明白具体该怎么做,似乎也不知道什么是聚集索引。我对他说你可以看看你插入记录时的磁盘IO是否比较多,他说他的磁盘已经换成了RAID,不好查看磁盘IO。OK,我继续替他分析道: 你那个insert慢是因为你每次插新记录,数据库服务器都要在中间的一个位置插入,引起磁盘文件的大量读写. 他说: 如何解决?  我的硬件配置已经没法升级了. 我说: 你可以看看聚集索引,要优化聚集索引. 他似乎不太明白,写了下面这写东西:

是这个吗:
use WanerSoft2007
declare @table_ID int
set @table_ID=object_ID('dbo.Ws_UserProInfo')
dbcc showcontig(@table_ID)
dbcc dbreindex('dbo.Ws_UserProInfo','',0)

我看了一下,说这是重做索引的批处理,不是聚集索引.我继续说道:聚集索引是指记录的物理摆放次序即按照聚集索引来做的。是最重要的一个索引,聚集索引设计的好,多种数据库 *** 作都可以获得好的性能。设计的不好就会引起性能上的巨大差异,比如插入 *** 作,设计得好时,新记录只需要在物理的最后添加就可以了,不需要移动很多记录,所以快,设计得不好时,新记录就是在物理上的中间某个位置插入,那么就必须移动很多记录,就会有大量的磁盘IO。他去找了一会,回来给我贴了个图:

我看了图,对他说聚集索引要选用短的字段,还要单向递增,可以选日期,IDentity等。他这回就明白了,问是不是聚集索引里面去掉bookID和nclassID字段. 我说是,他照做了,后来回来说,太好了,问题解决了。

总结

以上是内存溢出为你收集整理的SqlServer插入慢的问题解决全部内容,希望文章能够帮你解决SqlServer插入慢的问题解决所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1179161.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存