Monday, January 04, 2010

Usando Bulk Collect no PL/SQL

Usando Bulk Collect no PL/SQL
Olá,
No primeiro post do ano vamos relembrar um pouco de PL/SQL,assim eu não esqueço !
Como SYS :

Este é um detalhe para acessar a view dba_objects via procedure :

Vamos ao trabalho!!
- Criação da tabela de exemplo que receberá os dados da procedure que executará o insert com bulk collect :

- Criação da procedure

Vamos executar agora!

Podemos usar também a clausula LIMIT no bulk collect principalmente quando temos uma quantidade muito grande de dados.Por exemplo se tivéssemos 1.000.000 ao invés das nossas 30.000 linhas  poderíamos colocar um commit a cada 50.000 linhas inseridas.Isso é legal de usar principalmente para não estourarmos a nossa tablespace de undo facilemte gerenciando a frequencia de commits.
Vamos fazer um exemplo com 50.000 linhas inserindo-as efetuando commit a cada 10.000 linhas inseridas :
- Antes um limpezinha !
ScreenShot121
- criando a procedure

- executando a procedure

- Contando as linhas inseridas :

Por hoje é só.Choveu em São Paulo e quem trabalha por aqui conhece como é!
Obs. Não entramos em nenhum conceito de tuning de código PL/SQL .Mas vale a pena você dar uma revisada nos seus cursores simples que manipulam milhões de linhas uma de cada vez  e ninguém sabe porque demora tanto!!!Já reduzi rotinas que duravam horas para minutos ou até segundos ! Deixa isto para o próximo post.
Abs,
Julio Cesar Correa

No comments: