【发布时间】:2011-06-16 22:41:01
【问题描述】:
这是对问题 Stop LINQ to SQL from executing select statements after insert 的后续跟进,不知何故仍未得到答复。
我在表中插入 10,000 行,主键由 SQL 服务器自动生成。插入行后,我不需要对它们进行后处理,程序就关闭了。
查看 LINQ to SQL 日志,对于每个 INSERT,都会为 SCOPE_IDENDITY() 生成一个连续的 SELECT 语句。我觉得这会减慢我的程序,我想摆脱它。
如何在没有立即 SELECT 的情况下插入?
【问题讨论】:
-
在有和没有
SELECT SCOPE_IDENTITY()的情况下,可能值得对 10,000 个INSERTs 进行基准测试,看看这是否真的会减慢您的速度。我对您最初的问题给予了赏金,因为这是一个有趣的问题。 -
我无法想象这会增加任何重要的时间(在本地/局域网服务器上)。
-
对此进行基准测试的正确方法是什么?我刚刚尝试使用 SQL Server Management Studio 在我的表中插入 10,000 行。在没有 SELECT 的情况下插入需要 4:23",使用 SELECT SCOPE_IDENTITY() 需要 10:41"
标签: linq-to-sql