Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.19;
Скачать: CL | DM;

Вниз

Оптимизация запроса...   Найти похожие ветки 

 
plans   (2003-05-27 10:17) [0]

Мастера, как ускорить запрос?
При выполнении в IBManager пишет -
PLAN JOIN (JOIN (JOIN (T1 NATURAL,T2 NATURAL),T3 NATURAL),T4 NATURAL)
Что из это следует? По полям связи таблиц индексы построены...


 
Johnmen ©   (2003-05-27 10:21) [1]

А где сам запрос ? И где описание индексов ?


 
plans   (2003-05-27 10:27) [2]

select t1.f1, t2.f1, t3.f2, t4.f2
from table1 t1
left join table2 t2 on t1.id2 = t2.id
left join table3 t3 on t1.id3 = t3.id
left join table4 t4 on t1.id4 = t4.id
where t1.id_owner=:id_owner


CREATE INDEX IDX_id2 ON table1 (id2);
CREATE INDEX IDX_id5 ON table1 (id_owner);
CREATE INDEX IDX_id3 ON table1 (id3);
CREATE INDEX IDX_id4 ON table1 (id4);


 
Zz_   (2003-05-27 10:27) [3]

Явно прописывай план.
У меня был случай, когда запрос,
выполняющийся полторы минуты,
после явного задания плана
стал выполняться за 7 (семь) секунд.

plan join (
TBL_S NATURAL,
TBL_M INDEX (TBL_M_IDX2),
TBL_G INDEX (TBL_G_IDX1),
TBL_A INDEX (TBL_A_IDX1),
TBL_T INDEX (TBL_T_IDX1),
TBL_Q INDEX (TBL_Q_IDX2)"
)


 
Жук ©   (2003-05-27 10:30) [4]


> plans (27.05.03 10:17)

А внешние ключи есть ?


 
plans   (2003-05-27 10:34) [5]


> А внешние ключи есть ?

FK? нет.


 
Johnmen ©   (2003-05-27 10:37) [6]

То есть на таблицы, кроме table1, никаких индексов нет ? :)


 
Жук ©   (2003-05-27 10:41) [7]


> Johnmen © (27.05.03 10:37)
> То есть на таблицы, кроме table1, никаких индексов нет ?
> :)

Я думаю, что в остальных - PK :-)))


 
plans   (2003-05-27 10:42) [8]


> Жук © (27.05.03 10:41)

ты прав. А что это разве не индексы?


 
Johnmen ©   (2003-05-27 10:46) [9]

PK => UNIQUE INDEX, но не наоборот...


 
plans   (2003-05-27 10:50) [10]


> Johnmen © (27.05.03 10:46)

посоздавал я у справочных таблиц индексы, план не изменился.


 
plans   (2003-05-27 10:54) [11]

2 Zz_

> plan join (
> TBL_S NATURAL,

обязательно первая строка Natural?


 
Zz_   (2003-05-27 10:55) [12]

нет, по обстоятельствам


 
Жук ©   (2003-05-27 10:56) [13]

Ничего не надо создавать больше. У меня в аналогичной ситуации план такой :
PLAN JOIN (JOIN (JOIN (VO NATURAL,O INDEX (RDB$PRIMARY21)),P INDEX (RDB$PRIMARY20)),A INDEX (RDB$PRIMARY9)).
Всё работает. Что-то тут не чисто...


 
Johnmen ©   (2003-05-27 10:57) [14]

В общем и целом :
У таблицы (table1) д.б. FK на поля, ссылающиеся в справочники...
У справочников д.б. PK, на которые ссылаются FK из table1...


 
plans   (2003-05-27 11:00) [15]


> Жук © (27.05.03 10:56)

пытаюсь явно указать план, ругается на
то что индексов нет...я пишу явно имя индексов, а не через системные таблицы, а как узнать имя индекса в системной таблице?


 
plans   (2003-05-27 11:11) [16]

Мастаки, спасибо. все заработало...Сначала не работало, теперь работает. Чуть глюкавый IBManeger или я :)


 
plans   (2003-05-27 11:13) [17]

rdb$relation_constraints правда что-то много времени забирает.


 
plans   (2003-05-27 11:32) [18]

вот столкнулся с тем, что когда есть FK, то индекс не хочет подключаться...


 
plans   (2003-05-27 11:51) [19]

все заработало... :)


 
plans   (2003-05-27 12:09) [20]

2 Jophnmen
когда есть поле FK и еще по нем же просто индек, то в плане показывает, что индекс не подключаеться :((



Страницы: 1 вся ветка

Текущий архив: 2003.06.19;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.021 c
14-60378
Ann
2003-06-03 08:44
2003.06.19
Преобразование


14-60373
AlexRush
2003-06-02 17:38
2003.06.19
Code To HTML / DOC


3-60017
kah68
2003-05-27 12:51
2003.06.19
Как выполнить запрос в отдельном процессе


14-60422
Danilka
2003-06-03 15:55
2003.06.19
Автоматизация учета


6-60293
Rule
2003-04-10 19:31
2003.06.19
Необходимо эмулировать отправку информации с формы на вебсайте