Привет!

>     Это пробовали ?

Попробовал. (с переконнектом между запросом, так что если и затесался кэш - то 
только
от операционки, знаю, что в идеале надо бы сервак перегрузить, но
правов нету. Кстати, даже после переконнекта кэш операционки вносит
лепту - мой повторный запрос исполняется меньше секунды даже после
переконнекта.)
Каждый запрос в рамках одного подключения исполнялся три раза, привожу результат
третьего исполнения:

Статистика:

                           Мой             I                II
                           
Prepare time =              219ms         187ms           219ms
Execute time =              764ms         2s 886ms        624ms
Avg fetch time =            764,00 ms     2 886,00 ms     624,00 ms
Current memory =            67 214 380    67 509 784      67 610 984
Max memory =                88 446 412    78 127 420      67 743 440
Memory buffers =            4 000         4 000           4 000
Reads from disk to cache =  17 542        15 229          8 801
Writes from cache to disk = 0             0               0
Fetches from cache =        73 787        93 782          133 848


*****************************************************************************
Планы:

Мой запрос:
Plan
PLAN JOIN (SORT (SORT (JOIN ((IDX T1 RDB$DATABASE NATURAL)
PLAN (IDX T1 RDB$DATABASE NATURAL)
PLAN (IDX T1 RDB$DATABASE NATURAL), IDX W INDEX (T_SEARCH_WORDS_IDX1), D INDEX 
(PK_T_DOCUMENTS)))))

Adapted Plan
PLAN JOIN (SORT (SORT (JOIN ((IDX T1 RDB$DATABASE NATURAL) PLAN (IDX T1 
RDB$DATABASE NATURAL) PLAN (IDX T1 RDB$DATABASE NATURAL), IDX W INDEX 
(T_SEARCH_WORDS_IDX1), D INDEX (PK_T_DOCUMENTS)))))




Твой первый:
Plan
PLAN JOIN (SORT (IDX W ORDER FK_T_SEARCH_WORDS_1 INDEX (T_SEARCH_WORDS_IDX1, 
T_SEARCH_WORDS_IDX1, T_SEARCH_WORDS_IDX1)), D INDEX (PK_T_DOCUMENTS))

Adapted Plan
PLAN JOIN (SORT (IDX W ORDER FK_T_SEARCH_WORDS_1 INDEX (T_SEARCH_WORDS_IDX1, 
T_SEARCH_WORDS_IDX1, T_SEARCH_WORDS_IDX1)), D INDEX (PK_T_DOCUMENTS))

Твой второй:
Plan
PLAN (W INDEX (PK_T_SEARCH_WORDS))
PLAN (W INDEX (PK_T_SEARCH_WORDS))
PLAN (W INDEX (PK_T_SEARCH_WORDS))
PLAN (D INDEX (T_DOCUMENTS_IDX3, FK_T_DOCUMENTS))

Adapted Plan
PLAN (W INDEX (PK_T_SEARCH_WORDS)) PLAN (W INDEX (PK_T_SEARCH_WORDS)) PLAN (W 
INDEX (PK_T_SEARCH_WORDS)) PLAN (D INDEX (T_DOCUMENTS_IDX3, FK_T_DOCUMENTS))

*****************************************************************************

Насколько я могу судить, твой второй запрос (я его слегка
отредактировал - вместо select * написал select 1 - по идее должно
чуть-чуть меньше памяти слопать) работает толику быстрее за счет
отсутствия сортировки - надо будет посмотреть изменение
производительности, если будет 10 ключевых слов.

На первый из твоих запросов кэш вообще никак не влияет, как я могу
судить.

Но вот что мне интересно - так это почему при количестве чтений
меньшем почти в  раза, третий запрос исполняется почти с такой же
скоростью, как и первый?

-- 
Best regards,
 Sergey                            mailto:[EMAIL PROTECTED]


Reply via email to