Boa tarde a Todos.
Ricardo a solução é boa, porem acredito que um bulk collect com forall seja 
mais eficiente.
Segue o link
PLSQL 101


| 
| 
| 
|  |  |

 |

 |
| 
|  | 
PLSQL 101

PLSQL 101
 |

 |

 |



 

    Em terça-feira, 17 de outubro de 2017 12:47:51 BRST, Ricardo Sá 
ricardo....@terra.com.br [oracle_br] <oracle_br@yahoogrupos.com.br> escreveu:  
 
     


Show,

@Gustavo, era isto mesmo que eu precisava.

Muito obrigado.

  

@Rodrigo,

Agradeço também a ajuda.

  

  

De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] 
Enviada em: terça-feira, 17 de outubro de 2017 12:09
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: [oracle_br] AJUDA - UPDATE MONSTRO TABELA DE 11,5 MILHOES DE LINHAS

  

  

Boa tarde, Ricardo!

  

Veja se isto ajuda: É um bloco PL/SQL que, a cada 500 registros atualizados, 
efetua um COMMIT, para não comprometer a área de Rollback...

Obs: Efetuar commit a cada 500 registros é só um exemplo... Este valor pode ser 
maior ou menor, de acordo com a área de Rollback...

  

  

DECLARE 

  vQtLinhas NUMBER(3) := 0;

  

BEGIN

  

  FOR Reg IN (SELECT CAMPO_PK ID_TABELA -- Campo chave da tabela

              FROM   TABELA) 

  LOOP

  

    UPDATE TABELA 

    SET    CAMPO_CHAR = ''

    WHERE  CAMPO_PK   = Reg.ID_TABELA;

  

    vQtLinhas := vQtLinhas + 1; -- Registra a Qtde de Linhas atualizadas

  

    IF vQtLinhas = 500 THEN -- Quando o total de linhas atualizadas atingir 
500, efetua um COMMIT;

      COMMIT;

      vQtLinhas := 0; 

    END IF;      

  

  END LOOP; 

  

  COMMIT; -- Este COMMIT é importante para atualizar o último bloco de linhas 
que não chegou a 500 (Ex: As últimas 387 linhas)

  

END;

  

  

  

Em 17 de outubro de 2017 11:34, Ricardo Sá ricardo....@terra.com.br [oracle_br] 
<oracle_br@yahoogrupos.com.br> escreveu:


  

Bom dia, a todos.

 

Solicito a gentileza se alguém pode me ajudar a resolver uma questão.

 

Preciso realizar um UPDATE monstro em um tabela 11.500.000 (11,5 milhoes de 
linhas).

 

O update é sobre uma coluna CHAR(1) com o valor “ “.

 

Pensei em um bloco PLSQL, mas me falta neste momento criatividade para montar 
este bloco.

 

Obs.: O banco é 11.2.0.4.0 (Enterprise Edition) sobre Oracle RAC com 2 nós.... 
esta tabela tem 35 indices... (sei que é absurdo, mas é o ERP que foi 
construído desta forma).

 

Alguem poderia, me ajudar nesta questão.

 

Ricardo Sá

(11) 98286-0048






  

-- 

Atenciosamente,
Gustavo Guedes de Sene


  #yiv7931673260 #yiv7931673260 -- #yiv7931673260ygrp-mkp {border:1px solid 
#d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv7931673260 
#yiv7931673260ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv7931673260 
#yiv7931673260ygrp-mkp #yiv7931673260hd 
{color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 
0;}#yiv7931673260 #yiv7931673260ygrp-mkp #yiv7931673260ads 
{margin-bottom:10px;}#yiv7931673260 #yiv7931673260ygrp-mkp .yiv7931673260ad 
{padding:0 0;}#yiv7931673260 #yiv7931673260ygrp-mkp .yiv7931673260ad p 
{margin:0;}#yiv7931673260 #yiv7931673260ygrp-mkp .yiv7931673260ad a 
{color:#0000ff;text-decoration:none;}#yiv7931673260 #yiv7931673260ygrp-sponsor 
#yiv7931673260ygrp-lc {font-family:Arial;}#yiv7931673260 
#yiv7931673260ygrp-sponsor #yiv7931673260ygrp-lc #yiv7931673260hd {margin:10px 
0px;font-weight:700;font-size:78%;line-height:122%;}#yiv7931673260 
#yiv7931673260ygrp-sponsor #yiv7931673260ygrp-lc .yiv7931673260ad 
{margin-bottom:10px;padding:0 0;}#yiv7931673260 #yiv7931673260actions 
{font-family:Verdana;font-size:11px;padding:10px 0;}#yiv7931673260 
#yiv7931673260activity 
{background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv7931673260
 #yiv7931673260activity span {font-weight:700;}#yiv7931673260 
#yiv7931673260activity span:first-child 
{text-transform:uppercase;}#yiv7931673260 #yiv7931673260activity span a 
{color:#5085b6;text-decoration:none;}#yiv7931673260 #yiv7931673260activity span 
span {color:#ff7900;}#yiv7931673260 #yiv7931673260activity span 
.yiv7931673260underline {text-decoration:underline;}#yiv7931673260 
.yiv7931673260attach 
{clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 
0;width:400px;}#yiv7931673260 .yiv7931673260attach div a 
{text-decoration:none;}#yiv7931673260 .yiv7931673260attach img 
{border:none;padding-right:5px;}#yiv7931673260 .yiv7931673260attach label 
{display:block;margin-bottom:5px;}#yiv7931673260 .yiv7931673260attach label a 
{text-decoration:none;}#yiv7931673260 blockquote {margin:0 0 0 
4px;}#yiv7931673260 .yiv7931673260bold 
{font-family:Arial;font-size:13px;font-weight:700;}#yiv7931673260 
.yiv7931673260bold a {text-decoration:none;}#yiv7931673260 dd.yiv7931673260last 
p a {font-family:Verdana;font-weight:700;}#yiv7931673260 dd.yiv7931673260last p 
span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv7931673260 
dd.yiv7931673260last p span.yiv7931673260yshortcuts 
{margin-right:0;}#yiv7931673260 div.yiv7931673260attach-table div div a 
{text-decoration:none;}#yiv7931673260 div.yiv7931673260attach-table 
{width:400px;}#yiv7931673260 div.yiv7931673260file-title a, #yiv7931673260 
div.yiv7931673260file-title a:active, #yiv7931673260 
div.yiv7931673260file-title a:hover, #yiv7931673260 div.yiv7931673260file-title 
a:visited {text-decoration:none;}#yiv7931673260 div.yiv7931673260photo-title a, 
#yiv7931673260 div.yiv7931673260photo-title a:active, #yiv7931673260 
div.yiv7931673260photo-title a:hover, #yiv7931673260 
div.yiv7931673260photo-title a:visited {text-decoration:none;}#yiv7931673260 
div#yiv7931673260ygrp-mlmsg #yiv7931673260ygrp-msg p a 
span.yiv7931673260yshortcuts 
{font-family:Verdana;font-size:10px;font-weight:normal;}#yiv7931673260 
.yiv7931673260green {color:#628c2a;}#yiv7931673260 .yiv7931673260MsoNormal 
{margin:0 0 0 0;}#yiv7931673260 o {font-size:0;}#yiv7931673260 
#yiv7931673260photos div {float:left;width:72px;}#yiv7931673260 
#yiv7931673260photos div div {border:1px solid 
#666666;min-height:62px;overflow:hidden;width:62px;}#yiv7931673260 
#yiv7931673260photos div label 
{color:#666666;font-size:10px;overflow:hidden;text-align:center;white-space:nowrap;width:64px;}#yiv7931673260
 #yiv7931673260reco-category {font-size:77%;}#yiv7931673260 
#yiv7931673260reco-desc {font-size:77%;}#yiv7931673260 .yiv7931673260replbq 
{margin:4px;}#yiv7931673260 #yiv7931673260ygrp-actbar div a:first-child 
{margin-right:2px;padding-right:5px;}#yiv7931673260 #yiv7931673260ygrp-mlmsg 
{font-size:13px;font-family:Arial, helvetica, clean, sans-serif;}#yiv7931673260 
#yiv7931673260ygrp-mlmsg table {font-size:inherit;font:100%;}#yiv7931673260 
#yiv7931673260ygrp-mlmsg select, #yiv7931673260 input, #yiv7931673260 textarea 
{font:99% Arial, Helvetica, clean, sans-serif;}#yiv7931673260 
#yiv7931673260ygrp-mlmsg pre, #yiv7931673260 code {font:115% 
monospace;}#yiv7931673260 #yiv7931673260ygrp-mlmsg * 
{line-height:1.22em;}#yiv7931673260 #yiv7931673260ygrp-mlmsg #yiv7931673260logo 
{padding-bottom:10px;}#yiv7931673260 #yiv7931673260ygrp-msg p a 
{font-family:Verdana;}#yiv7931673260 #yiv7931673260ygrp-msg 
p#yiv7931673260attach-count span {color:#1E66AE;font-weight:700;}#yiv7931673260 
#yiv7931673260ygrp-reco #yiv7931673260reco-head 
{color:#ff7900;font-weight:700;}#yiv7931673260 #yiv7931673260ygrp-reco 
{margin-bottom:20px;padding:0px;}#yiv7931673260 #yiv7931673260ygrp-sponsor 
#yiv7931673260ov li a {font-size:130%;text-decoration:none;}#yiv7931673260 
#yiv7931673260ygrp-sponsor #yiv7931673260ov li 
{font-size:77%;list-style-type:square;padding:6px 0;}#yiv7931673260 
#yiv7931673260ygrp-sponsor #yiv7931673260ov ul {margin:0;padding:0 0 0 
8px;}#yiv7931673260 #yiv7931673260ygrp-text 
{font-family:Georgia;}#yiv7931673260 #yiv7931673260ygrp-text p {margin:0 0 1em 
0;}#yiv7931673260 #yiv7931673260ygrp-text tt {font-size:120%;}#yiv7931673260 
#yiv7931673260ygrp-vital ul li:last-child {border-right:none 
!important;}#yiv7931673260 
  • [oracle_br] AJUDA - ... Ricardo Sá ricardo....@terra.com.br [oracle_br]
    • Re: [oracle_br]... Rodrigo Mufalani rodr...@mufalani.com.br [oracle_br]
      • RES: [oracl... Ricardo Sá ricardo....@terra.com.br [oracle_br]
        • Re: [or... Rodrigo Mufalani rodr...@mufalani.com.br [oracle_br]
    • Re: [oracle_br]... Gustavo Guedes guedescomputa...@gmail.com [oracle_br]
      • RES: [oracl... Ricardo Sá ricardo....@terra.com.br [oracle_br]
        • Re: RES... Sandro Gazoni sgaz...@yahoo.com.br [oracle_br]
        • Re: RES... jlchia...@yahoo.com.br [oracle_br]
          • RES... Ricardo Sá ricardo....@terra.com.br [oracle_br]
            • ... Junior Cesar juniorcesa...@yahoo.com.br [oracle_br]
            • ... jlchia...@yahoo.com.br [oracle_br]
              • ... Ricardo Sá ricardo....@terra.com.br [oracle_br]
                • ... jlchia...@yahoo.com.br [oracle_br]
                • ... Rodrigo Mufalani rodr...@mufalani.com.br [oracle_br]
                • ... jlchia...@yahoo.com.br [oracle_br]
                • ... Ricardo Sá ricardo....@terra.com.br [oracle_br]
                • ... jlchia...@yahoo.com.br [oracle_br]

Responder a