यदि आपका update
. है तो Oracle के पूर्ववत लॉग में लिखने से बचने के लिए कथन तालिका की हर एक पंक्ति को हिट करता है तो आप create table as select
. चलाने से बेहतर हो सकते हैं क्वेरी जो सभी पूर्ववत लॉग को बायपास कर देगी, जो संभवतः वह समस्या है जिसमें आप चल रहे हैं क्योंकि यह 60 मिलियन पंक्तियों में प्रभाव को लॉग कर रहा है। फिर आप पुरानी तालिका को छोड़ सकते हैं और नई तालिका का नाम बदलकर पुरानी तालिका के नाम पर रख सकते हैं।
कुछ इस तरह:
create table new_people as
select l.newid,
p.col2,
p.col3,
p.col4,
p.col5
from people p
join id_conversion l
on p.id = l.id;
drop table people;
-- rebuild any constraints and indexes
-- from old people table to new people table
alter table new_people rename to people;
संदर्भ के लिए, कुछ युक्तियों को यहां पढ़ें:http://www.dba-oracle.com /t_efficiency_update_sql_dml_tips.htm
यदि आप मूल रूप से एक नई तालिका बना रहे हैं और न केवल तालिका की कुछ पंक्तियों को अपडेट कर रहे हैं, तो यह संभवतः तेज़ विधि साबित होगी।