Beim Testen gespeicherter Prozeduren in SSMS wird manchmal angegeben, dass ein Index für #someTempTable____________________000000000000005B] (someField)
etc etc fehlt
Wenn ich sie so zum sp hinzufüge:
CREATE NONCLUSTERED INDEX [<Name of Missing Index, sysname,>]
ON [dbo].[#someTable] ([someField])
GO
Ich sehe nie eine Geschwindigkeitsverbesserung. Daher füge ich solche Indizes oft nicht hinzu. Wann sollte ich solche Indizes hinzufügen?
Dies ist ohne viel mehr Informationen schwer zu beantworten. Im Allgemeinen würde ich sagen, "es kommt darauf an".
Im Allgemeinen füge ich Indizes zu temporären Tabellen hinzu, wenn der Nutzen des Index größer ist als die ursprünglichen Ausführungskosten zuzüglich der Kosten für die Erstellung des Index. Sie müssten einen Benchmark am Beispiel von SET STATISTICS IO durchführen. Ich möchte auch die Ausführungspläne überprüfen, die vor und nach dem Hinzufügen des Index verwendet werden. Manchmal sind empfohlene Indizes keine wirklich guten empfohlenen Indizes :-)
quelle
Angesichts der Tatsache, dass die von Ihnen angegebene temporäre Tabelle einen lokalen Bereich hat (wie durch das einzelne # gekennzeichnet), ist es im Allgemeinen nicht am besten, einen Index hinzuzufügen, da die Tabelle nur für die Dauer der Verbindung aktiv ist.
quelle
Sie sollten die Statistiken nach einer erheblich großen Änderung in der Tabelle aktualisieren, z. B.: tempTable erstellen, Index hinzufügen, 10.000 Datensätze einfügen ... STATISTIKEN AKTUALISIEREN.
quelle