0 oy
31 gösterim

selam, 

oracle veri tabanında bir for loop içinde bir tablo select çekiyorum.. Bu select i daha da hızlandırmanın bir yolu var mıdır? 

İlk düşüncem burada tüm dataya erişmek yerine (*), sadece colum_c yapmak daha mantıklı ilk olarak. Başka index ekleme, hint kullanma gibi yöntemler kullanmayı düşünüyorum. Ne işe yarar bilemedim.

for  r  in (select * from TABLE)

  update Table_X

   set column_a :=123

where column_b = r.column_c

end loop;

Veri Tabanı kategorisinde (1.8k puan) | 31 gösterim

1 cevap

0 oy

tablo üzerinden çekip, aynı tabloyu update ediyorsan, rowid kullan.

for  r  in (select *, rowid rid from TABLE_X)

  update Table_X

   set column_a :=123

where rowid = rid

end loop;

(3.7k puan)
farklı tablo update ediyorum.

ve bir procedure içinde parametre olarak veriyorum

İlgili sorular

0 oy
2 cevap
0 oy
1 cevap
0 oy
1 cevap
Birbirinden değerli Türkçe Blog yazarlarını takip edebilmek için ziyaret edebileceğiniz bir internet sitesi. yazarlar.hasscript.com