|
|
|
Неправильная оценка E-Rows. Когда оптимизатор использует статистику?
|
|||
|---|---|---|---|
|
#18+
Добрый день, не могу понять, объясните пожалуйста следующее, есть табличка по которой собрана статистика, в ней всего одно поле. Почему в 3-й строке плана E-Rows показывает неправильное (старое) значение? Может дело в том что план адаптивный? В какой момент оптимизатор использует статистику? При каждом выполнении или только в момент первого разбора? Я запутался, помогите пожалуйста ) Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2017, 15:12 |
|
||
|
Неправильная оценка E-Rows. Когда оптимизатор использует статистику?
|
|||
|---|---|---|---|
|
#18+
очень хочу знать, Теперь покажи с минутами и секундами LAST_ANALYZED, а также last_active_time, last_load_time, first_load_time из v$sql для твоего sql_id. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2017, 15:40 |
|
||
|
Неправильная оценка E-Rows. Когда оптимизатор использует статистику?
|
|||
|---|---|---|---|
|
#18+
Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2017, 15:58 |
|
||
|
Неправильная оценка E-Rows. Когда оптимизатор использует статистику?
|
|||
|---|---|---|---|
|
#18+
очень хочу знать, Пробел добавь где-нибудь в запросе и запусти ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2017, 16:11 |
|
||
|
Неправильная оценка E-Rows. Когда оптимизатор использует статистику?
|
|||
|---|---|---|---|
|
#18+
С пробелом всё понятно и прогнозируемо, sql_id поменялся, соответственно новый план уже с hash join и статистика актуальна. Это понятно. Я вот больше запутался когда оптимизатор использует статистику - то есть есть у нас запрос, он выполнился первый раз, распарсился, построился план. Потом в течении дня добавили много строк и обновили статистику. И вот тут вопрос, когда оптимизатор решает на основании этой новой статистики построить новый план? Я всегда думал что присутствие актуальной статистики позволяет оптимизатору рассмотреть новый план даже не смотря то что есть уже в library cash разобранный план для этого курсора. Но я похоже ошибаюсь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2017, 16:24 |
|
||
|
Неправильная оценка E-Rows. Когда оптимизатор использует статистику?
|
|||
|---|---|---|---|
|
#18+
очень хочу знать, Если для простоты отбросить в сторону адаптивные планы, то не так сложно понять, что для построение нового плана должен быть hard parse. Будет ли он выполнен при первом же разборе после сбора статистики определяется значением параметра no_invalidate. Похоже у тебя нет понимания чем hard отличается от soft. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2017, 16:30 |
|
||
|
Неправильная оценка E-Rows. Когда оптимизатор использует статистику?
|
|||
|---|---|---|---|
|
#18+
В целом наверное да, нету чёткого понимания, но приблизительное какое-никакое есть. Из документации я понимаю что hard parse осуществляется каждый раз при отсутствии заданного оператора в cash или при различии среды -Even if two statements are semantically identical, an environmental difference can force a hard parse. То есть существенное изменение статистики не является изменением этого самого environment ? Но это не отменяет вопрос про E-Rows - получается что в этом поле показывается оценочная кардинальность, которая основывается не на текущей статистике а на статистике в момент hard parse ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2017, 16:45 |
|
||
|
Неправильная оценка E-Rows. Когда оптимизатор использует статистику?
|
|||
|---|---|---|---|
|
#18+
Хотя всё, вроде понял. Спасибо dbms_photoshop за no_invalidate ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2017, 16:50 |
|
||
|
Неправильная оценка E-Rows. Когда оптимизатор использует статистику?
|
|||
|---|---|---|---|
|
#18+
очень хочу знатьоператора в cashОператора в наличке? очень хочу знатьТо есть существенное изменение статистики не является изменением этого самого environment ?Ты мой ответ про no_invalidate читал вообще?? Параметры optimizer env смотри в v$sql_optimizer_env? Что-то изменилось при сборе статистики? Нет. Причины по которым CBO может решит сделать hard parse смотри в v$sql_shared_cursor. очень хочу знатьНо это не отменяет вопрос про E-Rows - получается что в этом поле показывается оценочная кардинальность, которая основывается не на текущей статистике а на статистике в момент hard parse ?Внезапно, да? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2017, 17:05 |
|
||
|
Неправильная оценка E-Rows. Когда оптимизатор использует статистику?
|
|||
|---|---|---|---|
|
#18+
не понимаю агрессии-сарказма. Я же написал что всё стало более-менее понятно и главное стало понятно куда смотреть. Можно же просто объяснить это было, для этого вопрос и задается, что откуда берется, не все ж знают наизусть всю документацию и системные view. Читать это хорошо, но всё ж не прочитаешь - потому и вопросы чтоб направили в нужное русло. Чего все такие нервные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2017, 17:38 |
|
||
|
Неправильная оценка E-Rows. Когда оптимизатор использует статистику?
|
|||
|---|---|---|---|
|
#18+
очень хочу знатьЧего все такие нервные.Жить в эпоху свершений, имея возвышенный нрав, к сожалению, трудно. (с) А вообще держись там, хорошего настроения и здоровья. Без сарказма. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2017, 17:46 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=39462580&tid=1885846]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
169ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 496ms |

| 0 / 0 |
