Как мне установить DataAdapter.UpdateBatchSize на «оптимальное» значение?

Я наконец-то заставил свой пакет вставки работать, и теперь я возился с размером пакета, но могу Я не вижу разницы в производительности между значением 50 и значением 10000. Мне это кажется очень странным, но я не знаю, что происходит за кулисами, так что это могло быть нормальным поведением.

Я вставляю 160 тыс. Строк в таблицу, и среднее время для моих проверенных значений составляет 115 +/- 2 секунды. Без пакетной обработки это занимает 210 секунд, так что я вполне доволен улучшением. Целевая таблица:

CREATE TABLE [dbo].[p_DataIdeas](
    [wave] [int] NOT NULL,
    [idnumber] [int] NOT NULL,
    [ideaID] [int] NOT NULL,
    [haveSeen] [bit] NOT NULL CONSTRAINT [DF_p_DataIdeas_haveSeen]  DEFAULT ((0)),
  CONSTRAINT [PK_p_DataIdeas] PRIMARY KEY CLUSTERED 
(
  [wave] ASC,
  [idnumber] ASC,
  [ideaID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON
) ON [PRIMARY]
) ON [PRIMARY]

Я прочитал На что обращать внимание при установке UpdateBatchSize , и в ответ я просто протестировал несколько разных значений. Я могу это понять, но разве нельзя рассчитать или хотя бы предположить хорошее значение, если вы знаете структуру таблицы, вопрос SQL и данные, которые будут вставлены?

Есть ли какие-нибудь передовые методы. что кто-то может порекомендовать?

7
задан Community 23 May 2017 в 10:27
поделиться