Linq to sql Linq到SQL,插入后不要选择SCOPE_IDENTITY()

Linq to sql Linq到SQL,插入后不要选择SCOPE_IDENTITY(),linq-to-sql,Linq To Sql,这是这个问题的后续行动,但不知何故一直没有得到回答 我在一个表中插入10000行,主键由SQLServer自动生成。在插入行之后,我不需要对它们进行后期处理,程序将关闭 查看LINQ to SQL日志,对于每个插入,都会为SCOPE_IDENDITY()生成一个连续的SELECT语句。我觉得这减慢了我的程序,我想摆脱它 如何在没有立即选择的情况下插入?如果您担心性能问题,恐怕您必须完全改变方法 LINQtoSQL不适用于批量插入—正如您所注意到的,它一个接一个地插入它们 因为您不是在对它们进行后

这是这个问题的后续行动,但不知何故一直没有得到回答

我在一个表中插入10000行,主键由SQLServer自动生成。在插入行之后,我不需要对它们进行后期处理,程序将关闭

查看LINQ to SQL日志,对于每个插入,都会为SCOPE_IDENDITY()生成一个连续的SELECT语句。我觉得这减慢了我的程序,我想摆脱它


如何在没有立即选择的情况下插入?

如果您担心性能问题,恐怕您必须完全改变方法

LINQtoSQL不适用于批量插入—正如您所注意到的,它一个接一个地插入它们


因为您不是在对它们进行后处理,所以最好使用SqlBulkCopy之类的东西。这要快得多。

可能值得对10000个
INSERT
s进行基准测试,包括使用和不使用
选择SCOPE\u IDENTITY()
,以查看这是否真的会减慢速度。我对你最初的问题给予了奖励,因为这是一个有趣的问题。我无法想象这会增加任何重要的时间(在本地/局域网服务器上)。什么是正确的基准测试方法?我刚刚尝试使用SQLServerManagementStudio在表中插入10000行。插入时不使用SELECT,需要4:23英寸;插入时使用SELECT SCOPE_IDENTITY()需要10:41英寸