Я переглядаю кеш плану, шукаю низько висячі плоди оптимізації та натрапив на цей фрагмент:
Чому багато витрат перераховані вище 100%? Це не повинно бути неможливим?
Я переглядаю кеш плану, шукаю низько висячі плоди оптимізації та натрапив на цей фрагмент:
Чому багато витрат перераховані вище 100%? Це не повинно бути неможливим?
Відповіді:
Візуальний оцінювач вартості - лайно. Такі речі трапляються постійно. Просто йдіть з найвищими найдорожчими і нападайте на них першими.
Мені також цікаво, чому іноді деякі витрати відображаються як 100%, 200%, 300% ... і навіть більше. Проаналізувавши XML-файл плану запитів, я його отримав.
Відсоток витрат = мій EstimatedTotalSubtreeCost
/ батьківський вузолEstimatedTotalSubtreeCost
Наприклад, ваш план запитів показує Clustered Index Insert
вартість 914%, щоб зрозуміти, як він обчислює цей відсоток,
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
є 0.000917
(що таке саме 0.0917%
) і немає 914%
.