首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Server大容量插入性能

问Server大容量插入性能
EN

Database Administration用户
提问于 2013-04-11 19:02:36
回答 1查看 15.6K关注 0票数 5

我正在运行sql server 2012,该机器上安装的内存为128 GB。批量插入的性能非常低。大量插入1000万条记录大约需要2小时。我们已经检查了cpu,磁盘io,内存,一切似乎都很好。我刚刚检查了wait_type,发现CXPACKET wait_time_ms是79346890761,max_wait_time_ms是2164694,signl_wait_time_ms 2849080871。这些数字是否太高,是否是表现缓慢的原因?并行度设置为0。

EN

回答 1

Database Administration用户

发布于 2013-04-11 19:21:29

下面是一些改进批量插入操作的好方法:

  1. 使用TABLOCK作为查询提示。
  2. 在大容量加载操作期间删除索引,然后完成后再重新创建它们。
  3. 在加载操作期间,将数据库恢复模型更改为BULK_LOGGED。
  4. 如果目标具有聚集索引,那么在大容量插入操作中指定ORDER子句将提高批量加载的速度。
  5. 在大容量插入操作开始时使用跟踪标志610。

最大并行度应该在服务器上配置,而不是默认配置。您可以参考我关于它如何配置这里的答案。

在“数据加载性能指南”( 这里 )中给出了一些有趣的统计数据的参考。在指南中还可以查看BATCHSIZE和ROWS_PER_BATCH。

票数 6
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/39771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档