помогите с pl\sql`ем #2
Нормальный запрос. Упрощать тут нечего ИМХО.
я к сожалению Оракл не знаю
наверное надо таблицу временную делать...
мб он этот селект на каждый апдейт делает?
ЗЫ а тебе это один раз надо сделать или много и часто?
один раз
select a from b where id in (select * from some_function(some_params; [postgres]
на таблице a с 15000 элементов работал пипец как медленно, хотя функция возвращала от силы пару сотен id.
Но после переделки на
insert into temp_table select * from some_function(...);
select a from b where a.id = temp_table.id все сьало нормально
ЗЫ а а если с отдельной таблицей не получится, то можно создать таблицу, по структуре такую же как исходная и вставить туда все строки из исходной таблицы с замененными значениями clientattr3 (это проще, так как это делается селектом, а не апдейтом). а потом заменить строки в исходной таблице на строки из временной
я в общем-то примерно это и имел в виду в предыдущем посте
правда реализация пока отложилсь...
Оставить комментарий
voronetskaya
задача - записать в поле порядковый номер записи(если выбирать записи по возрасстанию поля clientid) только в том случае, если это поле not null.родил я вот такой апдейт -
UPDATE Clients c SET c.CLIENTATTR3 = (select r from (select rownum as r, clientid from clients order by clientid ) a where a.clientid=c.clientid) where c.CLIENTATTR3 is not null;
и чем-то он мне не нравится...
кто подскажет как оптимизировать?