{"id":11886,"date":"2022-10-02T20:24:39","date_gmt":"2022-10-02T11:24:39","guid":{"rendered":"https:\/\/prodskill.com\/?p=11886"},"modified":"2022-10-04T23:56:46","modified_gmt":"2022-10-04T14:56:46","slug":"oracle-dbms-parallel-execute-4-chunk-by-sql","status":"publish","type":"post","link":"https:\/\/prodskill.com\/es\/oracle-dbms-parallel-execute-4-chunk-by-sql\/","title":{"rendered":"4. Caso de procesamiento paralelo del m\u00e9todo de partici\u00f3n SQL definido por el usuario (DBMS_PARALLEL_EXECUTE)"},"content":{"rendered":"<p>Echemos un vistazo al caso del paralelismo de partici\u00f3n de SQL definido por el usuario usando Oracle DBMS_PARALLEL_EXECUTE. Abarca la escritura de SQL definido por el usuario, el entorno de prueba, la creaci\u00f3n de trabajos, la divisi\u00f3n de trabajos, la ejecuci\u00f3n de trabajos, la confirmaci\u00f3n y eliminaci\u00f3n de la finalizaci\u00f3n de trabajos.<\/p>\n\n\n\n<p>Esta es una continuaci\u00f3n del art\u00edculo anterior.<\/p>\n\n\n\n<p><a href=\"https:\/\/prodskill.com\/es\/oracle-dbms-parallel-execute-3-chunk-by-number-column\/\">3. N\u00daMERO Caso de procesamiento paralelo del m\u00e9todo de divisi\u00f3n de columnas (DBMS_PARALLEL_EXECUTE)<\/a><\/p>\n\n\n\n<p>* Documentaci\u00f3n de Oracle de referencia: <a href=\"https:\/\/docs.oracle.com\/cd\/E11882_01\/appdev.112\/e40758\/d_parallel_ex.htm#ARPLS67359\" target=\"_blank\" rel=\"noreferrer noopener\">Procedimiento DBMS_PARALLEL_EXECUTE \u2013 CREATE_CHUNKS_BY_SQL (oracle.com)<\/a><\/p>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">&lt;&lt;Tabla de contenidos&gt;&gt;<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Pesta\u00f1a de contenido alternativo\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Palanca<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewbox=\"0 0 24 24\" version=\"1.2\" baseprofile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/prodskill.com\/es\/oracle-dbms-parallel-execute-4-chunk-by-sql\/#4_%EC%82%AC%EC%9A%A9%EC%9E%90_%EC%A0%95%EC%9D%98_SQL_%EB%B6%84%ED%95%A0_%EB%B0%A9%EC%8B%9D_%EB%B3%91%EB%A0%AC_%EC%B2%98%EB%A6%AC_%EC%82%AC%EB%A1%80\" >4. Caso de procesamiento paralelo de partici\u00f3n SQL definido por el usuario<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/prodskill.com\/es\/oracle-dbms-parallel-execute-4-chunk-by-sql\/#41_%EC%82%AC%EC%9A%A9%EC%9E%90_%EC%A0%95%EC%9D%98_SQL_%EB%B6%84%ED%95%A0_%EB%B0%A9%EC%8B%9D_%EA%B0%9C%EC%9A%94\" >4.1. Descripci\u00f3n general de los m\u00e9todos de partici\u00f3n de SQL personalizados<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/prodskill.com\/es\/oracle-dbms-parallel-execute-4-chunk-by-sql\/#42_%EC%82%AC%EC%9A%A9%EC%9E%90_%EC%A0%95%EC%9D%98_SQL_%EC%9E%91%EC%84%B1\" >4.2. Escribir SQL personalizado<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/prodskill.com\/es\/oracle-dbms-parallel-execute-4-chunk-by-sql\/#43_%ED%85%8C%EC%8A%A4%ED%8A%B8_%ED%99%98%EA%B2%BD_%EB%B0%8F_%ED%85%8C%EC%8A%A4%ED%8A%B8_%ED%85%8C%EC%9D%B4%EB%B8%94_%EC%83%9D%EC%84%B1\" >4.3. Crear entorno de prueba y tabla de prueba<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/prodskill.com\/es\/oracle-dbms-parallel-execute-4-chunk-by-sql\/#44_%EC%9E%91%EC%97%85_%EC%83%9D%EC%84%B1\" >4.4. crear trabajo<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/prodskill.com\/es\/oracle-dbms-parallel-execute-4-chunk-by-sql\/#441_%EC%9E%91%EC%97%85%EC%83%9D%EC%84%B1\" >4.4.1. crear trabajo<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/prodskill.com\/es\/oracle-dbms-parallel-execute-4-chunk-by-sql\/#442_%EC%9E%91%EC%97%85_%EB%8B%A8%EC%9C%84_%EB%B6%84%ED%95%A0\" >4.4.2. unidad de trabajo dividida<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/prodskill.com\/es\/oracle-dbms-parallel-execute-4-chunk-by-sql\/#45_%EC%9E%91%EC%97%85_%EC%8B%A4%ED%96%89\" >4.5. ejecuci\u00f3n de trabajo<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/prodskill.com\/es\/oracle-dbms-parallel-execute-4-chunk-by-sql\/#46_%EC%9E%91%EC%97%85_%EC%99%84%EB%A3%8C_%ED%99%95%EC%9D%B8_%EB%B0%8F_%EC%82%AD%EC%A0%9C\" >4.6. Confirmar la finalizaci\u00f3n de la tarea y eliminar<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/prodskill.com\/es\/oracle-dbms-parallel-execute-4-chunk-by-sql\/#5_%EA%B3%A0%EB%A0%A4%EC%82%AC%ED%95%AD\" >5. Consideraciones<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\" id=\"4._\uc0ac\uc6a9\uc790_\uc815\uc758_SQL_\ubd84\ud560_\ubc29\uc2dd\uc758_\ubcd1\ub82c_\ucc98\ub9ac_\uc0ac\ub840\"><span class=\"ez-toc-section\" id=\"4_%EC%82%AC%EC%9A%A9%EC%9E%90_%EC%A0%95%EC%9D%98_SQL_%EB%B6%84%ED%95%A0_%EB%B0%A9%EC%8B%9D_%EB%B3%91%EB%A0%AC_%EC%B2%98%EB%A6%AC_%EC%82%AC%EB%A1%80\"><\/span>4. Caso de procesamiento paralelo de partici\u00f3n SQL definido por el usuario<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"4.1._\uc0ac\uc6a9\uc790_\uc815\uc758_SQL_\ubd84\ud560_\ubc29\uc2dd_\uac1c\uc694\"><span class=\"ez-toc-section\" id=\"41_%EC%82%AC%EC%9A%A9%EC%9E%90_%EC%A0%95%EC%9D%98_SQL_%EB%B6%84%ED%95%A0_%EB%B0%A9%EC%8B%9D_%EA%B0%9C%EC%9A%94\"><\/span>4.1. Descripci\u00f3n general de los m\u00e9todos de partici\u00f3n de SQL personalizados<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>La partici\u00f3n a trav\u00e9s de SQL definido por el usuario es \u00fatil en los siguientes casos.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Particionamiento en casos en los que el m\u00e9todo de particionamiento ROWID no es compatible (por ejemplo, particionamiento ROWID para tablas remotas a trav\u00e9s de DB Link)<\/li><li>Divisi\u00f3n basada en columnas que no sean la columna N\u00daMERO (VARCHAR2, FECHA, etc.)<\/li><\/ul>\n\n\n\n<p>Aqu\u00ed, explicaremos el caso de la divisi\u00f3n ROWID a trav\u00e9s de DB Link en el primer caso.<\/p>\n\n\n\n<p>Si intenta dividir el ROWID de una tabla a trav\u00e9s de DB Link usando CREATE_CHUNKS_BY_ROWID, Se produce un error.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-auto-translation=\"\">-- 1\ub2e8\uacc4: \uc791\uc5c5\uc0dd\uc131\nBEGIN\n  DBMS_PARALLEL_EXECUTE.CREATE_TASK(TASK_NAME => 'DPE_TEST(BY ROWID, VIA DBLINK)');\nEND;\n\/\n\n-- 2\ub2e8\uacc4: \uc791\uc5c5 \ub2e8\uc704 \ubd84\ud560\nBEGIN\n  DBMS_PARALLEL_EXECUTE\n    .CREATE_CHUNKS_BY_ROWID(TASK_NAME   => 'DPE_TEST(BY ROWID, VIA DBLINK)',\n                            TABLE_OWNER => USER,\n                            -- TABLE _NAME\uc744 \u201cT1@DL_MS949\u201d\ub85c DB Link \uc9c0\uc815\n                            TABLE_NAME  => 'T1@DL_MS949',\n                            BY_ROW      => TRUE,\n                            CHUNK_SIZE  => 10000);\nEND;\n\/\n\n--> \uc2e4\ud589 \uc624\ub958 \uba54\uc2dc\uc9c0\nORA-29491: \uc870\uac01\uc5d0 \ubd80\uc801\ud569\ud55c \ud14c\uc774\ube14\nORA-06512: \"SYS.DBMS_PARALLEL_EXECUTE\",  27\ud589\nORA-06512: \"SYS.DBMS_PARALLEL_EXECUTE\",  121\ud589\nORA-06512:  4\ud589<\/pre>\n\n\n\n<p>En este caso, el SQL que divide el ROWID de la tabla en el DB Link se puede crear y aplicar a trav\u00e9s de CREATE_CHUNKS_BY_SQL.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-auto-translation=\"\">DBMS_PARALLEL_EXECUTE.CREATE_CHUNKS_BY_SQL (\n   task_name  IN  VARCHAR2,\n   sql_stmt   IN  CLOB,\n   by_rowid   IN  BOOLEAN);<\/pre>\n\n\n\n<p>sql_stmt es un tipo CLOB y se puede usar casi sin restricciones en su longitud, pero aqu\u00ed sugerimos una forma de usar una funci\u00f3n lineal en lugar de describir SQL directamente.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"4.2._\uc0ac\uc6a9\uc790_\uc815\uc758_SQL_\uc791\uc131\"><span class=\"ez-toc-section\" id=\"42_%EC%82%AC%EC%9A%A9%EC%9E%90_%EC%A0%95%EC%9D%98_SQL_%EC%9E%91%EC%84%B1\"><\/span>4.2. Escribir SQL personalizado<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Cree un tipo definido por el usuario y cree una funci\u00f3n canalizada que devuelva un conjunto de resultados de este tipo de la siguiente manera.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-auto-translation=\"\">-- 1. TYPE \uc0dd\uc131 (Pipe-Lined function\uc5d0\uc11c return\ud558\uae30 \uc704\ud568)\nCREATE OR REPLACE TYPE TP_ROWID_RANGE AS OBJECT (\n    START_ROWID VARCHAR2(50)\n   ,END_ROWID   VARCHAR2(50)\n);\n\nCREATE OR REPLACE TYPE TL_ROWID_RANGE AS TABLE OF TP_ROWID_RANGE;\n\n-- 2. Function \uc0dd\uc131\nCREATE OR REPLACE FUNCTION FN_SPLIT_BY_ROWID(\n    I_OWNER IN VARCHAR2, I_TABLE_NAME IN VARCHAR2, I_CHUNKS IN NUMBER)\nRETURN TL_ROWID_RANGE\nPIPELINED\nAS\n  CURSOR C_ROWID_RANGE (CP_OWNER VARCHAR2, CP_TABLE_NAME VARCHAR2, CP_CHUNKS NUMBER)\n  IS\n    SELECT GRP,\n           DBMS_ROWID.ROWID_CREATE( 1, DATA_OBJECT_ID, LO_FNO, LO_BLOCK, 0 ) MIN_RID,\n           DBMS_ROWID.ROWID_CREATE( 1, DATA_OBJECT_ID, HI_FNO, HI_BLOCK, 10000 ) MAX_RID\n      FROM (\n            SELECT DISTINCT GRP,\n                   FIRST_VALUE(RELATIVE_FNO) \n                    OVER (PARTITION BY GRP ORDER BY RELATIVE_FNO, BLOCK_ID\n                          ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) LO_FNO,\n                   FIRST_VALUE(BLOCK_ID) \n                   OVER (PARTITION BY GRP ORDER BY RELATIVE_FNO, BLOCK_ID\n                        ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) LO_BLOCK,\n                   LAST_VALUE(RELATIVE_FNO) \n                    OVER (PARTITION BY GRP ORDER BY RELATIVE_FNO, BLOCK_ID\n                    ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) HI_FNO,\n                   LAST_VALUE(BLOCK_ID+BLOCKS-1) \n                    OVER (PARTITION BY GRP ORDER BY RELATIVE_FNO, BLOCK_ID\n                     ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) HI_BLOCK,\n                   SUM(BLOCKS) OVER (PARTITION BY GRP) SUM_BLOCKS\n              FROM (\n                    SELECT RELATIVE_FNO, BLOCK_ID, BLOCKS,\n                           TRUNC( (SUM(BLOCKS) OVER (ORDER BY RELATIVE_FNO, BLOCK_ID)-0.01) \/\n                                  (SUM(BLOCKS) OVER ()\/ CP_CHUNKS) ) GRP\n                      FROM DBA_EXTENTS@DL_MS949\n                     WHERE SEGMENT_NAME = UPPER(CP_TABLE_NAME)\n                       AND OWNER = UPPER(CP_OWNER)\n                     ORDER BY BLOCK_ID\n                   )\n           ),\n           (SELECT DATA_OBJECT_ID\n              FROM DBA_OBJECTS@DL_MS949\n             WHERE OWNER = UPPER(CP_OWNER)\n               AND OBJECT_NAME = UPPER(CP_TABLE_NAME))\n     ORDER BY GRP\n    ;\nBEGIN\n  FOR ROWID_RANGE IN C_ROWID_RANGE(I_OWNER, I_TABLE_NAME, I_CHUNKS) LOOP\n      PIPE ROW(TP_ROWID_RANGE(ROWID_RANGE.MIN_RID, ROWID_RANGE.MAX_RID));\n  END LOOP;\n  RETURN;\nEND;\n\/<\/pre>\n\n\n\n<p>El SQL utilizado en la funci\u00f3n anterior es la divisi\u00f3n ROWID en unidades de bloque basada en DBA_EXTENTS, y se modific\u00f3 ligeramente para usar DB Link al referirse a la t\u00e9cnica sugerida por Thomas Kyte.<\/p>\n\n\n\n<p style=\"font-size:16px\">* URL de referencia:&nbsp;<a href=\"https:\/\/asktom.oracle.com\/pls\/asktom\/f?p=100:11:0::::P11_QUESTION_ID:10498431232211\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/asktom.oracle.com\/pls\/asktom\/f?p=100:11:0::::P11_QUESTION_ID:10498431232211<\/a><\/p>\n\n\n\n<p>DB Link se us\u00f3 especificando DL_MS 949. Si tambi\u00e9n desea designar din\u00e1micamente DB Link, puede cambiar el cursor SQL de la funci\u00f3n anterior a SQL din\u00e1mico y usarlo.<\/p>\n\n\n\n<p>Si la tabla LEG.SUB_MON_STAT (n\u00famero total de 7426) se particiona mediante ROWID mediante esta funci\u00f3n, es como se indica a continuaci\u00f3n.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-auto-translation=\"\">-- DL_MS949 DB Link\uc0c1\uc758 LEG owner, SUB_MON_STAT table\uc5d0 \ub300\ud574 4\uac1c\uc758 Chunk\ub85c ROWID \ubd84\ud560\nSELECT ROWNUM RNO, START_ROWID, END_ROWID\n  FROM TABLE(FN_SPLIT_BY_ROWID('LEG', 'SUB_MON_STAT', 4))\n;<\/pre>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td><strong>Fila#<\/strong><\/td><td><strong>START_ROWID<\/strong><\/td><td><strong>END_ROWID<\/strong><\/td><\/tr><tr><td>1<\/td><td>AAAQXFAAEAAAACIAAA<\/td><td>AAAQXFAAEAAAAC3CcQ<\/td><\/tr><tr><td>2<\/td><td>AAAQXFAAEAAAAC4AAA<\/td><td>AAAQXFAAAEAAAADHCcQ<\/td><\/tr><tr><td>3<\/td><td>AAAQXFAAAEAAAADIAAA<\/td><td>AAAQXFAAAEAAAADXCcQ<\/td><\/tr><tr><td>4<\/td><td>AAAQXFAAEAAAADYAAA<\/td><td>AAAQXFAAAEAAAADnCcQ<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Al dividir datos con el ROWID generado aqu\u00ed, verifique si hay alguna omisi\u00f3n en todos los datos con el SQL a continuaci\u00f3n.&nbsp;<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-auto-translation=\"\">SELECT R.RNO, COUNT(*) CNT\n  FROM SUB_MON_STAT S\n      ,(\n        SELECT 1 RNO, 'AAAQXFAAEAAAACIAAA' START_ROWID, 'AAAQXFAAEAAAAC3CcQ' END_ROWID FROM DUAL\n        UNION ALL\n        SELECT 2 RNO, 'AAAQXFAAEAAAAC4AAA' START_ROWID, 'AAAQXFAAEAAAADHCcQ' END_ROWID FROM DUAL\n        UNION ALL\n        SELECT 3 RNO, 'AAAQXFAAEAAAADIAAA' START_ROWID, 'AAAQXFAAEAAAADXCcQ' END_ROWID FROM DUAL\n        UNION ALL\n        SELECT 4 RNO, 'AAAQXFAAEAAAADYAAA' START_ROWID, 'AAAQXFAAEAAAADnCcQ' END_ROWID FROM DUAL\n       ) R\n WHERE S.ROWID BETWEEN R.START_ROWID AND END_ROWID\n GROUP BY R.RNO\n ORDER BY R.RNO\n;<\/pre>\n\n\n\n<p>El resultado de la ejecuci\u00f3n es el siguiente. (CNT puede variar para cada entorno de prueba).<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>RNO (fragmento no)<\/td><td>CNT<\/td><\/tr><tr><td>1<\/td><td>1,790<\/td><\/tr><tr><td>2<\/td><td>2,206<\/td><\/tr><tr><td>3<\/td><td>2,209<\/td><\/tr><tr><td>4<\/td><td>1,221<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>La suma de CNT es 7426, que es igual al n\u00famero total de filas de la tabla, lo que confirma que no hay omisi\u00f3n. Aqu\u00ed, el n\u00famero de filas divididas en cada RNO es 1790, 2206, 2209 y 1221, respectivamente, que no son iguales. Esta es la misma raz\u00f3n por la que no se realiza una partici\u00f3n equitativa como se describe en el m\u00e9todo de partici\u00f3n ROWID.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"4.3._\ud14c\uc2a4\ud2b8_\ud658\uacbd_\ubc0f_\ud14c\uc2a4\ud2b8_\ud14c\uc774\ube14_\uc0dd\uc131\"><span class=\"ez-toc-section\" id=\"43_%ED%85%8C%EC%8A%A4%ED%8A%B8_%ED%99%98%EA%B2%BD_%EB%B0%8F_%ED%85%8C%EC%8A%A4%ED%8A%B8_%ED%85%8C%EC%9D%B4%EB%B8%94_%EC%83%9D%EC%84%B1\"><\/span>4.3. Crear entorno de prueba y tabla de prueba<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Base de datos de destino a<dl> Base de datos de origen utilizando DB Link de<sub> mesa<sub> Suponiendo que se haya importado un escenario de prueba en , contin\u00fae con la siguiente configuraci\u00f3n del entorno.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-64.png\"><img loading=\"lazy\" decoding=\"async\" width=\"390\" height=\"207\" src=\"https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-64.png\" alt=\"\uc0ac\uc6a9\uc790 \uc815\uc758 SQL \ubd84\ud560 \ubc29\uc2dd \ubcd1\ub82c \ucc98\ub9ac \ud14c\uc2a4\ud2b8 \ud658\uacbd \uac1c\ub150\ub3c4\" class=\"wp-image-11887\" srcset=\"https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-64.png 390w, https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-64-300x159.png 300w, https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-64-18x10.png 18w, https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-64-24x13.png 24w, https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-64-36x19.png 36w, https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-64-48x25.png 48w\" sizes=\"auto, (max-width: 390px) 100vw, 390px\" \/><\/a><figcaption>Diagrama conceptual del entorno de prueba de procesamiento paralelo de tipo dividido de SQL definido por el usuario<\/figcaption><\/figure>\n<\/div>\n\n\n<p>Base de datos de destino<sub> La tabla se crea de antemano con el siguiente DDL.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-auto-translation=\"\">CREATE TABLE SUB_MON_STAT_COPY\nAS\nSELECT USE_MON, LINE_NUM, SUB_STA_ID, SUB_STA_NM, RIDE_PASGR_NUM, ALIGHT_PASGR_NUM, WORK_DT\n   FROM SUB_MON_STAT@DL_MS949\n WHERE 1=2;<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"4.4._\uc791\uc5c5_\uc0dd\uc131\"><span class=\"ez-toc-section\" id=\"44_%EC%9E%91%EC%97%85_%EC%83%9D%EC%84%B1\"><\/span>4.4. crear trabajo<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"441_%EC%9E%91%EC%97%85%EC%83%9D%EC%84%B1\"><\/span>4.4.1. crear trabajo<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-auto-translation=\"\">-- 1\ub2e8\uacc4: \uc791\uc5c5\uc0dd\uc131\nBEGIN\n  DBMS_PARALLEL_EXECUTE.CREATE_TASK(TASK_NAME => 'DPE_TEST(BY SQL(ROWID), VIA DBLINK)');\nEND;\n\/\n\n-- \uc791\uc5c5 \uc0dd\uc131 \ud655\uc778\nSELECT * FROM USER_PARALLEL_EXECUTE_TASKS;<\/pre>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-65.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"536\" src=\"https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-65-1024x536.png\" alt=\"1\ub2e8\uacc4: \uc0ac\uc6a9\uc790 \uc815\uc758 SQL \ubd84\ud560 \ubc29\uc2dd \ubcd1\ub82c \ucc98\ub9ac \uc791\uc5c5 \uc0dd\uc131 \ud655\uc778\" class=\"wp-image-11888\" srcset=\"https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-65-1024x536.png 1024w, https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-65-300x157.png 300w, https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-65-768x402.png 768w, https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-65-18x9.png 18w, https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-65-24x13.png 24w, https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-65-36x19.png 36w, https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-65-48x25.png 48w, https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-65.png 1028w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption>Paso 1: Verificar la creaci\u00f3n de un trabajo de procesamiento en paralelo con particiones de SQL personalizado<\/figcaption><\/figure>\n<\/div>\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"442_%EC%9E%91%EC%97%85_%EB%8B%A8%EC%9C%84_%EB%B6%84%ED%95%A0\"><\/span>4.4.2. unidad de trabajo dividida<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>Usando la funci\u00f3n FN_SPLIT_BY_ROWID, designe\/divida la unidad de trabajo en 4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-auto-translation=\"\">-- 2\ub2e8\uacc4: \uc791\uc5c5 \ub2e8\uc704 \ubd84\ud560\nBEGIN\n  DBMS_PARALLEL_EXECUTE.CREATE_CHUNKS_BY_SQL(\n          TASK_NAME => 'DPE_TEST(BY SQL(ROWID), VIA DBLINK)',\n          SQL_STMT  => 'SELECT START_ROWID, END_ROWID FROM TABLE(FN_SPLIT_BY_ROWID(''LEG'', ''SUB_MON_STAT'', 4))',\n          BY_ROWID  => TRUE);\nEND;\n\/\n\n-- \uc791\uc5c5 \ubd84\ud560 \uc0c1\ud0dc \ud655\uc778\nSELECT *\n  FROM USER_PARALLEL_EXECUTE_CHUNKS WHERE TASK_NAME = 'DPE_TEST(BY SQL(ROWID), VIA DBLINK)';<\/pre>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-66.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"536\" src=\"https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-66-1024x536.png\" alt=\"2\ub2e8\uacc4: \uc0ac\uc6a9\uc790 \uc815\uc758 SQL \ubd84\ud560 \ubc29\uc2dd \ubcd1\ub82c \ucc98\ub9ac \uc791\uc5c5 \ubd84\ud560 \uc0c1\ud0dc \ud655\uc778\" class=\"wp-image-11889\" srcset=\"https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-66-1024x536.png 1024w, https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-66-300x157.png 300w, https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-66-768x402.png 768w, https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-66-18x9.png 18w, https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-66-24x13.png 24w, https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-66-36x19.png 36w, https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-66-48x25.png 48w, https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-66.png 1028w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption>Paso 2: Compruebe el estado de divisi\u00f3n de tareas de paralelismo de particionamiento de SQL definido por el usuario<\/figcaption><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"4.5._\uc791\uc5c5_\uc2e4\ud589\"><span class=\"ez-toc-section\" id=\"45_%EC%9E%91%EC%97%85_%EC%8B%A4%ED%96%89\"><\/span>4.5. ejecuci\u00f3n de trabajo<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Ejecute la tarea especificando la condici\u00f3n ROWID en la cl\u00e1usula WHERE. Aqu\u00ed, el n\u00famero de tareas se establece en 4, lo mismo que el n\u00famero de unidades de trabajo.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-auto-translation=\"\">-- 3\ub2e8\uacc4: \uc791\uc5c5 \uc2e4\ud589\nDECLARE\n  L_SQL_STMT VARCHAR2(32767);\nBEGIN\n  L_SQL_STMT := 'INSERT INTO SUB_MON_STAT_COPY\n                 SELECT USE_MON, LINE_NUM, SUB_STA_ID, SUB_STA_NM,RIDE_PASGR_NUM, ALIGHT_PASGR_NUM, WORK_DT\n                   FROM SUB_MON_STAT@DL_MS949\n                  WHERE ROWID BETWEEN :START_ID AND :END_ID';\n\n  DBMS_PARALLEL_EXECUTE.RUN_TASK(TASK_NAME      => 'DPE_TEST(BY SQL(ROWID), VIA DBLINK)',\n                                 SQL_STMT       => L_SQL_STMT,\n                                 LANGUAGE_FLAG  => DBMS_SQL.NATIVE,\n                                 PARALLEL_LEVEL => 4);\nEND;\n\/\n\n-- \uc791\uc5c5 \uc2e4\ud589\uc0c1\ud669, \uc624\ub958\ucf54\ub4dc\/\uba54\uc2dc\uc9c0 \ud655\uc778\nSELECT  *\n  FROM  USER_PARALLEL_EXECUTE_CHUNKS\n WHERE  TASK_NAME = 'DPE_TEST(BY SQL(ROWID), VIA DBLINK)';<\/pre>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-67.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"667\" src=\"https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-67-1024x667.png\" alt=\"3\ub2e8\uacc4: \uc791\uc5c5 \uc2e4\ud589 \uc0c1\ud669 \ud655\uc778\" class=\"wp-image-11890\" srcset=\"https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-67-1024x667.png 1024w, https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-67-300x196.png 300w, https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-67-768x501.png 768w, https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-67-18x12.png 18w, https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-67-24x16.png 24w, https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-67-36x23.png 36w, https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-67-48x31.png 48w, https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-67.png 1028w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><figcaption>Paso 3: Comprobar el estado de ejecuci\u00f3n<\/figcaption><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"4.6._\uc791\uc5c5_\uc644\ub8cc_\ud655\uc778_\ubc0f_\uc0ad\uc81c\"><span class=\"ez-toc-section\" id=\"46_%EC%9E%91%EC%97%85_%EC%99%84%EB%A3%8C_%ED%99%95%EC%9D%B8_%EB%B0%8F_%EC%82%AD%EC%A0%9C\"><\/span>4.6. Confirmar la finalizaci\u00f3n de la tarea y eliminar<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Puede verificar la finalizaci\u00f3n del trabajo con el siguiente SQL.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-auto-translation=\"\">-- \uc791\uc5c5 \uc644\ub8cc \ud655\uc778\nSELECT *\n  FROM USER_PARALLEL_EXECUTE_TASKS;<\/pre>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-68.png\"><img loading=\"lazy\" decoding=\"async\" width=\"753\" height=\"491\" src=\"https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-68.png\" alt=\"\uc791\uc5c5 \uc644\ub8cc \ud655\uc778\" class=\"wp-image-11891\" srcset=\"https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-68.png 753w, https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-68-300x196.png 300w, https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-68-18x12.png 18w, https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-68-24x16.png 24w, https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-68-36x23.png 36w, https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-68-48x31.png 48w\" sizes=\"auto, (max-width: 753px) 100vw, 753px\" \/><\/a><figcaption>Confirmar la finalizaci\u00f3n de la tarea<\/figcaption><\/figure>\n<\/div>\n\n\n<p>DROP_TAREA( ) para eliminar el trabajo.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\" data-no-auto-translation=\"\">-- 4\ub2e8\uacc4: \uc791\uc5c5\uc0ad\uc81c\nBEGIN\n  DBMS_PARALLEL_EXECUTE.DROP_TASK(TASK_NAME => 'DPE_TEST(BY SQL(ROWID), VIA DBLINK)');\nEND;\n\/<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"5._\uace0\ub824\uc0ac\ud56d\"><span class=\"ez-toc-section\" id=\"5_%EA%B3%A0%EB%A0%A4%EC%82%AC%ED%95%AD\"><\/span>5. Consideraciones<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>Cuando la tabla de destino es una tabla particionada y el DML es un INSERT<ul><li>Al particionar por el n\u00famero de particiones y procesar datos en unidades de claves de partici\u00f3n, se espera que sea posible la E\/S de ruta directa. (No lo he probado, pero parece posible)<\/li><li>Necesita usar \/*+ APPEND *\/ sugerencia en la sintaxis INSERT y establecer la partici\u00f3n en NOLOGGING<\/li><\/ul><\/li><li>Si la tabla de destino es una tabla sin particiones<ul><li>La E\/S de ruta directa no es posible y solo es posible la E\/S convencional<\/li><li>Dado que la cantidad de UNDO puede ser bastante grande, es necesario asegurar espacio de almacenamiento gratuito con anticipaci\u00f3n.<\/li><li>Si establece el tama\u00f1o del fragmento en un tama\u00f1o peque\u00f1o, podr\u00e1 limitar el tama\u00f1o de UNDO hasta cierto punto.<\/li><\/ul><\/li><\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-dots\"\/>\n\n\n\n<p>Arriba, vimos c\u00f3mo usar DBMS_PARALLEL_EXECUTE. Este es un m\u00e9todo que encontr\u00e9 mientras buscaba la carga paralela de tablas que conten\u00edan columnas CLOB en un proyecto hace unos a\u00f1os a trav\u00e9s de DB Link. Espero haberlo explicado lo suficientemente bien para cualquiera que quiera usarlo.&nbsp;<\/p>\n\n\n\n<p>Si tiene alguna pregunta, por favor d\u00e9jela en los comentarios.<\/p>","protected":false},"excerpt":{"rendered":"<p>Echemos un vistazo al caso del procesamiento paralelo usando el m\u00e9todo de particionamiento de SQL definido por el usuario usando Oracle DBMS_PARALLEL_EXECUTE. Se trata de escribir SQL personalizado, entorno de prueba, creaci\u00f3n de trabajos, divisi\u00f3n de unidades de trabajo, ejecuci\u00f3n de trabajos, confirmaci\u00f3n de finalizaci\u00f3n de trabajos y eliminaci\u00f3n. Esta es una continuaci\u00f3n del art\u00edculo anterior. 3. N\u00daMERO...<\/p>","protected":false},"author":1,"featured_media":11887,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[32],"tags":[242,243,244,245,246],"class_list":["post-11886","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-oracle","tag-oracle","tag-dbms_parallel_execute","tag-244","tag-dml-parallel-processing","tag-dml-"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>4. \uc0ac\uc6a9\uc790 \uc815\uc758 SQL \ubd84\ud560 \ubc29\uc2dd \ubcd1\ub82c \ucc98\ub9ac \uc0ac\ub840 (DBMS_PARALLEL_EXECUTE) - \uc0dd\uc0b0\uc131 Skill<\/title>\n<meta name=\"description\" content=\"Oracle DBMS_PARALLEL_EXECUTE \ub97c \ud65c\uc6a9\ud558\uc5ec \uc0ac\uc6a9\uc790 \uc815\uc758 SQL \ubd84\ud560 \ubc29\uc2dd \ubcd1\ub82c \ucc98\ub9ac \uc0ac\ub840\uc5d0 \ub300\ud574 \uc0b4\ud3b4\ubcf8\ub2e4. \uc0ac\uc6a9\uc790 \uc815\uc758 SQL \uc791\uc131, \ud14c\uc2a4\ud2b8 \ud14c\uc774\ube14 \uc0dd\uc131, \uc791\uc5c5 \uc0dd\uc131, \uc791\uc5c5 \ub2e8\uc704 \ubd84\ud560, \uc791\uc5c5 \uc2e4\ud589, \uc791\uc5c5 \uc644\ub8cc \ud655\uc778 \ubc0f \uc0ad\uc81c\uc5d0 \ub300\ud55c \ub0b4\uc6a9\uc774\ub2e4.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/prodskill.com\/es\/oracle-dbms-parallel-execute-4-chunk-by-sql\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"4. \uc0ac\uc6a9\uc790 \uc815\uc758 SQL \ubd84\ud560 \ubc29\uc2dd \ubcd1\ub82c \ucc98\ub9ac \uc0ac\ub840 (DBMS_PARALLEL_EXECUTE) - \uc0dd\uc0b0\uc131 Skill\" \/>\n<meta property=\"og:description\" content=\"Oracle DBMS_PARALLEL_EXECUTE \ub97c \ud65c\uc6a9\ud558\uc5ec \uc0ac\uc6a9\uc790 \uc815\uc758 SQL \ubd84\ud560 \ubc29\uc2dd \ubcd1\ub82c \ucc98\ub9ac \uc0ac\ub840\uc5d0 \ub300\ud574 \uc0b4\ud3b4\ubcf8\ub2e4. \uc0ac\uc6a9\uc790 \uc815\uc758 SQL \uc791\uc131, \ud14c\uc2a4\ud2b8 \ud14c\uc774\ube14 \uc0dd\uc131, \uc791\uc5c5 \uc0dd\uc131, \uc791\uc5c5 \ub2e8\uc704 \ubd84\ud560, \uc791\uc5c5 \uc2e4\ud589, \uc791\uc5c5 \uc644\ub8cc \ud655\uc778 \ubc0f \uc0ad\uc81c\uc5d0 \ub300\ud55c \ub0b4\uc6a9\uc774\ub2e4.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/prodskill.com\/es\/oracle-dbms-parallel-execute-4-chunk-by-sql\/\" \/>\n<meta property=\"og:site_name\" content=\"\uc0dd\uc0b0\uc131 Skill\" \/>\n<meta property=\"article:published_time\" content=\"2022-10-02T11:24:39+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-10-04T14:56:46+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-64.png\" \/>\n\t<meta property=\"og:image:width\" content=\"390\" \/>\n\t<meta property=\"og:image:height\" content=\"207\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Zerom\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Zerom\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/prodskill.com\\\/oracle-dbms-parallel-execute-4-chunk-by-sql\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/prodskill.com\\\/oracle-dbms-parallel-execute-4-chunk-by-sql\\\/\"},\"author\":{\"name\":\"Zerom\",\"@id\":\"https:\\\/\\\/prodskill.com\\\/ko\\\/#\\\/schema\\\/person\\\/bbad0870c78008c82edbe0960fe768bd\"},\"headline\":\"4. \uc0ac\uc6a9\uc790 \uc815\uc758 SQL \ubd84\ud560 \ubc29\uc2dd \ubcd1\ub82c \ucc98\ub9ac \uc0ac\ub840 (DBMS_PARALLEL_EXECUTE)\",\"datePublished\":\"2022-10-02T11:24:39+00:00\",\"dateModified\":\"2022-10-04T14:56:46+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/prodskill.com\\\/oracle-dbms-parallel-execute-4-chunk-by-sql\\\/\"},\"wordCount\":379,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/prodskill.com\\\/ko\\\/#\\\/schema\\\/person\\\/bbad0870c78008c82edbe0960fe768bd\"},\"image\":{\"@id\":\"https:\\\/\\\/prodskill.com\\\/oracle-dbms-parallel-execute-4-chunk-by-sql\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/prodskill.com\\\/wp-content\\\/uploads\\\/2022\\\/10\\\/image-64.png\",\"keywords\":[\"ORACLE\",\"DBMS_PARALLEL_EXECUTE\",\"\ubcd1\ub82c\ucc98\ub9ac\",\"DML Parallel Processing\",\"DML \ubcd1\ub82c\ucc98\ub9ac\"],\"articleSection\":[\"ORACLE\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/prodskill.com\\\/oracle-dbms-parallel-execute-4-chunk-by-sql\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/prodskill.com\\\/oracle-dbms-parallel-execute-4-chunk-by-sql\\\/\",\"url\":\"https:\\\/\\\/prodskill.com\\\/oracle-dbms-parallel-execute-4-chunk-by-sql\\\/\",\"name\":\"4. \uc0ac\uc6a9\uc790 \uc815\uc758 SQL \ubd84\ud560 \ubc29\uc2dd \ubcd1\ub82c \ucc98\ub9ac \uc0ac\ub840 (DBMS_PARALLEL_EXECUTE) - \uc0dd\uc0b0\uc131 Skill\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/prodskill.com\\\/ko\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/prodskill.com\\\/oracle-dbms-parallel-execute-4-chunk-by-sql\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/prodskill.com\\\/oracle-dbms-parallel-execute-4-chunk-by-sql\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/prodskill.com\\\/wp-content\\\/uploads\\\/2022\\\/10\\\/image-64.png\",\"datePublished\":\"2022-10-02T11:24:39+00:00\",\"dateModified\":\"2022-10-04T14:56:46+00:00\",\"description\":\"Oracle DBMS_PARALLEL_EXECUTE \ub97c \ud65c\uc6a9\ud558\uc5ec \uc0ac\uc6a9\uc790 \uc815\uc758 SQL \ubd84\ud560 \ubc29\uc2dd \ubcd1\ub82c \ucc98\ub9ac \uc0ac\ub840\uc5d0 \ub300\ud574 \uc0b4\ud3b4\ubcf8\ub2e4. \uc0ac\uc6a9\uc790 \uc815\uc758 SQL \uc791\uc131, \ud14c\uc2a4\ud2b8 \ud14c\uc774\ube14 \uc0dd\uc131, \uc791\uc5c5 \uc0dd\uc131, \uc791\uc5c5 \ub2e8\uc704 \ubd84\ud560, \uc791\uc5c5 \uc2e4\ud589, \uc791\uc5c5 \uc644\ub8cc \ud655\uc778 \ubc0f \uc0ad\uc81c\uc5d0 \ub300\ud55c \ub0b4\uc6a9\uc774\ub2e4.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/prodskill.com\\\/oracle-dbms-parallel-execute-4-chunk-by-sql\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/prodskill.com\\\/oracle-dbms-parallel-execute-4-chunk-by-sql\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/prodskill.com\\\/oracle-dbms-parallel-execute-4-chunk-by-sql\\\/#primaryimage\",\"url\":\"https:\\\/\\\/prodskill.com\\\/wp-content\\\/uploads\\\/2022\\\/10\\\/image-64.png\",\"contentUrl\":\"https:\\\/\\\/prodskill.com\\\/wp-content\\\/uploads\\\/2022\\\/10\\\/image-64.png\",\"width\":390,\"height\":207},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/prodskill.com\\\/oracle-dbms-parallel-execute-4-chunk-by-sql\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/prodskill.com\\\/ko\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"4. \uc0ac\uc6a9\uc790 \uc815\uc758 SQL \ubd84\ud560 \ubc29\uc2dd \ubcd1\ub82c \ucc98\ub9ac \uc0ac\ub840 (DBMS_PARALLEL_EXECUTE)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/prodskill.com\\\/ko\\\/#website\",\"url\":\"https:\\\/\\\/prodskill.com\\\/ko\\\/\",\"name\":\"\uc0dd\uc0b0\uc131 Skill\",\"description\":\"Meta Thinking, Meta Working\",\"publisher\":{\"@id\":\"https:\\\/\\\/prodskill.com\\\/ko\\\/#\\\/schema\\\/person\\\/bbad0870c78008c82edbe0960fe768bd\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/prodskill.com\\\/ko\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/prodskill.com\\\/ko\\\/#\\\/schema\\\/person\\\/bbad0870c78008c82edbe0960fe768bd\",\"name\":\"Zerom\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/prodskill.com\\\/wp-content\\\/uploads\\\/2022\\\/09\\\/productivity_clockgear.png\",\"url\":\"https:\\\/\\\/prodskill.com\\\/wp-content\\\/uploads\\\/2022\\\/09\\\/productivity_clockgear.png\",\"contentUrl\":\"https:\\\/\\\/prodskill.com\\\/wp-content\\\/uploads\\\/2022\\\/09\\\/productivity_clockgear.png\",\"width\":512,\"height\":512,\"caption\":\"Zerom\"},\"logo\":{\"@id\":\"https:\\\/\\\/prodskill.com\\\/wp-content\\\/uploads\\\/2022\\\/09\\\/productivity_clockgear.png\"},\"url\":\"https:\\\/\\\/prodskill.com\\\/es\\\/author\\\/proda\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"4. Caso de procesamiento paralelo de particionamiento SQL definido por el usuario (DBMS_PARALLEL_EXECUTE) - Habilidad de productividad","description":"Este art\u00edculo explora un caso pr\u00e1ctico de procesamiento paralelo de particiones de SQL definido por el usuario mediante Oracle DBMS_PARALLEL_EXECUTE. Abarca la escritura de SQL definido por el usuario, la creaci\u00f3n de tablas de prueba, la creaci\u00f3n de tareas, la divisi\u00f3n de tareas en unidades, la ejecuci\u00f3n de tareas, la comprobaci\u00f3n de su finalizaci\u00f3n y la eliminaci\u00f3n de tareas.","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:\/\/prodskill.com\/es\/oracle-dbms-parallel-execute-4-chunk-by-sql\/","og_locale":"es_ES","og_type":"article","og_title":"4. \uc0ac\uc6a9\uc790 \uc815\uc758 SQL \ubd84\ud560 \ubc29\uc2dd \ubcd1\ub82c \ucc98\ub9ac \uc0ac\ub840 (DBMS_PARALLEL_EXECUTE) - \uc0dd\uc0b0\uc131 Skill","og_description":"Oracle DBMS_PARALLEL_EXECUTE \ub97c \ud65c\uc6a9\ud558\uc5ec \uc0ac\uc6a9\uc790 \uc815\uc758 SQL \ubd84\ud560 \ubc29\uc2dd \ubcd1\ub82c \ucc98\ub9ac \uc0ac\ub840\uc5d0 \ub300\ud574 \uc0b4\ud3b4\ubcf8\ub2e4. \uc0ac\uc6a9\uc790 \uc815\uc758 SQL \uc791\uc131, \ud14c\uc2a4\ud2b8 \ud14c\uc774\ube14 \uc0dd\uc131, \uc791\uc5c5 \uc0dd\uc131, \uc791\uc5c5 \ub2e8\uc704 \ubd84\ud560, \uc791\uc5c5 \uc2e4\ud589, \uc791\uc5c5 \uc644\ub8cc \ud655\uc778 \ubc0f \uc0ad\uc81c\uc5d0 \ub300\ud55c \ub0b4\uc6a9\uc774\ub2e4.","og_url":"https:\/\/prodskill.com\/es\/oracle-dbms-parallel-execute-4-chunk-by-sql\/","og_site_name":"\uc0dd\uc0b0\uc131 Skill","article_published_time":"2022-10-02T11:24:39+00:00","article_modified_time":"2022-10-04T14:56:46+00:00","og_image":[{"width":390,"height":207,"url":"https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-64.png","type":"image\/png"}],"author":"Zerom","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Zerom","Tiempo de lectura":"7 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/prodskill.com\/oracle-dbms-parallel-execute-4-chunk-by-sql\/#article","isPartOf":{"@id":"https:\/\/prodskill.com\/oracle-dbms-parallel-execute-4-chunk-by-sql\/"},"author":{"name":"Zerom","@id":"https:\/\/prodskill.com\/ko\/#\/schema\/person\/bbad0870c78008c82edbe0960fe768bd"},"headline":"4. \uc0ac\uc6a9\uc790 \uc815\uc758 SQL \ubd84\ud560 \ubc29\uc2dd \ubcd1\ub82c \ucc98\ub9ac \uc0ac\ub840 (DBMS_PARALLEL_EXECUTE)","datePublished":"2022-10-02T11:24:39+00:00","dateModified":"2022-10-04T14:56:46+00:00","mainEntityOfPage":{"@id":"https:\/\/prodskill.com\/oracle-dbms-parallel-execute-4-chunk-by-sql\/"},"wordCount":379,"commentCount":0,"publisher":{"@id":"https:\/\/prodskill.com\/ko\/#\/schema\/person\/bbad0870c78008c82edbe0960fe768bd"},"image":{"@id":"https:\/\/prodskill.com\/oracle-dbms-parallel-execute-4-chunk-by-sql\/#primaryimage"},"thumbnailUrl":"https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-64.png","keywords":["ORACLE","DBMS_PARALLEL_EXECUTE","\ubcd1\ub82c\ucc98\ub9ac","DML Parallel Processing","DML \ubcd1\ub82c\ucc98\ub9ac"],"articleSection":["ORACLE"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/prodskill.com\/oracle-dbms-parallel-execute-4-chunk-by-sql\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/prodskill.com\/oracle-dbms-parallel-execute-4-chunk-by-sql\/","url":"https:\/\/prodskill.com\/oracle-dbms-parallel-execute-4-chunk-by-sql\/","name":"4. Caso de procesamiento paralelo de particionamiento SQL definido por el usuario (DBMS_PARALLEL_EXECUTE) - Habilidad de productividad","isPartOf":{"@id":"https:\/\/prodskill.com\/ko\/#website"},"primaryImageOfPage":{"@id":"https:\/\/prodskill.com\/oracle-dbms-parallel-execute-4-chunk-by-sql\/#primaryimage"},"image":{"@id":"https:\/\/prodskill.com\/oracle-dbms-parallel-execute-4-chunk-by-sql\/#primaryimage"},"thumbnailUrl":"https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-64.png","datePublished":"2022-10-02T11:24:39+00:00","dateModified":"2022-10-04T14:56:46+00:00","description":"Este art\u00edculo explora un caso pr\u00e1ctico de procesamiento paralelo de particiones de SQL definido por el usuario mediante Oracle DBMS_PARALLEL_EXECUTE. Abarca la escritura de SQL definido por el usuario, la creaci\u00f3n de tablas de prueba, la creaci\u00f3n de tareas, la divisi\u00f3n de tareas en unidades, la ejecuci\u00f3n de tareas, la comprobaci\u00f3n de su finalizaci\u00f3n y la eliminaci\u00f3n de tareas.","breadcrumb":{"@id":"https:\/\/prodskill.com\/oracle-dbms-parallel-execute-4-chunk-by-sql\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/prodskill.com\/oracle-dbms-parallel-execute-4-chunk-by-sql\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/prodskill.com\/oracle-dbms-parallel-execute-4-chunk-by-sql\/#primaryimage","url":"https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-64.png","contentUrl":"https:\/\/prodskill.com\/wp-content\/uploads\/2022\/10\/image-64.png","width":390,"height":207},{"@type":"BreadcrumbList","@id":"https:\/\/prodskill.com\/oracle-dbms-parallel-execute-4-chunk-by-sql\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/prodskill.com\/ko\/"},{"@type":"ListItem","position":2,"name":"4. \uc0ac\uc6a9\uc790 \uc815\uc758 SQL \ubd84\ud560 \ubc29\uc2dd \ubcd1\ub82c \ucc98\ub9ac \uc0ac\ub840 (DBMS_PARALLEL_EXECUTE)"}]},{"@type":"WebSite","@id":"https:\/\/prodskill.com\/ko\/#website","url":"https:\/\/prodskill.com\/ko\/","name":"Habilidades de productividad","description":"Meta Pensamiento, Meta Trabajo","publisher":{"@id":"https:\/\/prodskill.com\/ko\/#\/schema\/person\/bbad0870c78008c82edbe0960fe768bd"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/prodskill.com\/ko\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":["Person","Organization"],"@id":"https:\/\/prodskill.com\/ko\/#\/schema\/person\/bbad0870c78008c82edbe0960fe768bd","name":"Cerom","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/prodskill.com\/wp-content\/uploads\/2022\/09\/productivity_clockgear.png","url":"https:\/\/prodskill.com\/wp-content\/uploads\/2022\/09\/productivity_clockgear.png","contentUrl":"https:\/\/prodskill.com\/wp-content\/uploads\/2022\/09\/productivity_clockgear.png","width":512,"height":512,"caption":"Zerom"},"logo":{"@id":"https:\/\/prodskill.com\/wp-content\/uploads\/2022\/09\/productivity_clockgear.png"},"url":"https:\/\/prodskill.com\/es\/author\/proda\/"}]}},"_links":{"self":[{"href":"https:\/\/prodskill.com\/es\/wp-json\/wp\/v2\/posts\/11886","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prodskill.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prodskill.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prodskill.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prodskill.com\/es\/wp-json\/wp\/v2\/comments?post=11886"}],"version-history":[{"count":0,"href":"https:\/\/prodskill.com\/es\/wp-json\/wp\/v2\/posts\/11886\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prodskill.com\/es\/wp-json\/wp\/v2\/media\/11887"}],"wp:attachment":[{"href":"https:\/\/prodskill.com\/es\/wp-json\/wp\/v2\/media?parent=11886"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prodskill.com\/es\/wp-json\/wp\/v2\/categories?post=11886"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prodskill.com\/es\/wp-json\/wp\/v2\/tags?post=11886"}],"curies":[{"name":"gracias","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}