SQL 加入查询需要很长时间才能完成

SQL Join Query taking long to complete

我正在做一个需要我连接四个表的项目。我已经编写了这段代码,但需要很长时间才能完成。请帮忙。哦,我在 Db

中有大约 121 000 个条目
PortfolioCollectionDataContext context = null;
        context = DataContext;
        var Logins = from bkg in context.EnquiryBookings
                     where bkg.Paid == true
                     from log in context.Logins
                     where log.LoginID == bkg.LoginID
                     from enq in context.Enquiries
                     where enq.EnquiryID == bkg.EnquiryID
                     from estb in context.Establishments
                     where enq.EstablishmentID == estb.EstablishmentID
                     select new
                     {
                         log.LoginID,
                         log.FirstName,
                         log.LastName,
                         log.CountryOfResidence,
                         log.EmailAddress,
                         log.TelephoneNumber,
                         bkg.TotalPrice,
                         estb.CompanyName
                     };

        string str = "";

        foreach (var user in Logins)
        {
            str += ("[Name: " + user.LastName + " " + user.FirstName + " - Country: " + user.CountryOfResidence + " - Phone: " + user.TelephoneNumber + " - Email: " + user.EmailAddress + " - Booked From: " + user.CompanyName + " - Spent: " + user.TotalPrice.ToString() + "]");
        }

        return str;

在 LINQ 上使用以下查询

PortfolioCollectionDataContext context = null;
        context = DataContext;
        var Logins = from bkg in context.EnquiryBookings
                 join log in context.Logins
                 on log.LoginID equals bkg.LoginID
                 && bkg.Paid == true
                  join enq in context.Enquiries
                     on enq.EnquiryID equals bkg.EnquiryID
                  join estb in context.Establishments
                     on enq.EstablishmentID == estb.EstablishmentID
                  select new
                     {
                   str = "[Name: " + log.LastName + " " + log.FirstName + " - Country: " + log.CountryOfResidence + " - Phone: " 
                       + log.TelephoneNumber + " - Email: " + log.EmailAddress + " - Booked From: " 
                       + estb.CompanyName + " - Spent: " + bkg.TotalPrice.ToString() + "]"
                     };

        string output = string.Join(", ", Logins.ToList());

        return output;

通过将光标放在登录名上检查您的查询并将该查询粘贴到此处。然后检查您的查询的估计执行计划并粘贴到此处。

如果使用 SQL 服务器,要使用 Sql 服务器管理工​​作室获取查询的执行计划,请单击下图中突出显示的图标。