11 sqlbulkcopy sql-server-2008
最快的方法是:
我现在应该做什么:
我每秒输入大约60k-75k行,这还不够,但非常接近.我想要达到250.000行.
到目前为止还没有真正使用过.我得到20%的时间"网络I/O"块,有一个核心80%加载CPU端.光盘写出7mb-14mb,大部分是空闲的.RAID 10上的6个raptors的平均队列长度是...... 0.25.
任何人都知道如何加快速度?更快的服务器(到目前为止它是虚拟的,8GB RAM,4个核心,物理磁盘通过数据).
添加一些说明:
垂直分区是否有助于,例如通过一个字节(tinyint)将仪器世界分开,例如16个表格,因此我最多同时进行16次插入?实际上,数据来自不同的交易所,我可以为每个交易所制作一个分区.这将是一个自然的分裂场(实际上是在乐器中,但我可以在这里复制这些数据).
更多澄清:速度更高(90k),现在明显受到机器之间的网络IO的限制,这可能是VM切换.
我现在要做的就是做每32K行的连接,搭起一个临时表,插入此与SqlBUlkdCopy,然后用一条SQL语句复制到主表 - 在主表最大限度地减少任何锁定时间.
大多数等待时间现在仍在网络IO上.似乎我遇到了VM明智的问题.将在未来几个月转移到物理硬件;)
您可以使用水平分区吗?请参阅:http ://msdn.microsoft.com/en-us/library/ms178148.aspx和http://msdn.microsoft.com/en-us/library/ms188706.aspx
您可能还想看看这个问题,并可能更改恢复模型: Sql Server 2008 Tuning with large transactions (700k+ rows/transaction)
一些问题:您使用的是哪个版本的 SQL Server?
为什么单核是80%?这可能是瓶颈,因此可能值得研究。
您使用什么操作系统,是 64 位吗?
| 归档时间: |
|
| 查看次数: |
4325 次 |
| 最近记录: |