Я наконец-то заставил свой пакет вставки работать, и теперь я возился с размером пакета, но могу Я не вижу разницы в производительности между значением 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 и данные, которые будут вставлены?
Есть ли какие-нибудь передовые методы. что кто-то может порекомендовать?