En cours d'exécution sur SQL Server 2008 R2
J'essaie d'augmenter les performances d'une instruction UPDATE. Je remarque une opération Eager Spool dans le showplan qui apparaît. Ma compréhension des opérations de mise en file d'attente est assez basique - elles créent un stockage temporaire pour la table pendant la mise à jour.
Je sais également que, bien qu'ils empêchent des temps d'exécution bien pires, les spools impatients sont souvent révélateurs de problèmes sous-jacents avec la structure de la table et/ou les instructions de requête.
Ma question est assez simple: lorsque vous voyez une bobine désireuse dans votre plan de requête, quels problèmes cherchez-vous d'abord à résoudre?
J'analyserai chaque partie de notre système pour augmenter les performances - je cherche juste des conseils pour savoir par où commencer.
J'essaie d'augmenter les performances d'une instruction UPDATE. Je remarque une opération Eager Spool dans le showplan qui apparaît.
Des bobines désireuses peuvent être ajoutées pour diverses raisons, notamment pour Protection Halloween , ou pour optimiser les E/S lors de la maintenance d'index non cluster .
Sans voir (même une image de) le plan d'exécution, il est difficile d'être certain lequel de ces scénarios pourrait s'appliquer dans votre cas particulier. Si la sensibilité des données est un problème, envisagez de télécharger une version anonyme du plan pour analyse à l'aide de SentryOne Plan Explorer .
Il se pourrait bien que la bobine désireuse ne soit pas la chose sur laquelle vous devriez vous concentrer de toute façon; de nombreux facteurs influencent les performances réelles des requêtes qui modifient les données. Si vous basez vos efforts de réglage sur le pourcentage de coût estimé indiqué pour l'opérateur Eager Spool, veuillez considérer que ces estimations sont générées à l'aide d'un modèle qui est n'est pas destiné à correspondre aux capacités de votre configuration matérielle particulière.
Parfois, la file d'attente enthousiaste peut être évitée lorsque d'autres opérateurs de blocage sont en place, par exemple. C'est donc une bonne idée de s'assurer que les données sont déjà triées au moment où elles atteignent ce stade. (index manquants peut-être?)
S'il est là pour la protection d'Halloween, comme les autres gars l'ont dit, vous ne pouvez pas faire grand-chose.