اوراکل اپکس-حذف رکوردها در مقیاس بالا در اوراکل

حذف رکوردها در مقیاس بالا در اوراکل

 

براي سرعت بخشيدن حذف ركوردها در اوراکل از چند روش مي توان استفاده كرد:
  • استفاده از partitioning در اوراکل : كه مي توان يكدفعه يك پارتيشن را حذف كرد.
  • بهينه كردن delete sub query در اورکل
  • استفاده از bulk delete در اوراکل
  • حذف كردن index و constrains در اوراکل
  • استفاده از parallel كردن delete در اوراکل
  • استفاده از NOARCHIVELOG
  • تکه تکه كردن حذف اطلاعات مثلا براساس تاريخ
  • ايجاد دوباره يك جدول با استفاده از create table as select در اوراکل: بسيار در وقت شما صرفه جويي مي كند.
  • همه چيز بستگي به تعداد جداول و تعداد در هر بار اجرای حذف، دارد. حال مي توانيد به روش زير عمل كنيد: معمولا براي ركوردهاي پايين مثل يك ميليون ايندكس نياز نيست.
در ابتدا بايد parallel DML را enable كنيد چون بصورت پيش فرض غيرفعال مي باشد.

ALTER SESSION ENABLE PARALLEL DML;
مي توانيم در اوراکل به دو صورت زير عمل كنيد:

-full table scan
DELETE /*+ parallel(t1,4) full(t1) */
TBL_SELLERS t1
WHERE ROWID > ( SELECT MIN(ROWID) FROM TBL_SELLERS I
WHERE t1.SELLER_CODE=I.SELLER_CODE)
Or

- Index Fast Full Scan
DELETE /*+ parallel(t1,4) parallel_index(t1,4) index_ffs(t1) */
TBL_SELLERS t1
WHERE ROWID > ( SELECT MIN(ROWID) FROM TBL_SELLERS I
WHERE t1.SELLER_CODE=I.SELLER_CODE)

 

5/5 - (2 امتیاز)

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این قسمت نباید خالی باشد
این قسمت نباید خالی باشد
لطفاً یک نشانی ایمیل معتبر بنویسید.

keyboard_arrow_up
Oracle APEX Capabilities (OAC)