代码之家  ›  专栏  ›  技术社区  ›  SNA

linq中连接的性能

  •  1
  • SNA  · 技术社区  · 15 年前

    你好,

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

    这个sp正在连接12个表,获取数据并将其插入另一个表中。

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

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

    请指教。

    谢谢 SNA。

    1 回复  |  直到 13 年前
        1
  •  0
  •   Community Mohan Dere    8 年前

    你可能想查一下 this question 对于多重连接。我通常更喜欢lambda语法,但是ymmv。

    至于性能:我怀疑查询性能本身会受到影响,但在确定执行计划时可能会有一些开销,因为它是一个如此复杂的查询。
    与存储过程相比,最大的性能影响可能是需要额外的数据库往返。如果我正确理解您的意思,则您当前的SP将同时执行“选择并插入”操作。使用linq to sql或linq to entities,在实际将数据写入另一个表之前,需要先获取数据。

    所以,这取决于你的使用,如果重写是必要的。或者,可以将存储过程添加到数据模型中。它将作为数据上下文中的方法公开。