Har*_*ngh 7 sql-server ssis business-intelligence sql-server-2012 ssis-2012
我有SSIS包,它将包含1000万条记录的2.5 GB数据导出到Sql Server数据库中,该数据库有10个分区,包括PRIMARY FILE GROUP.
更改默认最大插入提交大小之前,即"2147483647"和每批行.使用快速加载选项完成转换需要7分钟.
但是在用一些公式来衡量一些不错的价值之后,执行只用了2分钟就完成了.
FYI- DefaultMaxBufferRows和DefaultMaxBufferSize 分别是scenorio中的默认值,即10000和10 MB.
计算最大插入提交大小和每批行数 使用下面的计算.
1)计算来自传输源的记录长度.大约1038个字节.
CREATE TABLE [dbo].[Game_DATA2](
[ID] [int] IDENTITY(1,1) NOT NULL, -- AUTO CALCULATED
[Number] [varchar](255) NOT NULL, -- 255 bytes
[AccountTypeId] [int] NOT NULL, -- 4 bytes
[Amount] [float] NOT NULL,-- 4 bytes
[CashAccountNumber] [varchar](255) NULL, -- 255 bytes
[StartDate] [datetime] NULL,-- 8 bytes
[Status] [varchar](255) NOT NULL,-- 255 bytes
[ClientCardNumber] [varchar](255) NULL -- 255 bytes
)
Run Code Online (Sandbox Code Playgroud)
2)每批行数=每个记录的packate_size /字节数= 32767/1038 =约32.
3)最大插入提交大小=包大小*事务数= 32767*100 = 3276700(包装大小和数量事务变量可根据需要改变)
题 :
每批次的行数和最大插入提交大小是否相关?由于存档文章中没有提到用于调整DFT(数据流任务)执行的信息.
这些配置是否与DefaultBuffermaxzie和
DefualtBuffermaxrows 一起使用?如果是,如何?
这些参数仅指DFT OLE DB目标.OLE DB目标发出insert bulk
命令.这两个参数以下列方式控制它:
BULK INSERT(Transact-SQL) -关于此命令的MS文章.
DefaultBuffermaxsize和DefaultBuffermaxrows控制DFT内部的RAM缓冲区管理,并且不会干扰上面提到的选项.
归档时间: |
|
查看次数: |
18918 次 |
最近记录: |