Sie müssen mir meine Naivität verzeihen, da ich kein DBA bin. Meines Wissens nach müssen die Statistiken einer Datenbankänderung und einer gespeicherten Prozedur im Laufe der Zeit neu kompiliert werden, um den Abfrageplan mit den neuesten Statistiken auf dem neuesten Stand zu halten.
Angenommen , ich habe eine gespeicherte Prozedur in der Datenbank , die gegen die neuesten Statistiken auf neu kompiliert wird einige regelmäßigen Abständen, was sind die Auswirkungen der gespeicherten Prozedur in Code in-Futter und es in einer Verpackung sp_executesql
Aussage? Verliere ich die Aktualisierung des Abfrageplans, die im Rahmen der Neukompilierung der Prozedur durchgeführt wurde?
Wenn ich noch etwas anderes (außer Berechtigungen) berücksichtigen muss, bevor ich diese Änderung vornehme, würde ich mich über Ihre Erkenntnisse freuen.
Ich habe dies auf MSDN gelesen:
Die Fähigkeit des SQL Server-Abfrageoptimierers, die neue Transact-SQL-Zeichenfolge mit einem vorhandenen Ausführungsplan abzugleichen, wird durch die sich ständig ändernden Parameterwerte im Text der Zeichenfolge beeinträchtigt, insbesondere bei komplexen Transact-SQL-Anweisungen.
Unter der Annahme, dass die gespeicherte Prozedur, die ich in die Zeile einbinden und einbinden sp_executesql
möchte, tatsächlich einige Parameter enthält, bedeutet dies, dass es für SQL Server schwieriger ist, sie zu finden und wiederzuverwenden, obwohl mein Ausführungsplan zwischengespeichert ist?
quelle