Quels problèmes une bobine désireuse indique-t-elle

27

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 spoulage 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 sur la façon de commencer.

Nick Vaccaro
la source
Pouvez-vous montrer le plan? Les bobines peuvent signifier beaucoup de choses différentes.
usr
Et un autre couple de cas où cela pourrait apparaître dans un UPDATEest si la table a une clé étrangère auto-référencée ou accède à des FDU qui accèdent aux données ou ne sont pas liés au schéma
Martin Smith

Réponses:

18

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 la protection Halloween , ou pour optimiser les E / S lors de la maintenance des 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 n'est pas destiné à correspondre aux capacités de votre configuration matérielle particulière.

Paul White dit GoFundMonica
la source
2

Parfois, la file d'attente impatiente 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.

John Alan
la source