我终于让我的插件批次工作了,现在我一直在摆弄批量的大小,但是我看不到值50和值10000之间的性能差异.这似乎很奇怪我,但我不知道幕后发生了什么,所以这可能是正常行为.
我在表中插入160k行,测试值的平均时间为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]
Run Code Online (Sandbox Code Playgroud)
我在设置UpdateBatchSize时阅读了要查找的内容,答案是简单地测试几个不同的值.我能理解这一点,但如果您知道表格设计,SQL问题和即将插入的数据,是否应该可以计算或至少猜测一个好的值?
有没有人可以推荐的最佳实践?