Cat*_*key 2 import sql-server-2012
我每天需要将 100 亿行导入数据库。
SSIS,似乎并没有削减它,我开始认为编写某种自定义 C/C++ 代码可能是一种尝试(我不太了解 C/C++)的选择。
我正在使用标准级别的制作盒,没有什么花哨但很体面。SQL 2012。
欢迎任何建议。
编辑:
源是一个平面文件。说 20 列。不确定尺寸。源数据在同一个磁盘上。(在这一刻)。
编辑 2:虽然列主要是 int/bigint,但有 5-7 个 VARCHAR(x)(最大的是 VARCHAR(1000))。
我发现 SSIS 的问题是读/写速度不是我所希望的。我尝试过 fastParse 等,以及其他各种技术。
除了技巧,我希望有技巧。小费显然仍然受欢迎。
查看BCP或BULK INSERT,它们都可以共享格式文件。
基于纯猜测的快速数学,因为没有给出硬性细节:
13 个数字列,假设它们平均每列 6 个字节 = 13*6=78 个字节。
5 个 VARCHAR 列,根据原始问题中“最大”的 VARCHAR(1000) = 5*300 = 1500 字节,假设它们平均为 300 个字节
1500 + 78 = 每行平均 1578 个字节。
1578*10000000000/(1024*1024) = 15048981 兆字节/天
15048981/(24*60*60) = 174MB/s EACH WAY(一次从源和一次到数据库)如果你连续加载它,一天 24 小时,风雨无阻,在索引维护期间,在备份期间,在 DBCC 期间CHECKDB 和操作系统级别的磁盘碎片整理。
如果您有 7 个平均每个 800 字节的 VARCHAR 字段,那么这是 5 个平均每个 20 字节的 VARCHAR 字段的带宽要求的 40 倍;后者可以通过千兆以太网完成,前者不能每天提供 100 亿行的标准。
弄清楚你的数据大小实际上是多少,你的时间窗口实际上是什么,然后计算你需要多快才能真正实现。
如果必须,您可以尝试禁用或删除将这些数据放入的任何表上的触发器、跟踪、约束、外键、索引等。
并注意备份空间要求:)。
归档时间: |
|
查看次数: |
860 次 |
最近记录: |