Apakah persentase biaya dalam paket SQL Server ini lebih dari 100% untuk alasan yang sah?

13

Saya sedang mencari-cari cache rencana, mencari buah optimasi yang rendah dan menemukan potongan ini:

masukkan deskripsi gambar di sini

Mengapa banyak biaya yang tercantum di atas 100%? Bukankah itu tidak mungkin?

Max Vernon
sumber
Saya bahkan melihat biaya hingga 1 mill% dari rencana yang diperkirakan. Cukup gunakan biaya riil, itu harus lebih baik.
Marian
5
Karena matematika SQL Server kacau. Raih Penjelajah Paket gratis kami ; kami tidak memiliki masalah ini.
Aaron Bertrand
Saya suka SQL Sentry Plan Explorer, Aaron - Saya sudah menggunakannya untuk sementara waktu sekarang. Saya ingin melihat apa yang dilakukan versi pro!
Max Vernon

Jawaban:

12

Pengukur biaya visual adalah omong kosong. Hal-hal semacam ini terjadi setiap saat. Hanya pergi dengan yang tertinggi adalah yang paling mahal dan serang yang pertama.

mrdenny
sumber
Pernahkah Anda melihat ini dengan versi SQL Server sebelumnya? Sejauh yang saya ketahui, saya belum pernah melihatnya di SS 2008R2 misalnya.
KookieMonster
5
Saya telah melihatnya sepanjang perjalanan kembali ke SQL 2000. Sejauh yang saya tahu itu hanya bug di SSMS (dan EM) ketika melakukan matematika untuk mencari tahu persentase.
mrdenny
2

Saya juga ingin tahu mengapa kadang-kadang beberapa biaya ditampilkan sebagai 100%, 200%, 300% ... dan bahkan lebih. Setelah menganalisis file xml dari rencana kueri, saya mendapatkannya.

Persentase biaya = EstimatedTotalSubtreeCostsimpul orang tua sayaEstimatedTotalSubtreeCost

Misalnya, rencana kueri Anda menunjukkan Clustered Index Insertbiaya 914%, untuk memahami cara menghitung persentase ini, 1. Move mouse to `Clustered Index Insert` to show popup, you can see the cost `EstimatedTotalSubtreeCost`, e.g, 0.2 2. Move mouse to this node's parent node `COND WITH QUERY`, check the popup to get `EstimatedTotalSubtreeCost`, e.g, 0.0218818 3. Calculate 0.2/0.0218818 = 914%, this is the cost percentage displayed in `Clustered Index Insert` popup

osexp2003
sumber
1
0.002/2.18adalah 0.000917(yang sama dengan 0.0917%) dan tidak 914%.
ypercubeᵀᴹ
Terima kasih atas komentarmu. Saya akan mengubah jawaban saya. Bagaimanapun, ini hanyalah contoh untuk menunjukkan bagaimana cara menghitung persentase.
osexp2003