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

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

 

برای سرعت بخشیدن حذف رکوردها در اوراکل از چند روش می توان استفاده کرد:
  • استفاده از 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 امتیاز)

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

نشانی ایمیل شما منتشر نخواهد شد.

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

فهرست
Oracle APEX Capabilities (OAC)