Alessandro,
Por que você não está usando um "FORALL" no loop? Da forma como está, a 
operação de delete ainda vai deletar uma linha por vez.
Tente algo como o bloco abaixo. Não testei então pode ter erros de sintaxe.
Parece a mesma coisa, mas para o banco de dados é muito diferente. Se você 
remove uma linha de cada vez, ele irá atualizar o bloco e todos os indices para 
aquela linha, e de novo para a próxima linha, asssim por diante. Mas se roda o 
comando em "bulk" ele deve atualizar e fazer a manutenção dos indices em uma 
operação unica. 
Depois você experimenta aumentar esse 10000 para ver se tem ganho.
Outra coisa, convém desabilitar constraints de foreign key, se houverem. O 
ideal seria desativar os indices (alter index ... unusable) e fazer um rebuild 
deles depois, mas como o sistema está no ar,  pode não ser viável.


declare cursor c1 is SELECT ROWID FROM OWNER.tableA  where cod_xxx in(select 
cod_xxx from OWNER.tableB aa join OWNER.tableC ar on(aa.cod_xxx = ar.cod_xxx) 
where trunc(COLUNM_DATA) < (select sysdate - TO_YMINTERVAL('01-00') from dual));
 type rows_del is table of rowid index by binary_integer;
dell rows_del;
row_commit pls_integer := 10000;rowcount pls_integer := 0;
begin
open c1;loop     fetch c1 BULK COLLECT INTO dell limit row_commit;     exit 
when c1%NOTFOUND;      forall  indx IN 1 .. dell.COUNT loop               
delete from OWNER.tableA                 where rowid = dell(indx);   commit;end 
loop;
close c1;
end;/"
Atc,Luis
     On Thursday, July 16, 2015 6:26 PM, "jlchia...@yahoo.com.br [oracle_br]" 
<oracle_br@yahoogrupos.com.br> wrote:
   

     Nope, Angelo : ao alterar a cláusula de logging para NOLOGGING a ** única 
** Operação de DML capaz de não gerar redo log é o INSERT /*+ APPEND */ 
(cláusula de logging da tabela só serve pra issoessa  só serve para isso, right 
?), e pelo que entendi isso o Alexssandro já tentou e não atendeu...
 Alexssandro, seguinte : primeiro respondendo a sua pergunta original, o ponto 
é que o PL/SQL (e o SQL, também, em grande medida) foi programado para 
trabalhar em LOTES, ie : lê uma porção de linhas para a memória, processa-as, 
depois lê para a MESMA porção de memória antes usada o próximo punhado de 
linhas, processa, assim por diante.... É POR ISSO, INCLUSIVE, que vc pode fazer 
SELECT * FROM tabeladeumbilhãodelinhas SEM receber um erro de falta de memória 
mesmo num servidor modesto, okdoc ???  
https://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:5918938803188
 detalha isso, muito embora seja um conceito Básico, certo ??
  Muito bem : por causa dessa premissa, o PL/SQL **** tem Limites **** na 
memória que pode alocar, ele é programado pensando em LIMITAR o uso de RAM, até 
também  para que o RDBMS em si tenha mais RAM disponível, ele é Prioridade - a 
parte maior da memória RAM é sempre assim reservada para o RDBMS fazer seus 
muitos e múltiplos processos E poder criar seus caches... A sua resposta então 
é CLARA, se vc colocar vários milhares como o LIMIT numa cláusula de BULK 
COLLECT, o array resultante vai ser tão grande que MUITO PROVAVELMENTE vai 
estourar os limites do PL/SQL, independente de quanta RAM livre vc tem... 
Respondido ??

Aí seguem meus comments sobre a sua situação : em PRIMEIRO LUGAR, absolutamente 
Não Tem Como vc fazer uma manipulação de largo volume de dados, como é essa que 
vc pretende, SEM IMPACTO NO AMBIENTE, ok ?? Se, como vc citou para outro 
colega, essa é a sua meta, DESISTA Já, não vai rolar... O que Pode ser feito é 
escolher um caminho de menos impacto, mas que VAI haver Impacto, isso é Líquido 
e certo....  Adicionalmente, vc quer Máxima performance/eficiência na 
manipulação : sorry, mas a única maneira de vc obter isso é direcionando TODOS, 
ou QUASE TODOS (ou ao menos a Esmagadora maioria dos recursos do RDBMS) para 
essa manipulação, sim ??? Não tem mágica, se vc quer que uma tarefa longa 
demore menos, dê MAIS RECURSOS do ambiente para essa tarefa... Isso se faz 
PRINCIPALMENTE evitando Concorrência, para que os recursos fiquem 
livres/disponíveis pra tarefa longa, sim ??? Portanto, se vc quer ter Máxima 
Eficiência/Performance, vc VAI TER QUE TER ** ALGUM ** DOWNTIME para os 
usuários, impedindo-os de gastar recursos do banco para que vc os possa usar 
pra tarefa longa, sim sim ??? Vc até pode agendar essa tarefa longa de 
manipulação de dados pra um fim de semana ou uma noite, para tentar interferir 
o menos possível, mas que VAI ter alguma intereferência/indisponibilidade (num 
horário pré-agendado, que seja) isso vai...

==> Com esses esclarecimentos acima, aí podemos discutir métodos.... Primeiro 
Ponto, vc REALMENTE TESTOU a chance de se fazer a Remoção dos dados sem DML, 
sem delete, ie : INSERT /*+ APPEND */ INTO tabeladecópia (SELECT * FROM 
tabelaoriginal WHERE filtrodosdadosaanter); COMMIT; TRUNCATE TABLE 
tabelaoriginal; INSERT /*+ APPEND */ INTO tabelaoriginal (SELECT * FROM 
tabeladecopia); ??? De modo geral, essa seria a opção mais Eficiente... Só 
mesmo CASO ela seja inviável e/ou não dê a melhor performance nos seus testes, 
seja por que motivo for, aí SIM vc avalia as outras...
 O segundo ponto é : para que vc aloque para a tarefa longa os recursos que vc 
conservou impondo alguma Indisponibilidade pros usuários, vc TEM que a quebrar 
em unidades paralelas, ie, vc TEM que implementar algum paralelismo... 
Paralelismo = múltiplas sessões fazendo I/O em diferentes pedaços da tabela 
grande E armazenando as linhas lidas em posições diferentes de RAM.... OK ?? 
Fosse Enterpise Edition vc teria o Parallel SQL, mas como não é vc VAI TER QUE 
implementar algum tipo de paralelismo de pobre, ie : vc vai abrir múltiplas 
sessões, cada uma lendo e deletando (com BULK, LIMIT 1000, blablabla) pedaços 
diferentes da tabela, separando os pedaços por ROWID... 
https://asktom.oracle.com/pls/asktom/f?p=100:11:::::P11_QUESTION_ID:10498431232211
 tem um exemplinho genérico...
 
 E claro, não tem a ver com performance mas PLEASE, nunca, jamais, em tempo 
algum meta um EXCEPTION WHEN OTHERS que não registre ** claramente ** qual erro 
deu, sob pena de vc passar batido por erros graves e dificultar DE MONTÃO o 
debug, sim ???
 
 []s
 
   Chiappa  #yiv7649620478 #yiv7649620478 -- #yiv7649620478ygrp-mkp {border:1px 
solid #d8d8d8;font-family:Arial;margin:10px 0;padding:0 10px;}#yiv7649620478 
#yiv7649620478ygrp-mkp hr {border:1px solid #d8d8d8;}#yiv7649620478 
#yiv7649620478ygrp-mkp #yiv7649620478hd 
{color:#628c2a;font-size:85%;font-weight:700;line-height:122%;margin:10px 
0;}#yiv7649620478 #yiv7649620478ygrp-mkp #yiv7649620478ads 
{margin-bottom:10px;}#yiv7649620478 #yiv7649620478ygrp-mkp .yiv7649620478ad 
{padding:0 0;}#yiv7649620478 #yiv7649620478ygrp-mkp .yiv7649620478ad p 
{margin:0;}#yiv7649620478 #yiv7649620478ygrp-mkp .yiv7649620478ad a 
{color:#0000ff;text-decoration:none;}#yiv7649620478 #yiv7649620478ygrp-sponsor 
#yiv7649620478ygrp-lc {font-family:Arial;}#yiv7649620478 
#yiv7649620478ygrp-sponsor #yiv7649620478ygrp-lc #yiv7649620478hd {margin:10px 
0px;font-weight:700;font-size:78%;line-height:122%;}#yiv7649620478 
#yiv7649620478ygrp-sponsor #yiv7649620478ygrp-lc .yiv7649620478ad 
{margin-bottom:10px;padding:0 0;}#yiv7649620478 #yiv7649620478actions 
{font-family:Verdana;font-size:11px;padding:10px 0;}#yiv7649620478 
#yiv7649620478activity 
{background-color:#e0ecee;float:left;font-family:Verdana;font-size:10px;padding:10px;}#yiv7649620478
 #yiv7649620478activity span {font-weight:700;}#yiv7649620478 
#yiv7649620478activity span:first-child 
{text-transform:uppercase;}#yiv7649620478 #yiv7649620478activity span a 
{color:#5085b6;text-decoration:none;}#yiv7649620478 #yiv7649620478activity span 
span {color:#ff7900;}#yiv7649620478 #yiv7649620478activity span 
.yiv7649620478underline {text-decoration:underline;}#yiv7649620478 
.yiv7649620478attach 
{clear:both;display:table;font-family:Arial;font-size:12px;padding:10px 
0;width:400px;}#yiv7649620478 .yiv7649620478attach div a 
{text-decoration:none;}#yiv7649620478 .yiv7649620478attach img 
{border:none;padding-right:5px;}#yiv7649620478 .yiv7649620478attach label 
{display:block;margin-bottom:5px;}#yiv7649620478 .yiv7649620478attach label a 
{text-decoration:none;}#yiv7649620478 blockquote {margin:0 0 0 
4px;}#yiv7649620478 .yiv7649620478bold 
{font-family:Arial;font-size:13px;font-weight:700;}#yiv7649620478 
.yiv7649620478bold a {text-decoration:none;}#yiv7649620478 dd.yiv7649620478last 
p a {font-family:Verdana;font-weight:700;}#yiv7649620478 dd.yiv7649620478last p 
span {margin-right:10px;font-family:Verdana;font-weight:700;}#yiv7649620478 
dd.yiv7649620478last p span.yiv7649620478yshortcuts 
{margin-right:0;}#yiv7649620478 div.yiv7649620478attach-table div div a 
{text-decoration:none;}#yiv7649620478 div.yiv7649620478attach-table 
{width:400px;}#yiv7649620478 div.yiv7649620478file-title a, #yiv7649620478 
div.yiv7649620478file-title a:active, #yiv7649620478 
div.yiv7649620478file-title a:hover, #yiv7649620478 div.yiv7649620478file-title 
a:visited {text-decoration:none;}#yiv7649620478 div.yiv7649620478photo-title a, 
#yiv7649620478 div.yiv7649620478photo-title a:active, #yiv7649620478 
div.yiv7649620478photo-title a:hover, #yiv7649620478 
div.yiv7649620478photo-title a:visited {text-decoration:none;}#yiv7649620478 
div#yiv7649620478ygrp-mlmsg #yiv7649620478ygrp-msg p a 
span.yiv7649620478yshortcuts 
{font-family:Verdana;font-size:10px;font-weight:normal;}#yiv7649620478 
.yiv7649620478green {color:#628c2a;}#yiv7649620478 .yiv7649620478MsoNormal 
{margin:0 0 0 0;}#yiv7649620478 o {font-size:0;}#yiv7649620478 
#yiv7649620478photos div {float:left;width:72px;}#yiv7649620478 
#yiv7649620478photos div div {border:1px solid 
#666666;height:62px;overflow:hidden;width:62px;}#yiv7649620478 
#yiv7649620478photos div label 
{color:#666666;font-size:10px;overflow:hidden;text-align:center;white-space:nowrap;width:64px;}#yiv7649620478
 #yiv7649620478reco-category {font-size:77%;}#yiv7649620478 
#yiv7649620478reco-desc {font-size:77%;}#yiv7649620478 .yiv7649620478replbq 
{margin:4px;}#yiv7649620478 #yiv7649620478ygrp-actbar div a:first-child 
{margin-right:2px;padding-right:5px;}#yiv7649620478 #yiv7649620478ygrp-mlmsg 
{font-size:13px;font-family:Arial, helvetica, clean, sans-serif;}#yiv7649620478 
#yiv7649620478ygrp-mlmsg table {font-size:inherit;font:100%;}#yiv7649620478 
#yiv7649620478ygrp-mlmsg select, #yiv7649620478 input, #yiv7649620478 textarea 
{font:99% Arial, Helvetica, clean, sans-serif;}#yiv7649620478 
#yiv7649620478ygrp-mlmsg pre, #yiv7649620478 code {font:115% 
monospace;}#yiv7649620478 #yiv7649620478ygrp-mlmsg * 
{line-height:1.22em;}#yiv7649620478 #yiv7649620478ygrp-mlmsg #yiv7649620478logo 
{padding-bottom:10px;}#yiv7649620478 #yiv7649620478ygrp-msg p a 
{font-family:Verdana;}#yiv7649620478 #yiv7649620478ygrp-msg 
p#yiv7649620478attach-count span {color:#1E66AE;font-weight:700;}#yiv7649620478 
#yiv7649620478ygrp-reco #yiv7649620478reco-head 
{color:#ff7900;font-weight:700;}#yiv7649620478 #yiv7649620478ygrp-reco 
{margin-bottom:20px;padding:0px;}#yiv7649620478 #yiv7649620478ygrp-sponsor 
#yiv7649620478ov li a {font-size:130%;text-decoration:none;}#yiv7649620478 
#yiv7649620478ygrp-sponsor #yiv7649620478ov li 
{font-size:77%;list-style-type:square;padding:6px 0;}#yiv7649620478 
#yiv7649620478ygrp-sponsor #yiv7649620478ov ul {margin:0;padding:0 0 0 
8px;}#yiv7649620478 #yiv7649620478ygrp-text 
{font-family:Georgia;}#yiv7649620478 #yiv7649620478ygrp-text p {margin:0 0 1em 
0;}#yiv7649620478 #yiv7649620478ygrp-text tt {font-size:120%;}#yiv7649620478 
#yiv7649620478ygrp-vital ul li:last-child {border-right:none 
!important;}#yiv7649620478 

  
  • [or... alexssandro0...@yahoo.com.br [oracle_br]
    • ... Andre Santos andre.psantos...@gmail.com [oracle_br]
      • ... alexssandro0...@yahoo.com.br [oracle_br]
        • ... Sérgio Luiz Rodrigues Chaves sergio.cha...@elumini.com.br [oracle_br]
          • ... alexssandro0...@yahoo.com.br [oracle_br]
            • ... angelo angelolis...@gmail.com [oracle_br]
              • ... Andre Santos andre.psantos...@gmail.com [oracle_br]
                • ... alexssandro0...@yahoo.com.br [oracle_br]
              • ... jlchia...@yahoo.com.br [oracle_br]
              • ... jlchia...@yahoo.com.br [oracle_br]
                • ... Luis Freitas lfreita...@yahoo.com [oracle_br]
                • ... alexssandro0...@yahoo.com.br [oracle_br]
                • ... jlchia...@yahoo.com.br [oracle_br]
                • ... lmarinh...@yahoo.com.br [oracle_br]
                • ... Alessandro Silva xalexsi...@yahoo.com.br [oracle_br]
                • ... jlchia...@yahoo.com.br [oracle_br]
                • ... jlchia...@yahoo.com.br [oracle_br]

Responder a