Czy procentowe koszty w tym planie SQL Server przekraczają 100% z ważnego powodu?


14

Przeglądam pamięć podręczną planu, szukam nisko wiszących owoców optymalizacji i natrafiłem na ten fragment:

wprowadź opis zdjęcia tutaj

Dlaczego wiele z wymienionych powyżej kosztów wynosi 100%? Czy nie powinno to być niemożliwe?


Widziałem nawet koszty do 1 miliona% z szacowanego planu. Po prostu użyj prawdziwych kosztów, powinno być lepiej.
Marian

5
Ponieważ matematyka programu SQL Server jest popsuta. Chwyć nasz darmowy Eksplorator Planu ; nie mamy tego problemu.
Aaron Bertrand

Uwielbiam SQL Sentry Plan Explorer, Aaron - już go używam. Chcę zobaczyć, co robi wersja pro!
Max Vernon

Odpowiedzi:


13

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.


Czy kiedykolwiek widziałeś to w poprzednich wersjach SQL Server? Jeśli o mnie chodzi, nigdy nie zauważyłem tego na przykład na SS 2008R2.
KookieMonster

5
Widziałem to aż do SQL 2000. O ile wiem, to tylko błąd w SSMS (i EM), gdy robi matematykę, aby obliczyć wartości procentowe.
mrdenny,

2

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 Insertkoszt 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


1
0.002/2.18jest 0.000917(co jest takie samo jak 0.0917%) i nie 914%.
ypercubeᵀᴹ

Dziękuję za Twój komentarz. Zmodyfikuję swoją odpowiedź. W końcu to tylko próbka pokazująca, jak obliczyć procent.
osexp2003
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.