linq中连接的性能

linq中连接的性能,linq,stored-procedures,Linq,Stored Procedures,嗨 我将在LINQ中重写一个存储过程 此sp所做的是连接12个表并获取数据并将其插入另一个表中 它有7个左外部联接和4个内部联接,并返回一行数据 现在提问。 1在linq中实现此连接的最佳方法是什么。 2您认为在给定时间点仅检索一行数据会影响性能吗 请给我一些建议 谢谢 SNA。您可能需要检查多个联接。我通常更喜欢lambda语法,但不喜欢YMMV 至于性能:我怀疑查询性能本身会受到影响,但在确定执行计划时可能会有一些开销,因为这是一个如此复杂的查询。与存储过程相比,最大的性能损失可能是需要额外

我将在LINQ中重写一个存储过程

此sp所做的是连接12个表并获取数据并将其插入另一个表中

它有7个左外部联接和4个内部联接,并返回一行数据

现在提问。 1在linq中实现此连接的最佳方法是什么。 2您认为在给定时间点仅检索一行数据会影响性能吗

请给我一些建议

谢谢 SNA。

您可能需要检查多个联接。我通常更喜欢lambda语法,但不喜欢YMMV

至于性能:我怀疑查询性能本身会受到影响,但在确定执行计划时可能会有一些开销,因为这是一个如此复杂的查询。与存储过程相比,最大的性能损失可能是需要额外的数据库往返。如果我理解正确,您当前的SP会同时执行“全部选择和插入”。使用LINQtoSQL或LINQtoEntities,您需要先获取数据,然后才能将数据写入另一个表


因此,如果需要重写,这取决于您的使用情况。或者,您可以将存储过程添加到数据模型中。它将作为数据上下文中的一种方法公开。

您使用的是哪种O/RM工具?LINQ到SQL?我不会在LINQ中重写存储过程,除非你有很好的理由这么做