Ich versuche, eine Ansicht zu erstellen, die im Grunde 2 Dinge tut, ob ein Datensatz in Tabelle 1 in Tabelle 2 ist und ob eine Verknüpfung zu einer anderen Tabelle noch vorhanden ist. Es funktionierte auf einer Teilmenge von Daten, aber wenn ich versuchte, die vollständige Abfrage auszuführen, wurde die Zeitüberschreitung im Ansichtsdesigner überschritten.SQL-Ansicht Optimierung
Die Ansicht funktionierte gut, bis ich in der Überprüfung hinzugefügt, um zu sehen, ob der Link zu einer anderen Tabelle vorhanden war.
Anfänglich trat es Tabelle A Tabelle B und herausgefiltert, wo A.ID in der ID-Spalte in Tabelle B vorhanden war nicht
I wurde dann gesagt, dass, wenn die Verbindung zwischen der Person und der Adressentabelle (gespeichert in Tabelle C) wurde entfernt, dann hätten wir keine andere Möglichkeit, als einen vollständigen Auszug dieser Tabelle zu erhalten und zu sehen, welche Links nicht mehr vorhanden sind. Ich versuche, dass der Check zu verwenden, um festzustellen, ob einige Daten in bestimmten Spalten angezeigt werden
ich die folgende Struktur bin mit fast 60-mal, ob wählen Informationen in einer Spalte zeigen:
Column1 = case when exists (select LinkID from LinkTable C
where cast(C.LinkAddressID as varchar) = A.AddressID
and cast(C.LinkID as varchar) = A.ID)
then Column1
else NULL
end
Es gibt ca. 1,6 Mio. Datensätze in Tabelle A nur etwas über 4 Mio. Datensätze in der Link-Tabelle.
Gibt es eine bessere Möglichkeit, diese Abfrage/Ansicht zu schreiben, die optimiert wäre?
Bitte lassen Sie mich wissen, wenn mehr Informationen
benötigt wird
Wenn Sie Varchar-Datentypen definieren, sollten Sie immer die Größe angeben. Ohne weitere Details hier ist es schwer zu wissen, was vor sich geht, aber es scheint, als wäre möglicherweise eine Linksbindung zu LinkTable besser. Sie müssen viel mehr Informationen hier zur Verfügung stellen, bevor wir wirklich helfen können. Ein kleines Stück einer Frage ist nicht genug, um mit der Leistung zu helfen. http://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/ –
Bitte geben Sie den tatsächlichen Ausführungsplan und Abfrage – Devart
Auch Ihre Abfrage ist nicht SARGABLE, es kann am Ende Scan tun – TheGameiswar