SqlServer插入慢的问题解决
?????????
这个是我加入的QQ群里面一个网友问的问题。他说一个表做一个INSERT都会超时。正困惑呢,向群里面的人求助。我刚好对这方面知道点,就回答了说要优化聚集索引。他不明白具体该怎么做,似乎也不知道什么是聚集索引。我对他说你可以看看你插入记录时的磁盘IO是否比较多,他说他的磁盘已经换成了RAID,不好查看磁盘IO。OK,我继续替他分析道: 你那个insert慢是因为你每次插新记录,数据库服务器都要在中间的一个位置插入,引起磁盘文件的大量读写. 他说: 如何解决?? 我的硬件配置已经没法升级了. 我说: 你可以看看聚集索引,要优化聚集索引. 他似乎不太明白,写了下面这写东西:
是这个吗: 我看了一下,说这是重做索引的批处理,不是聚集索引.我继续说道:聚集索引是指记录的物理摆放次序即按照聚集索引来做的。是最重要的一个索引,聚集索引设计的好,多种数据库操作都可以获得好的性能。设计的不好就会引起性能上的巨大差异,比如插入操作,设计得好时,新记录只需要在物理的最后添加就可以了,不需要移动很多记录,所以快,设计得不好时,新记录就是在物理上的中间某个位置插入,那么就必须移动很多记录,就会有大量的磁盘IO。他去找了一会,回来给我贴了个图: 我看了图,对他说聚集索引要选用短的字段,还要单向递增,可以选日期,identity等。他这回就明白了,问是不是聚集索引里面去掉bookid和nclassid字段. 我说是,他照做了,后来回来说,太好了,问题解决了。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- sql – 这两个查询是否相同 – GROUP BY与DISTINCT?
- join – Spark 2.0.0错误:PartitioningCollection要求其所
- sqlserver2005-jdbc加载-006
- tsql – 使用t-sql检索存储过程的过滤列表
- SqlServer 2014 Enterprise 企业版安装程序下载与安装教程
- SQL事务用法begin tran,commit tran和rollback tran的用法
- SqlServer和Oracle中一些常用的sql语句8 触发器和事务
- sql – SSIS时间戳
- 如何将一个DataType的所有Sql列更改为另一个
- sqlserver 获取表的字段名及类型