TimeOut - Abfrage verbessern
-
Hallo zusammen,
ich habe ein recht komplexe Abfrage über mehrere Tabellen. Die Tabellen selbst haben teilweise bis zu 20.000 Datensätze.Nun wird meine Abfrage mit folgender Fehlermeldung abgebrochen:
Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.Wie kann ich die Abfrage schneller machen/ändern/verbessern?
Als SQL schreiben? Wobei nur die Abfrage nach den NOT EXISTS Einträgen etwa 133 Sekunden benötigt ...var query = from b in ctx.order join be in ctx.orderdetail on b.orderID equals be.orderID join le in ctx.deliverydetail on be.orderdetailID equals le.orderdetailID join l in ctx.delivery on le.deliveryID equals l.deliveryID join r in ctx.account on le.accountNo equals r.accountNo orderby be.deliveryDate where !ctx.deliverydetail.Any(i => (i.orderdetailID == be.orderdetailID)) select new Shipment { OrderNumber = b.orderNo, OrderDate = (DateTime)b.orderDate // ... }; return query.ToList();
-
- Ja, in SQL schreiben.
- Execution Plan angucken (SQL Management Studio) und die diversen Probleme fixen (z.B. fehlende Indexe anlegen).
-
Vielleicht eine View anlegen, die die ganzen Joins schon Serverseitig bereithält...