Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Объясните план запроса / 12 сообщений из 12, страница 1 из 1
18.06.2008, 16:22
    #35380687
Ilhom_uz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объясните план запроса
сам запрос
Код: plaintext
1.
select b.id from osv a left join abonent b on a.idab=b.id where b.idmah= 1 

здесь osv "дочь" abonent по ключу osv.idab=abonent.id

Вопрос: Почему такой "тяжелый" NLJOIN ??? Можно как-то изменить это?
...
Рейтинг: 0 / 0
18.06.2008, 17:38
    #35380969
gardenman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объясните план запроса
IX_ADM_OSV_IDAB - че за индекс? по каким полям?
И еще, допиши - ка пож-ста OPTIMIZE FOR 100 ROWS .
Сколько строк в таблице OSV?
...
Рейтинг: 0 / 0
18.06.2008, 17:41
    #35380975
gardenman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объясните план запроса
IX_ADM_ABON_IDAB - а по каким полям?
...
Рейтинг: 0 / 0
18.06.2008, 17:42
    #35380986
unexplane
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объясните план запроса
поменять
select b.id from osv a left join abonent b on a.idab=b.id where b.idmah=1
на
select b.id from abonent b left join osv a on a.idab=b.id where b.idmah=1
...
Рейтинг: 0 / 0
19.06.2008, 08:18
    #35381635
Ilhom_uz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объясните план запроса
unexplaneпоменять
select b.id from osv a left join abonent b on a.idab=b.id where b.idmah=1
на
select b.id from abonent b left join osv a on a.idab=b.id where b.idmah=1

Изначально было так как вы советуете... но без изменений...
...
Рейтинг: 0 / 0
19.06.2008, 08:23
    #35381640
Ilhom_uz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объясните план запроса
gardenmanIX_ADM_ABON_IDAB - а по каким полям?

по внешнему ключу OSV, т.е. по IDAB... оптимизе для 100 строк только увеличило тяжесть до 13409...
для каждой записи в abonent в OSV есть по крайне мере 30-40 записей... Причем в абонент записей 20 000...
...
Рейтинг: 0 / 0
19.06.2008, 10:22
    #35381904
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объясните план запроса
Ilhom_uzдля каждой записи в abonent в OSV есть по крайне мере 30-40 записей... Причем в абонент записей 20 000...Что возвращает
Код: plaintext
select count( 1 ) from abonent b where b.idmah= 1 
?
...
Рейтинг: 0 / 0
19.06.2008, 10:35
    #35381942
Ilhom_uz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объясните план запроса
Mark Barinstein Ilhom_uzдля каждой записи в abonent в OSV есть по крайне мере 30-40 записей... Причем в абонент записей 20 000...Что возвращает
Код: plaintext
select count( 1 ) from abonent b where b.idmah= 1 
?

560
...
Рейтинг: 0 / 0
19.06.2008, 10:43
    #35381975
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объясните план запроса
Ilhom_uz Mark Barinstein Ilhom_uzдля каждой записи в abonent в OSV есть по крайне мере 30-40 записей... Причем в абонент записей 20 000...Что возвращает
Код: plaintext
select count( 1 ) from abonent b where b.idmah= 1 
?

560Мне кажется, что ничего странного тут нет - такой NLJOIN, в результате которого получается по меньшей мере 15 000 строк - довольно тяжелая операция.
...
Рейтинг: 0 / 0
19.06.2008, 13:33
    #35382583
GRPBY
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объясните план запроса
иногда помогает группировка (GRPBY) между FETCH и NLJOIN.
...
Рейтинг: 0 / 0
19.06.2008, 13:55
    #35382667
p.s. grpby
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объясните план запроса
p.s. у вас, конечно, это лишено смысла, это было так, к "слову"
...
Рейтинг: 0 / 0
19.06.2008, 18:33
    #35383616
gardenman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Объясните план запроса
Ilhom_uz gardenmanIX_ADM_ABON_IDAB - а по каким полям?

по внешнему ключу OSV, т.е. по IDAB... оптимизе для 100 строк только увеличило тяжесть до 13409...
для каждой записи в abonent в OSV есть по крайне мере 30-40 записей... Причем в абонент записей 20 000...

а конкретнее можно?
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Объясните план запроса / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]