Jakie problemy wskazuje chętna szpula

27

Obecnie działa na SQL Server 2008 R2

Usiłuję zwiększyć wydajność instrukcji UPDATE. Zauważyłem, że pojawiła się operacja Eager Spool w showplanie. Moje rozumienie operacji buforowania jest dość proste - tworzą one tymczasowe miejsce do przechowywania tabeli podczas aktualizacji.

Wiem również, że chociaż zapobiegają one znacznie gorszemu czasowi wykonania, chętne bufory często wskazują na podstawowe problemy ze strukturą tabeli i / lub instrukcjami zapytań.

Moje pytanie jest dość proste: kiedy widzisz chętną szpulę w swoim planie zapytań, jakie problemy chcesz rozwiązać?

Będę analizował każdą część naszego systemu, aby zwiększyć wydajność - szukam tylko wskazówek, od czego powinienem zacząć.

Nick Vaccaro
źródło
Czy możesz pokazać plan? Szpule mogą oznaczać wiele różnych rzeczy.
usr
I jeszcze kilka przypadków, w których to może pojawić się w sposób UPDATEjest, jeśli tabela ma własny przedstawieniu klucz obcy lub dostępu UDF, które wykonują dostęp do danych lub nie są związane schematu
Martin Smith

Odpowiedzi:

18

Usiłuję zwiększyć wydajność instrukcji UPDATE. Zauważyłem, że pojawiła się operacja Eager Spool w showplanie.

Chętne szpule mogą być dodawane z różnych powodów, w tym w celu ochrony Halloween , lub w celu optymalizacji operacji we / wy podczas utrzymywania indeksów nieklastrowanych .

Bez obejrzenia (nawet zdjęcia) planu wykonania trudno jest ustalić, który z tych scenariuszy może mieć zastosowanie w konkretnym przypadku. Jeśli problemem jest wrażliwość danych, rozważ przesłanie anonimowej wersji planu do analizy za pomocą SentryOne Plan Explorer .

Możliwe, że Eager Spool nie jest czymś, na czym powinieneś się skoncentrować; na faktyczną wydajność zapytań zmieniających dane wpływa wiele czynników . Jeśli opierasz swoje wysiłki związane z dostrajaniem na szacowanym procentowym koszcie pokazanym dla operatora Eager Spool, pamiętaj, że te szacunki są generowane przy użyciu modelu, który nie jest przeznaczony do dopasowania do możliwości konkretnej konfiguracji sprzętu.

Paul White mówi GoFundMonica
źródło
2

Czasami chętnej szpuli można uniknąć, gdy istnieją inni operatorzy blokujący - na przykład. Warto więc upewnić się, że dane są już posortowane według czasu, w którym osiągną ten etap. (może brakuje indeksów?)

Jeśli ma to na celu ochronę Halloween, to jak powiedzieli inni faceci, niewiele możesz zrobić.

John Alan
źródło