Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
14-60348
Зозуля Юрий
2003-05-30 23:44
2003.06.19
Где моя анкета


3-60095
DreamDesire
2003-05-27 10:47
2003.06.19
Dynamic Sql, Multitier и не только


6-60313
first_aid
2003-04-15 08:13
2003.06.19
Indy, HTTPS и TIdConnectionInterceptOpenSSL.


7-60428
YDV
2003-04-13 19:26
2003.06.19
запуск в определенный момент времени !?


1-60253
NeshBriges
2003-06-02 22:53
2003.06.19
Открыть файл





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский