|
|
|
Непонятки с оптимизатором 2.5.3
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов РустамС чего это? Просто её выгоднее пустить по одному плану, а не по другому. Это не совсем разворачивание, а просто подсчёт селективности сегментов. Всё понеслось вот с этого ответа. Я ведь сначала даже поинтересовался у ТС селективностью сегментов. dimitrГаджимурадов РустамДЕ, оптимизатор такие обманы пока не умеет замечать? смотря что ты считаешь обманом :-) Второй вариант абсолютно понятен оптимизатору, а первый "обман" - нет. Один и тот же предикат нельзя использовать для двух индексных выборок, отсюда и результат в первом посте. Уверен что во всех версиях ФБ план будет такой же, т.е. используется лишь первый сегмент. А развернуть свернутую бинарную логику оптимизатор не умеет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2013, 13:33:03 |
|
||
|
Непонятки с оптимизатором 2.5.3
|
|||
|---|---|---|---|
|
#18+
dimitr, Спасибо!!!! зы. Для себя я понял что в принципе всё в порядке. и заставлять сервер использовать два раза индекс не буду :) :) :) ибо тем самым не оставлю оптимизатору никакого выбора тем более что (насколько я понимаю) по мере жизни базы селективность по первым сегментам ACCOUNTCODE , ACCOUNT_PIPECODE будет ухудшаться (ибо количество их практически не изменится) а по последнему сегменту - ENDDATE будет улучшаться и рано или поздно наступит "счастье" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2013, 13:59:55 |
|
||
|
Непонятки с оптимизатором 2.5.3
|
|||
|---|---|---|---|
|
#18+
dimitr> по статистике прав, а как оно де-факто выйдет - ХЗ, зависит от реальных значений в полях. Так это везде так. На этапе построения плана есть ведь только селективность. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2013, 14:05:57 |
|
||
|
Непонятки с оптимизатором 2.5.3
|
|||
|---|---|---|---|
|
#18+
Симонов Денис> Я ведь сначала даже поинтересовался у ТС селективностью сегментов. Так ДЕ же объяснил с конкретными цифрами. Возможно мы по-разному понимаем понятие разворачивания предиката - я (и ДЕ, AFAIU) имел в виду следующее: 1. where A = :A and (B = :B1 or B = :B2) есть сокращенный вариант развернутого where A = :A and B = :B1 or A = :A and B = :B2. 2. Это ручной обман (подсказка) оптимизатора и сам он такое (разворачивать предикат) не умеет. Наверное, это можно добавить, но ХЗ насколько это сложно и оправданно. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2013, 14:13:54 |
|
||
|
Непонятки с оптимизатором 2.5.3
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустам, Я именно так и понял. Хотя да, из слов ДЕ оптимизатор не разворачивает выражение. Но всё равно умеет использовать индекс дважды, если если стоимость получается более низкой. Кстати по идее с использованием гистрограмм может получится другая оценка, но вроде их использование возможно только для сравнения с константами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2013, 14:31:28 |
|
||
|
Непонятки с оптимизатором 2.5.3
|
|||
|---|---|---|---|
|
#18+
Мысль тут у меня появилась, насколько дурная не знаю дабы не листать топик приведу исходный пост еще раз Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Запрос Код: sql 1. 2. 3. 4. показывает план PLAN (ACCOUNT_STATE INDEX (ACCOUNT_STATE_ACC_ED_DESC)) я ожидал PLAN (ACCOUNT_STATE INDEX (ACCOUNT_STATE_ACC_ED_DESC, ACCOUNT_STATE_ACC_ED_DESC)) зы. записей в таблице 268773 Статистика для обоих индексов 0,000003720611..... с планами и причинами таких планов объяснили, все понятно но вот возник вопрос в связи с выделенным текстом Если создать уникальный индекс ALTER TABLE ACCOUNT_STATE ADD CONSTRAINT UNQ1_ACCOUNT_STATE UNIQUE (ACCOUNTCODE, ENDDATE); то оптимизатор выбирает план PLAN (ACCOUNT_STATE INDEX (UNQ1_ACCOUNT_STATE, UNQ1_ACCOUNT_STATE)) ну собственно сам вопрос, а может можно оптимизатор научить смотреть еще на статистику PK, ну и надо ли его этому учить ??? ps/ Я прекрасно понимаю что сам себе буратино и в моём случае надо было самому указывать что индекс уникальный, однако могут быть случае когда индекс все-же не уникальный но "дублирование" совсем мизерное ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2013, 10:29:10 |
|
||
|
Непонятки с оптимизатором 2.5.3
|
|||
|---|---|---|---|
|
#18+
m7m, статистика для ПК принимается упрощенной, т.е. стоимость индексного скана = 2 и стоимость чтения записи = 1. Так специально сделано, ибо не генерить кривые планы при устаревшей статистике. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2013, 12:22:26 |
|
||
|
Непонятки с оптимизатором 2.5.3
|
|||
|---|---|---|---|
|
#18+
dimitrm7m, статистика для ПК принимается упрощенной, т.е. стоимость индексного скана = 2 и стоимость чтения записи = 1. Так специально сделано, ибо не генерить кривые планы при устаревшей статистике. Я так понимаю что и для уникального индекса аналогично??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2013, 13:20:19 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=38390863&tid=1564343]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
170ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
25ms |
get tp. blocked users: |
1ms |
| others: | 181ms |
| total: | 403ms |

| 0 / 0 |
