日期:2014-05-19  浏览次数:20433 次

每天向一个表内插入40万行数据,每秒最快会插入40条,月末备份后清空表,表有聚集索引,CPU占用率是否会越来越大
每天向一个表内插入40万行数据,每秒最快会插入40条,月末备份后清空表,表有聚集索引。
今天5号,数据量已经达到220万,插入数据的时候cpu占用率在20%左右。
是否会随着表内数据量的增大,cpu占用率逐渐增高?
如果这样,按照目前占用20%的状况看,前景甚忧~~  

另外问下:是否会出现插入失败的情况,或者插入的列不全的情况出现?




------解决方案--------------------
聚集索引.在不把这个删了,看看要查询多,还是插入操作多
你也可以写一个作业,在每天晚上运行,改变他的填充因子,让插入更快.

在创建索引时,可以指定一个填充因子,以便在索引的每个叶级页上留出额外的间隙和
保留一定百分比的空间,供将来表的数据存储容量进行扩充和减少页拆分的可能性。填充因
子的值是从 0 到 100 的百分比数值,指定在创建索引后对数据页的填充比例。值为 100 时
表示页将填满,所留出的存储空间量最小。只有当不会对数据进行更改时(例如,在只读表
中)才会使用此设置。值越小则数据页上的空闲空间越大,这样可以减少在索引增长过程中
对数据页进行拆分的需要,但需要更多的存储空间。当表中数据会发生更改时,这种设置更
为适当。
提供填充因子选项是为了对性能进行微调。但是,使用 sp_configure 系统存储过程指
定的服务器范围的默认填充因子,在大多数情况下都是最佳的选择。
即使对于一个面向许多插入和更新操作的应用程序来说,数据库读取次数一般也超过
数据库写入次数的 5 到 10 倍。因此,指定一个不同于默认设置的填充因子会降低数据库
的读取性能,而降低量与填充因子设置值成反比。
只有当在表中根据现有数据创建新索引,并且可以精确预见将来会对这些数据进行哪些
更改时,将填充因子选项设置为另一个值才有用。
填充因子只在创建索引时执行;索引创建后,当表中进行数据的添加、删除或更新时
不会保持填充因子。如果试图在数据页上保持额外的空间,则将有背于使用填充因子的本意
因为随着数据的输入,SQL Server 必须在每个页上进行页拆分,以保持填充因子指定的空
闲空间百分比。因此,如果表中的数据进行了较大的变动,添加了新数据,可以填充数据页
的空闲空间。在这种情况下,可以重新创建索引,重新指定填充因子,以重新分布数据。


------解决方案--------------------


大量的进行insert、update、delete 会影响索引的效率

因为系统会花很长的时间重新组织索引

结合楼主的实例,建议将索引给删除
------解决方案--------------------
看看业务上能不能去查询用表和操作用表分开