{"id":4965,"date":"2015-06-12T10:39:49","date_gmt":"2015-06-12T08:39:49","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/parallel-dml-in-12c\/"},"modified":"2015-06-12T10:39:49","modified_gmt":"2015-06-12T08:39:49","slug":"parallel-dml-in-12c","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/parallel-dml-in-12c\/","title":{"rendered":"Parallel DML in 12c"},"content":{"rendered":"<h2>By Franck Pachot<\/h2>\n<p>.<br \/>\nFollowing a <a href=\"https:\/\/community.oracle.com\/message\/13118790?et=watches.email.thread#13117716\">question<\/a> from Randolf Geist (who can imagine that there is something about parallel query that Randolf didn&#8217;t know?), I get back to some notes I&#8217;ve taken when 12c was out and I&#8217;ve tested them again on 12.1.0.2 &#8211; it&#8217;s about the ability to enable parallel DML at query level.<\/p>\n<h3>Test case<\/h3>\n<p>In 12.1.0.2 I create two tables. DEMO1 has 100000 rows and is about 80MB. DEMO2 is empty. DEMO1 is parallel.<\/p>\n<pre><code>SQL&gt; create table DEMO1 parallel 2 as\n  2  select rownum id , ora_hash(rownum,10) a from xmltable('1 to 1000000');\n\nTable created.\n\nSQL&gt; select table_name,num_rows,blocks from user_tables where table_name='DEMO';\n\nTABLE_NAME   NUM_ROWS     BLOCKS\n---------- ---------- ----------\nDEMO           100000      10143\n\nSQL&gt;\nSQL&gt; create table DEMO2 as select * from DEMO1 where null is not null;\n\nTable created.\n\nSQL&gt;\nSQL&gt; alter session set statistics_level=all;\n\nSession altered.\n\n<\/code><\/pre>\n<h3>insert &#8230; select &#8230;<\/h3>\n<p>Here is a simple insert as select:<\/p>\n<pre><code>SQL&gt; insert into DEMO2 select * from DEMO1;\n\n1000000 rows created.\n\nSQL&gt; select * from table(dbms_xplan.display_cursor(format=&gt;'allstats last'));\n\nPLAN_TABLE_OUTPUT\n-----------------------------------------------------------------------------------------------\nSQL_ID  bx27xdnkr7dvw, child number 0\n-------------------------------------\ninsert into DEMO2 select * from DEMO1\n\nPlan hash value: 4271246053\n\n-----------------------------------------------------------------------------------------------\n| Id  | Operation                | Name     | Starts | E-Rows | A-Rows |   A-Time   | Buffers |\n-----------------------------------------------------------------------------------------------\n|   0 | INSERT STATEMENT         |          |      1 |        |      0 |00:00:17.40 |   24311 |\n|   1 |  LOAD TABLE CONVENTIONAL | DEMO2    |      1 |        |      0 |00:00:17.40 |   24311 |\n|   2 |   PX COORDINATOR         |          |      1 |        |   1000K|00:00:04.49 |       5 |\n|   3 |    PX SEND QC (RANDOM)   | :TQ10000 |      0 |   1000K|      0 |00:00:00.01 |       0 |\n|   4 |     PX BLOCK ITERATOR    |          |      0 |   1000K|      0 |00:00:00.01 |       0 |\n|*  5 |      TABLE ACCESS FULL   | DEMO1    |      0 |   1000K|      0 |00:00:00.01 |       0 |\n-----------------------------------------------------------------------------------------------\n\nNote                                                                                                                                \n-----\n   - Degree of Parallelism is 2 because of table property\n   - PDML is disabled in current session\n\n<\/code><\/pre>\n<p>The select part is done in parallel (it&#8217;s below the coordinator) but the insert part (LOAD TABLE) is above the coordinator, which means that it is done in serial by the coordinator. In 12.1.0.2 you have no doubt: dbms_xplan has a note to tell you that PDML was not used and it gives the reason: it&#8217;s not enabled in the session.<\/p>\n<p>When you have tuning pack the parallel queries are monitored by default, so we can get the SQL Monitor Plan. You can get it as text, html or flash but I&#8217;ll use <a href=\"http:\/\/www.orachrome.com\/en\/index.html\">Lighty<\/a> here as I find it awesome for that as well:<\/p>\n<p><a class=\"easyblog-thumb-preview\" title=\"PDML1.png\" href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/PDML1.png\"><img decoding=\"async\" title=\"PDML1.png\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/PDML1.png\" alt=\"PDML1.png\" \/><\/a><\/p>\n<p>Look at the bottom right which details the highlighted plan line: 100% of the load has been done by my session process.<\/p>\n<h3>Enable parallel dml<\/h3>\n<p>So we need to enable parallel DML for our session. Do you know why? Because inserting in parallel requires to lock the table (or partition) it is inserted into, so the optimizer cannot decide that without our permission. So let&#8217;s enable parallel DML:<\/p>\n<pre><code>SQL&gt; alter session enable parallel dml;\nERROR:\nORA-12841: Cannot alter the session parallel DML state within a transaction\n\n<\/code><\/pre>\n<p>I cannot do that here because I have a transaction in progress. But in 12c you can also enable parallel DML at query level, with the ENABLE_PARALLEL_DML hint. I&#8217;ve seen it when 12c came out, but it was undocumented. But I discover today that it is documented in the <a href=\"https:\/\/docs.oracle.com\/database\/121\/VLDBG\/GUID-5EB01FA8-030B-45BB-9B16-2D13881F6010.htm\">Enable Parallel DML Mode<\/a> of the Database VLDB and Partitioning Guide.<\/p>\n<p>With the DISABLE_PARALLEL_DML hint you can disable PDML at query level when you have enabled it in the session. And with the ENABLE_PARALLEL_DML hint you can enable PDML for one query even when it&#8217;s not enabled in the session. And you can do that even if you have a transaction in progress:<\/p>\n<pre><code>SQL&gt; insert \/*+ enable_parallel_dml *\/ into DEMO2 select * from DEMO1;\n\n1000000 rows created.\n\nSQL&gt; select * from table(dbms_xplan.display_cursor(format=&gt;'allstats last'));\n\nPLAN_TABLE_OUTPUT\n-----------------------------------------------------------------------------------------------\nSQL_ID  707bk8y125hp4, child number 0\n-------------------------------------\ninsert \/*+ enable_parallel_dml *\/ into DEMO2 select * from DEMO1\n\nPlan hash value: 4271246053\n\n-----------------------------------------------------------------------------------------------\n| Id  | Operation                | Name     | Starts | E-Rows | A-Rows |   A-Time   | Buffers |\n-----------------------------------------------------------------------------------------------\n|   0 | INSERT STATEMENT         |          |      1 |        |      0 |00:00:18.76 |   22343 |\n|   1 |  LOAD TABLE CONVENTIONAL | DEMO2    |      1 |        |      0 |00:00:18.76 |   22343 |\n|   2 |   PX COORDINATOR         |          |      1 |        |   1000K|00:00:04.22 |       5 |\n|   3 |    PX SEND QC (RANDOM)   | :TQ10000 |      0 |   1000K|      0 |00:00:00.01 |       0 |\n|   4 |     PX BLOCK ITERATOR    |          |      0 |   1000K|      0 |00:00:00.01 |       0 |\n|*  5 |      TABLE ACCESS FULL   | DEMO1    |      0 |   1000K|      0 |00:00:00.01 |       0 |\n-----------------------------------------------------------------------------------------------\n\nNote\n-----\n   - Degree of Parallelism is 2 because of table property\n   - PDML disabled because object is not decorated with parallel clause\n   - Direct Load disabled because no append hint given and not executing in parallel\n\n<\/code><\/pre>\n<p>Ok. I&#8217;ve enabled PDML but PDML occurs only when in parallel. Here the table has no parallel degree and there is no PARALLEL hint. Once again dbms_xplan gives us the reason. And because it&#8217;s not PDML and there is no append hint, then it&#8217;s not loaded in direct-path.<\/p>\n<p>Here is the SQL Monitoring plan. Note that is the same as the previous one except that it&#8217;s not the same cost. I don&#8217;t know why yet. If you have any idea, please comment.<\/p>\n<p><a class=\"easyblog-thumb-preview\" title=\"PDML2.png\" href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/PDML2.png\"><img decoding=\"async\" title=\"PDML2.png\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/PDML2.png\" alt=\"PDML2.png\" \/><\/a><\/p>\n<h3>Enable parallel DML while in a transaction<\/h3>\n<p>I disable PDML and start a transaction:<\/p>\n<pre><code>SQL&gt; commit;\n\nCommit complete.\n\nSQL&gt; alter session disable parallel dml;\n\nSession altered.\n\nSQL&gt; delete from DEMO1 where rownum\nSQL&gt; select status,used_urec from v$transaction where ses_addr=(select saddr from v$session where sid=sys_context('userenv','sid'));\n\nSTATUS            USED_UREC\n---------------- ----------\nACTIVE                 1000\n\n<\/code><\/pre>\n<p>And while I&#8217;m within that transaction, Let&#8217;s do the parallel insert enabled by hint:<\/p>\n<pre><code>SQL&gt; insert \/*+ parallel enable_parallel_dml *\/ into DEMO2 select * from DEMO1;\n\n999000 rows created.\n\nSQL&gt; select * from table(dbms_xplan.display_cursor(format=&gt;'allstats last'));\n\nPLAN_TABLE_OUTPUT\n-------------------------------------------------------------------------------------------------------\nSQL_ID  2b8q4k902pbdx, child number 1\n-------------------------------------\ninsert \/*+ parallel enable_parallel_dml *\/ into DEMO2 select * from DEMO1\n\nPlan hash value: 86785878\n\n-------------------------------------------------------------------------------------------------------\n| Id  | Operation                          | Name | Starts | A-Rows | Buffers | OMem |1Mem | Used-Mem |\n-------------------------------------------------------------------------------------------------------\n|   0 | INSERT STATEMENT                   |      |      1 |      4 |     136 |      |     |          |\n|   1 |  PX COORDINATOR                    |      |      1 |      4 |     136 |      |     |          |\n|   2 |   PX SEND QC (RANDOM)              | :TQ10|      0 |      0 |       0 |      |     |          |\n|   3 |    LOAD AS SELECT (HYBRID TSM\/HWMB)|      |      0 |      0 |       0 |   33M|  33M| 2068K (0)|\n|   4 |     OPTIMIZER STATISTICS GATHERING |      |      0 |      0 |       0 |      |     |          |\n|   5 |      PX BLOCK ITERATOR             |      |      0 |      0 |       0 |      |     |          |\n|*  6 |       TABLE ACCESS FULL            | DEMO1|      0 |      0 |       0 |      |     |          |\n-------------------------------------------------------------------------------------------------------\n\nNote\n-----\n   - automatic DOP: Computed Degree of Parallelism is 2\n\n<\/code><\/pre>\n<p>Here PDML occurred. We know that because of the load operator under the coordinator (Note to self: HYBRID TSM\/HWMB is something to investigate &#8211; once again comments welcome). I&#8217;ve displayed the plan with &#8216;allstats last&#8217; which show only the coordinator activity. SQL Monitor can show all:<\/p>\n<p><a class=\"easyblog-thumb-preview\" title=\"PDML5.png\" href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/PDML5.png\"><img decoding=\"async\" title=\"PDML5.png\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/PDML5.png\" alt=\"PDML5.png\" \/><\/a><\/p>\n<h3>Conclusion<\/h3>\n<p>Yes you can enable PDML at query level in 12c and it is documented. And you can do it even when within a transaction which is a restriction only for &#8216;alter session enable parallel dml&#8217; but not for that hint.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>By Franck Pachot . Following a question from Randolf Geist (who can imagine that there is something about parallel query that Randolf didn&#8217;t know?), I get back to some notes I&#8217;ve taken when 12c was out and I&#8217;ve tested them again on 12.1.0.2 &#8211; it&#8217;s about the ability to enable parallel DML at query level. [&hellip;]<\/p>\n","protected":false},"author":27,"featured_media":4966,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[198,59],"tags":[209],"type_dbi":[],"class_list":["post-4965","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-database-management","category-oracle","tag-oracle-12c"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Parallel DML in 12c - dbi Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/parallel-dml-in-12c\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Parallel DML in 12c\" \/>\n<meta property=\"og:description\" content=\"By Franck Pachot . Following a question from Randolf Geist (who can imagine that there is something about parallel query that Randolf didn&#8217;t know?), I get back to some notes I&#8217;ve taken when 12c was out and I&#8217;ve tested them again on 12.1.0.2 &#8211; it&#8217;s about the ability to enable parallel DML at query level. [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/parallel-dml-in-12c\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2015-06-12T08:39:49+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/PDML1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"983\" \/>\n\t<meta property=\"og:image:height\" content=\"587\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Oracle Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Oracle Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/parallel-dml-in-12c\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/parallel-dml-in-12c\/\"},\"author\":{\"name\":\"Oracle Team\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\"},\"headline\":\"Parallel DML in 12c\",\"datePublished\":\"2015-06-12T08:39:49+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/parallel-dml-in-12c\/\"},\"wordCount\":592,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/parallel-dml-in-12c\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/PDML1.png\",\"keywords\":[\"Oracle 12c\"],\"articleSection\":[\"Database management\",\"Oracle\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/parallel-dml-in-12c\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/parallel-dml-in-12c\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/parallel-dml-in-12c\/\",\"name\":\"Parallel DML in 12c - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/parallel-dml-in-12c\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/parallel-dml-in-12c\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/PDML1.png\",\"datePublished\":\"2015-06-12T08:39:49+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/parallel-dml-in-12c\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/parallel-dml-in-12c\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/parallel-dml-in-12c\/#primaryimage\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/PDML1.png\",\"contentUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/PDML1.png\",\"width\":983,\"height\":587},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/parallel-dml-in-12c\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Parallel DML in 12c\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee\",\"name\":\"Oracle Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g\",\"caption\":\"Oracle Team\"},\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/oracle-team\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Parallel DML in 12c - dbi Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/parallel-dml-in-12c\/","og_locale":"en_US","og_type":"article","og_title":"Parallel DML in 12c","og_description":"By Franck Pachot . Following a question from Randolf Geist (who can imagine that there is something about parallel query that Randolf didn&#8217;t know?), I get back to some notes I&#8217;ve taken when 12c was out and I&#8217;ve tested them again on 12.1.0.2 &#8211; it&#8217;s about the ability to enable parallel DML at query level. [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/parallel-dml-in-12c\/","og_site_name":"dbi Blog","article_published_time":"2015-06-12T08:39:49+00:00","og_image":[{"width":983,"height":587,"url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/PDML1.png","type":"image\/png"}],"author":"Oracle Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Oracle Team","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/parallel-dml-in-12c\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/parallel-dml-in-12c\/"},"author":{"name":"Oracle Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee"},"headline":"Parallel DML in 12c","datePublished":"2015-06-12T08:39:49+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/parallel-dml-in-12c\/"},"wordCount":592,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/parallel-dml-in-12c\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/PDML1.png","keywords":["Oracle 12c"],"articleSection":["Database management","Oracle"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/parallel-dml-in-12c\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/parallel-dml-in-12c\/","url":"https:\/\/www.dbi-services.com\/blog\/parallel-dml-in-12c\/","name":"Parallel DML in 12c - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/parallel-dml-in-12c\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/parallel-dml-in-12c\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/PDML1.png","datePublished":"2015-06-12T08:39:49+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/parallel-dml-in-12c\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/parallel-dml-in-12c\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/parallel-dml-in-12c\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/PDML1.png","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/PDML1.png","width":983,"height":587},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/parallel-dml-in-12c\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Parallel DML in 12c"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/66ab87129f2d357f09971bc7936a77ee","name":"Oracle Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f711f7cd2c9b09bf2627133755b569fb5be0694810cfd33033bdd095fedba86d?s=96&d=mm&r=g","caption":"Oracle Team"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/oracle-team\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/4965","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/27"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=4965"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/4965\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media\/4966"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=4965"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=4965"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=4965"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=4965"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}