@sisharpacc
Всем спасибо за помощь!

Oracle: как заполнить аттрибут случайными ID из другой таблицы?

(select * from (SELECT OWNER_ID FROM NEW_OWNER 
ORDER BY dbms_random.value)
where rownum = 1);

Работает быстро. Но так уже нереально долго:
update new_hill set owner_id = (select * from (SELECT OWNER_ID FROM NEW_OWNER 
ORDER BY dbms_random.value)
where rownum = 1) where rownum <= 1;
  • Вопрос задан
  • 2572 просмотра
Пригласить эксперта
Ответы на вопрос 1
@fessvmk
update new_hill
   set owner_id =  (select owner_id from new_owner sample(0.001) where rownum = 1)
 where rownum <= 1;


У вас фулскан таблицы NEW_OWNER да и еще и вычисление dbms_random.value для каждой строки. Лучше использовать sample_clause: "The sample_clause lets you instruct the database to select from a random sample of data from the table, rather than from the entire table"

docs.oracle.com/cd/E11882_01/server.112/e17118/sta...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы