Ich habe eine Tabelle mit dem Namen [CwbOrder], die derzeit 1.277.469 Zeilen hat. Ich verwende SQL Server 2014 und mache diese Tests in einer UAT-Umgebung. Bei der Produktion dauert diese Abfrage ein wenig länger.Einfache Auswahl aus Tabelle dauert 24 Sekunden in SQL Server 2014
Wenn ich versuche, alle Zeilen der Auswahl wie mit:
SELECT * FROM cwbOrder
Es dauert 24 Sekunden alle Daten aus der Tabelle abzurufen. Ich habe gelesen, dass es wichtig ist, Spalten in den Prädikaten (WHERE) zu indizieren, aber ich kann immer noch nicht verstehen, wie eine einfache Auswahl 24 Sekunden dauert.
diese Tabelle Verwendung in anderen komplexere Abfragen generiert eine Menge zusätzlichen Arbeitsaufwand für die Abfrage, obwohl ich die auf indizierten Spalten JOIN erstellt habe. Zusätzlich habe ich nur 2 Spalten aus dieser Tabelle ausgewählt und dann zu einer anderen Tabelle VERBUNDEN, und diese Operation dauert noch immer sehr lange. Als Beispiel betrachten bitte die unten stehende Abfrage:
Im Folgenden werde ich die Indexstruktur beider Tabellen angeschlossen haben, um die Angelegenheit zu veranschaulichen:
PK_cwbOrder ist der Index für die id_cwbOrder Spalte in der Tabelle cwbOrder.
Edit 1: Ich habe den Ausführungsplan für die Abfrage, in der ich die cwbOrder Tabelle mit der cwbAction Join-Tabelle hinzugefügt.
Gibt es eine Möglichkeit, die Informationen über bedenkt, dass ich diese Abfrage schneller machen?
Was ist die Zeilenanzahl in der Aktionstabelle. Wie viele Auftrags-IDs gibt es in der Auftragstabelle? Wie ist die Beziehung zwischen den beiden Tabellen?Wenn die Selektivität nicht so niedrig ist, würde der Optimierer nur vollständige Scans durchführen. –
@AbBennett - überprüfen Sie den Beitrag erneut, ich habe den Ausführungsplan für die zweite Abfrage hinzugefügt. Auch versuchte Vorschläge, eine begrenzte Anzahl von Zeilen (10 Zeilen) zu wählen und die Zeilen der Tabelle cwbOrder zu zählen, aber keine schlüssigen Informationen erhalten. –
_Displaying_ diese 1277469 Zeilen werden bereits eine erhebliche Menge an Zeit in Anspruch nehmen. –