Domanda

We are converting dts packages to ssis. I have noticed that the defaults between the 2 are a little different and I'm trying to figure out what is best.

In the dts, when creating a transform data task, these were the defaults and are what we used

Fetch Buffer Size: 1
Insert Batch Size: 0

If I migrate this dts in BIDS, the new values in the SSIS data flow are

Rows per Batch: 1
Maximum Insert Commit Size: 0

Running the package gives me this warning (which definitely doesn't sound good)

The Maximum insert commit size property of the OLE DB destination "component "transformation" (16)" is set to 0. This property setting can cause the running package to stop responding.

However, if I create a new SSIS and add a data flow task, these are the defaults

Rows per Batch: (blank)
Maximum Insert Commit Size: 2147483647

Generally, the Recovery Model of the source database is Full and the Recovery Model of the destination database is Simple. Sometimes, the task is moving up to a few million rows.

So, in general, what is the recommended setting. And if I need to test to figure it out, what exactly should I be looking at to figure out what the best setting is?

È stato utile?

Soluzione

I would start with the following values, then increase them until they don't produce an improvement:

Rows per Batch: 100000 Maximum Insert Commit Size: 100000

I also use Lock Table whenever I can.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top