Hello, Dmitri!
You wrote  on Thu, 11 Sep 2008 19:12:14 +0400:

DK>>> кстати, где расклад по времени, что такая выборка тормознее?
>> Тормознее, т.к. маленькая таблица, когда была основной, очень урезала
>> выборку. Но относится ли этот случай к тем, которые должен разрулить
>> оптмизатор в нынешнем виде - хз.
DK> ыыы. Где. Приведен. Пример. Времени. Выполнения. Первого. И. Второго.
DK> Запроса.

:-D
Оригинальной БД, с которой возник вопрос у меня нет(да, я тренирую телепатор :), потому привожу данные с той, что генерил для тестов. Фулл фетч в Эксперте по нескольку раз, без отсоединения и перезапуска сервера:

BIG_TABLE - 1800000
SMALL_TABLE - 1800

select
 s.id_small
from small_table s
join big_table b on b.id_small=s.id_small
PLAN JOIN (S NATURAL, B INDEX (BIG_TABLE_IDX1))

Prepare       : 16,00 ms
Execute       : 11 953,00 ms
Avg fetch time: 0,01 ms

Memory
------------------------------------------------
Current: 17 484 024
Max    : 17 763 692
Buffers: 2 048

Operations
------------------------------------------------
Read   : 16 802
Writes : 0
Fetches: 3 707 155




select
 s.id_small
from small_table s
join big_table b on b.id_small+0=s.id_small


PLAN JOIN (B NATURAL, S INDEX (SMALL_TABLE_IDX1))

Query Time
------------------------------------------------
Prepare       : 0,00 ms
Execute       : 30 640,00 ms
Avg fetch time: 0,02 ms

Memory
------------------------------------------------
Current: 17 460 580
Max    : 17 763 692
Buffers: 2 048

Operations
------------------------------------------------
Read   : 14 311
Writes : 0
Fetches: 12 723 070


--
-=Пописай в сугроб, почувствуй себя лазером!!!=-
With best regards, Nikolay Ponomarenko

Ответить