|
Вопрос по соединению с GTT
|
|||
---|---|---|---|
#18+
Есть три таблицы. Одна постоянная, две других GTT с DELETE ROWS. Эти GTT присоединяются к первой через INNER JOIN. В одной GTT миллион строк, в другой - одна строка. Как FB определяет, какую из них использовать как мастер-таблицу, ведь статистика по индексам нулевая? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2017, 13:22 |
|
Вопрос по соединению с GTT
|
|||
---|---|---|---|
#18+
А что план говорит? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2017, 17:35 |
|
Вопрос по соединению с GTT
|
|||
---|---|---|---|
#18+
DIR$ABONENT$ABONENT - постоянная таблица. FIL$DIR$ABONENT$ABONENT и FIL$DIR$HOUSE$HOUSE - GTT с DELETE ROWS ON COMMIT. Подготавливаю запрос: Код: sql 1. 2. 3. 4. 5. 6.
План: Код: plaintext
Здесь все очевидно - перебираем FIL$DIR$ABONENT$ABONENT натуралом, а так как она все равно пустая, то отбирается 0 записей. Но непонятен момент - у IBExpert'а в статистике пусто - то есть как бы не было вообще никаких чтений, хотя NIR должны были быть по таблице FIL$DIR$ABONENT$ABONENT. Запускаем запрос: Код: sql 1.
Код: plaintext
Снова подготавливаем первый запрос и план меняется на: Код: plaintext
Делаю по-другому. Код: sql 1.
Код: plaintext
План: Код: plaintext
Тут логично - в таблице фильтрации домов нет строк, поэтому надо идти через нее. Код: sql 1.
Код: plaintext
План: Код: plaintext
То есть сервер каким-то образом увидел, что в таблице FIL$DIR$ABONENT$ABONENT меньше строк, а значит, идти надо через нее. Добавляем еще строк: Код: sql 1.
Код: plaintext
Код: plaintext
Но если запустить Код: sql 1.
, то план не меняется. Вот мне и не понятно, как сервер определяет план в соединениях с GTT. У меня часть таких запросов тормозит из-за неправильного плана, другая часть отрабатывает мгновенно. Логику найти не могу. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2017, 05:35 |
|
|
start [/forum/topic.php?fid=40&fpage=45&tid=1561568]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
46ms |
get topic data: |
16ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
others: | 17ms |
total: | 170ms |
0 / 0 |