Форум: "Базы";
Текущий архив: 2003.06.19;
Скачать: [xml.tar.bz2];
Вниз
Оптимизация запроса... Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.029 c