Przeglądam pamięć podręczną planu, szukam nisko wiszących owoców optymalizacji i natrafiłem na ten fragment:
Dlaczego wiele z wymienionych powyżej kosztów wynosi 100%? Czy nie powinno to być niemożliwe?
Przeglądam pamięć podręczną planu, szukam nisko wiszących owoców optymalizacji i natrafiłem na ten fragment:
Dlaczego wiele z wymienionych powyżej kosztów wynosi 100%? Czy nie powinno to być niemożliwe?
Odpowiedzi:
Wizualny kalkulator kosztów to bzdura. Takie rzeczy zdarzają się cały czas. Po prostu idź z najwyższymi, które są najdroższe i zaatakuj je jako pierwsze.
Byłem również ciekawy, dlaczego czasami niektóre koszty są wyświetlane jako 100%, 200%, 300% ... a nawet więcej. Po przeanalizowaniu pliku XML planu zapytań mam go.
Procent kosztów = mój EstimatedTotalSubtreeCost
/ nadrzędny węzełEstimatedTotalSubtreeCost
Na przykład Twój plan zapytań pokazuje Clustered Index Insert
koszt 914%, aby zrozumieć, w jaki sposób oblicza ten odsetek,
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
0.002/2.18
jest 0.000917
(co jest takie samo jak 0.0917%
) i nie 914%
.