Masalah Apa yang Diindikasikan oleh Spool Eager

27

Saat ini berjalan pada SQL Server 2008 R2

Saya mencoba untuk meningkatkan kinerja pernyataan UPDATE. Saya melihat operasi Eager Spool di showplan yang muncul. Pemahaman saya tentang operasi spooling cukup mendasar - mereka membuat penyimpanan sementara untuk tabel selama pembaruan.

Saya juga tahu bahwa, sementara mereka mencegah waktu eksekusi yang jauh lebih buruk, spool yang bersemangat sering menunjukkan masalah mendasar dengan struktur tabel dan / atau pernyataan kueri.

Pertanyaan saya cukup sederhana: Ketika Anda melihat Eager Spool dalam rencana kueri Anda, masalah apa yang pertama kali Anda perhatikan?

Saya akan menganalisis setiap bagian dari sistem kami untuk meningkatkan kinerja - Saya hanya mencari panduan tentang di mana saya harus memulai.

Nick Vaccaro
sumber
Bisakah Anda menunjukkan rencananya? Gulungan dapat berarti banyak hal yang berbeda.
usr
Dan beberapa kasus lain di mana ini mungkin muncul dalam UPDATEadalah jika tabel memiliki kunci asing referensi sendiri atau mengakses UDF yang melakukan akses data atau tidak terikat skema
Martin Smith

Jawaban:

18

Saya mencoba untuk meningkatkan kinerja pernyataan UPDATE. Saya melihat operasi Eager Spool di showplan yang muncul.

Eager Spools dapat ditambahkan karena berbagai alasan, termasuk untuk Perlindungan Halloween , atau untuk mengoptimalkan I / O ketika mempertahankan indeks yang tidak tercakup .

Tanpa melihat (bahkan gambar) rencana eksekusi, sulit untuk memastikan skenario mana yang mungkin berlaku dalam kasus khusus Anda. Jika sensitivitas data menjadi perhatian, pertimbangkan untuk mengunggah versi anonim dari rencana analisis menggunakan SentryOne Plan Explorer .

Mungkin saja Eager Spool bukanlah hal yang harus Anda fokuskan; banyak faktor yang memengaruhi kinerja kueri aktual yang mengubah data. Jika Anda mendasarkan upaya penyetelan Anda pada taksiran biaya persentase yang diperlihatkan untuk operator Eager Spool, harap pertimbangkan bahwa perkiraan tersebut dihasilkan dengan menggunakan model yang tidak dimaksudkan agar sesuai dengan kemampuan konfigurasi perangkat keras khusus Anda.

Paul White mengatakan GoFundMonica
sumber
2

Terkadang spool yang bersemangat dapat dihindari ketika operator pemblokiran lainnya ada - misalnya. Jadi itu ide yang baik untuk memastikan bahwa data sudah diurutkan pada saat mencapai tahap itu. (indeks yang hilang mungkin?)

Jika ada di sana untuk perlindungan Halloween maka seperti yang dikatakan orang lain ada sedikit yang bisa Anda lakukan.

John Alan
sumber