|
|
|
Выборка по rdb$dbkey: добавл-е второго условия по этому "полю" приводит к NATURAL-чтениям
|
|||
|---|---|---|---|
|
#18+
DDL: Код: plaintext 1. 2. 3. 4. Test-1: Код: plaintext 1. 2. 3. 4. Trace-1: Код: plaintext 1. 2. 3. 4. 5. 6. Test-2: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Trace-2: Код: plaintext 1. 2. 3. 4. 5. 6. 7. Добавление во where-предикат еще одного условия по rdb$db_key привело к natural'ам. То же самое при замене "=" на "in(...)". Поведение одинаковое в 2.5 и 3.0. Это так и должно быть ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2014, 15:20 |
|
||
|
Выборка по rdb$dbkey: добавл-е второго условия по этому "полю" приводит к NATURAL-чтениям
|
|||
|---|---|---|---|
|
#18+
Таблоид(Ok, все чтения - индексные) что, правда чтоль, where rdb$db_key = ... ищет по индексу? :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2014, 15:27 |
|
||
|
Выборка по rdb$dbkey: добавл-е второго условия по этому "полю" приводит к NATURAL-чтениям
|
|||
|---|---|---|---|
|
#18+
PS. Код: plaintext Trace: Код: plaintext 1. 2. 3. Куда подевалась из статистики 'T1' и причём тут rdb$pages ?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2014, 15:27 |
|
||
|
Выборка по rdb$dbkey: добавл-е второго условия по этому "полю" приводит к NATURAL-чтениям
|
|||
|---|---|---|---|
|
#18+
kdvТаблоид(Ok, все чтения - индексные) что, правда чтоль, where rdb$db_key = ... ищет по индексу? :-)Не, он просто так *показывается*, типа "скорость такая же шустрая, как по индексу" :-) Там колонки нет соотв-щей, вот и затокано в IR. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2014, 15:28 |
|
||
|
Выборка по rdb$dbkey: добавл-е второго условия по этому "полю" приводит к NATURAL-чтениям
|
|||
|---|---|---|---|
|
#18+
Таблоид> Это так и должно быть ? С т.з. by design - думаю, да. Можно "оптимизировать", конечно, но смысла нет. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2014, 15:40 |
|
||
|
Выборка по rdb$dbkey: добавл-е второго условия по этому "полю" приводит к NATURAL-чтениям
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустамсмысла нет.Смысл есть. Как минимум ввиду того, что доступ по rdb$db_key быстрее, чем что либо. И вот что еще нарылось. DDL: Код: plaintext 1. 2. 3. 4. 5. Test: Код: plaintext 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. Result in FB 3.0 (LI-T6.3.0.31208): T2_IDT2_X11002200 - т.е. всё Ок. Result in FB 2.5 (LI-V6.3.3.26737): в таблице T2 - нет строк. Т.е. из T1 они "ушли", а в Т2 так и не "пришли". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2014, 16:00 |
|
||
|
Выборка по rdb$dbkey: добавл-е второго условия по этому "полю" приводит к NATURAL-чтениям
|
|||
|---|---|---|---|
|
#18+
Таблоид> Смысл есть Когда я говорю "смысла нет", я имею в виду "практического смысла нет". А практического смысла нет. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2014, 16:24 |
|
||
|
Выборка по rdb$dbkey: добавл-е второго условия по этому "полю" приводит к NATURAL-чтениям
|
|||
|---|---|---|---|
|
#18+
ТаблоидДобавление во where-предикат еще одного условия по rdb$db_key привело к natural'ам. То же самое при замене "=" на "in(...)". Потому что ты там подзапросы использовал. Используй константы или JOIN - возможно увидишь другую картину. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2014, 16:50 |
|
||
|
Выборка по rdb$dbkey: добавл-е второго условия по этому "полю" приводит к NATURAL-чтениям
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovТаблоидДобавление во where-предикат еще одного условия по rdb$db_key привело к natural'ам. То же самое при замене "=" на "in(...)". Потому что ты там подзапросы использовал. Используй константы или JOIN - возможно увидишь другую картину.с константами то же самое, проверял уже. С джойном тоже: - "проверил, "получил", см выше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2014, 17:04 |
|
||
|
Выборка по rdb$dbkey: добавл-е второго условия по этому "полю" приводит к NATURAL-чтениям
|
|||
|---|---|---|---|
|
#18+
DS> Потому что ты там подзапросы использовал. Ну и какая логика в твоём утверждении? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2014, 17:25 |
|
||
|
Выборка по rdb$dbkey: добавл-е второго условия по этому "полю" приводит к NATURAL-чтениям
|
|||
|---|---|---|---|
|
#18+
ТаблоидЭто так и должно быть ? твои индексные чтения во втором примере - это выполнения подзапросов. Опять сношаешь нам мозг? ТаблоидКуда подевалась из статистики 'T1' а откуда ей там взяться? Ты не прочитал из нее ни одной записи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2014, 17:43 |
|
||
|
Выборка по rdb$dbkey: добавл-е второго условия по этому "полю" приводит к NATURAL-чтениям
|
|||
|---|---|---|---|
|
#18+
dimitr, я бы рассуждал так. Допустим, индексные чтения есть в подзапросе, да. Но основная часть (Пример 1, 2) select count(*) from t1 where rdb$db_key в любом случае содержит натуральные чтения (прямое обращение по rdb$db_key), раз там 1 records fetched а раз нам статистика даже при фетче натуралом не выдает натуральные чтения, то, или - статистика выдает неверную информацию - чтение по rdb$db_key не совсем "натурально" для статистики. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2014, 18:04 |
|
||
|
Выборка по rdb$dbkey: добавл-е второго условия по этому "полю" приводит к NATURAL-чтениям
|
|||
|---|---|---|---|
|
#18+
kdv, чтения через dbkey исторически отображаются как индексные. В первом примере имеем один IR в подзапросе (настоящий) и один в основном запросе (чтение через dbkey). Во втором примере имеем два IR в подзапросе (настоящие) и два NR в основном запросе (фуллскан). Вывод - Таблоид таки прав, а я погорячился с наездом :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2014, 18:20 |
|
||
|
Выборка по rdb$dbkey: добавл-е второго условия по этому "полю" приводит к NATURAL-чтениям
|
|||
|---|---|---|---|
|
#18+
dimitr> два NR в основном запросе (фуллскан). Собсно, это и есть неправильно, недочёт оптимизатора или ещё чего-то. Хотя повторюсь, править тут что-то *в данном конкретном примере* (если это не аукается где-то ещё) - никакого смысла не вижу. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2014, 18:36 |
|
||
|
Выборка по rdb$dbkey: добавл-е второго условия по этому "полю" приводит к NATURAL-чтениям
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустам, дык я не спорю. Кому сильно надо, занесет в трекер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2014, 18:44 |
|
||
|
Выборка по rdb$dbkey: добавл-е второго условия по этому "полю" приводит к NATURAL-чтениям
|
|||
|---|---|---|---|
|
#18+
Это ты зря сказал, занесет ведь. :) P.S. А в чём суть бага? Косяк оптимизатора или ограничение на допустимые операции с rdb$db_key? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2014, 18:51 |
|
||
|
Выборка по rdb$dbkey: добавл-е второго условия по этому "полю" приводит к NATURAL-чтениям
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов РустамP.S. А в чём суть бага? Косяк оптимизатора или ограничение на допустимые операции с rdb$db_key? оптимизатор, судя по всему ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.07.2014, 19:23 |
|
||
|
Выборка по rdb$dbkey: добавл-е второго условия по этому "полю" приводит к NATURAL-чтениям
|
|||
|---|---|---|---|
|
#18+
dimitrКому сильно надо, занесет в трекер.Да, припёрло тут слегка... А потому - CORE-4492 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2014, 01:55 |
|
||
|
Выборка по rdb$dbkey: добавл-е второго условия по этому "полю" приводит к NATURAL-чтениям
|
|||
|---|---|---|---|
|
#18+
ТаблоидА потому - CORE-4492 как обычно не читаешь, что я пишу. Было же выше про статистику для T1, так нет же - захреначил в трекер :-( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2014, 14:49 |
|
||
|
Выборка по rdb$dbkey: добавл-е второго условия по этому "полю" приводит к NATURAL-чтениям
|
|||
|---|---|---|---|
|
#18+
dimitrкак обычно не читаешь, что я пишу. Было же выше про статистику для T1, так нет же - захреначил в трекер :-(я как раз всё прочитал:dimitrТаблоидКуда подевалась из статистики 'T1' а откуда ей там взяться? Ты не прочитал из нее ни одной записи. И не понял твоего ответа. И поскольку в трекере этого примера уже нету (грохнул ты его), то повторю вопрос сюда: Test-a: ====== Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. (несмотря на то, что тут count = 0, ФБ *делает* 1 натуральный скан таблицы rdb$database, и это видно по фетчам) Test-b: ======= Код: plaintext 1. 2. 3. 4. 5. 6. В этом примере я всего лишь поменял 'is null' на '=', а также значение в правой части условия для rdb$db_key. Левую часть условия - не менял, это всё тот же 'rdb$db_key. Куда пропала статистика по RDB$DATABASE и почему вдруг ФБ её перестал вообще читать ? (и такой же результат будет для вот этого: select count(*) from rdb$database where rdb$db_key = cast( 'ABC' as char(8) character set octets); ) Test-c: ======= Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. По таблице rdb$database статистики нет, но откуда-то теперь вылезла статистика по rdb$pages. Которая вообще непонятно, каким боком сюда пришла. Можно получить ответ на эти вопросы (я про test-b & test-c) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2014, 15:18 |
|
||
|
Выборка по rdb$dbkey: добавл-е второго условия по этому "полю" приводит к NATURAL-чтениям
|
|||
|---|---|---|---|
|
#18+
test-a: фуллскан, поэтому одно чтение из таблицы есть всегда (даже когда предикат ложный) test-b: чтение по dbkey (псевдо-индексный скан), но т.к. ищется мура, то запись не найдена, отсюда нулевая статистика test-с: аналогично предыдущему чтения из rdb$pages - это что-то внутреннее/служебное попадает в статистику. Почему они только в третьем примере - ХЗ, видимо внутри этот пример чем-то отличается от остальных, копать не вижу смысла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.07.2014, 16:05 |
|
||
|
|

start [/forum/topic.php?fid=40&fpage=92&tid=1563476]: |
0ms |
get settings: |
10ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
62ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 238ms |
| total: | 382ms |

| 0 / 0 |
