حذف محدودیتهای Parallel DML در اوراکل نسخه 23c

خرید بک لینک

در نسخه 21c اگر در تراکنشی از Parallel DML استفاده کنیم، امکان گرفتن query و یا اجرای دستورات DML و یا Parallel DML بر روی همان جدول و در همان تراکنش از ما گرفته خواهد شد:

SQL> alter session enable parallel dml;
Session altered.
SQL> insert /*+parallel(10)*/ into tbl1 select * from v$datafile;
1536 rows created.
Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production
Version 21.8.0.0.0
SQL> select count(*) from tbl1;
'ORA-12838: caot read/modify an object after modifying it in parallel'
SQL> delete tbl1;
'ORA-12838: caot read/modify an object after modifying it in parallel'

با خاتمه دادن به تراکنش شاهد این خطا نخواهیم بود:

SQL> commit;
Commit complete.
SQL> select count(*) from tbl1; COUNT(*)
---------- 6144
SQL> delete tbl1;
6144 rows deleted.

در نسخه 23c این محدودیت برداشته شده و بدون بستن تراکنش می توانیم دستور فوق را اجرا کنیم:

Oracle Database 23c Free Release 23.0.0.0.0 - Develop, Lea, and Run for Free
Version 23.3.0.23.09
SQL> alter session enable parallel dml;
Session altered.
SQL> insert /*+parallel(10)*/ into tbl1 select * from v$datafile;
14 rows created.
SQL> select count(*) from tbl1; COUNT(*)
---------- 28
SQL> delete tbl1;
28 rows deleted.

ارائه خدمات مشاوره ، پشتیبانی و نصب و راه اندازی پایگاه داده اوراکل در سراسر کشور...................... تلفن: 09128110897 ایمیل:[email protected]

تالار های تخصصی...

ما را در سایت تالار های تخصصی دنبال می‌کنید

برچسب: نویسنده: خنجی بازدید: 57 تاريخ: دوشنبه 1 آبان 1402 ساعت: 19:26

صفحه بندی