Also, ich habe eine ziemlich einfache Abfrage, die funktioniert, aber sehr langsam.SQL Multiple Left Joins Leistung ist schlecht
Gibt es eine bessere Möglichkeit, die Abfrage zu optimieren? Sollte ich die LINKEN VERBINDUNGEN auf mehreren Spalten ausbrechen? Wie wäre es mit mehreren Läufen und der Verwendung von Union ALL, um sie zusammenzuführen?
Die Tabellen haben vielleicht 500.000 Zeilen und sind gut indiziert. Bitte helfen. Abfrage dauert ewig
SELECT
ep.Id,
ep.DisplayName,
ep.EmailAddress,
COALESCE(
gs.DisplayNameMember + ' (' + gd.DisplayName + ')',
ea.DisplayName ,
ep.TrusteeUserAccountName,
ep.Trustee
) AS Trustee
FROM
dbo.ExchangePermissions ep WITH (NOLOCK)
LEFT JOIN dbo.GroupDetail gd WITH (NOLOCK) ON (ep.Trustee = gd.[Identity] OR ep.Trustee = gd.DisplayName OR ep.TrusteeUserAccountName = gd.SamAccountName)
LEFT JOIN dbo.GroupMemberShip gs WITH (NOLOCK) ON gd.name = gs.groupname
LEFT JOIN dbo.ExchangeAccount ea WITH (NOLOCK) ON (ep.Trustee = ea.[Identity] OR ep.Trustee = ea.DisplayName OR ep.TrusteeUserAccountName = ea.SamAccountName)
WHERE
ep.OTHERID= @MyParameter
Ist das ein Sproc? Möglicherweise ein Parameter-Sniffing-Problem? Ein Plan würde hier einen langen Weg zurücklegen. –
@ Rigerta. Fair genug .. Zeilen Ich habe den Ausführungsplan oben hinzugefügt – JCircio
@Jacob kein gespeicherter proc – JCircio