[Cascavel-pm] Perl e Oracle

Alceu R. de Freitas Jr. glasswalk3r em yahoo.com.br
Sexta Setembro 5 13:17:52 CDT 2003


 --- Luis Campos de Carvalho <lechamps em terra.com.br>
escreveu: 
>    Obrigado, eu te devo esta.
>    Meu sonho de consumo é trabalhar com Perl e
> Oracle em um grande 
> projeto... quem sabe um dia? =-]

Nada que uma cerveja depois não resolva. :~)
Quanto ao seu sonho... não é tão impossível assim, se
considerar que grandes projetos rodam Oracle em
plataforma UNIX, e quase todos os UNIX do mundo
incluem Perl instalado.
 
>    O (2) do primeiro email (consultem o arquivo da
> lista, mongers!) faz 
> referência a informações obtidas dinamicamente, uma
> a uma, normalmente 
> de fontes de dados distintas e humanas.

Talvez hajam gnomos dentro dos servidores Tru64Unix
daqui, mas eu nunca os vi. Mas sempre existe a
possibilidade... hehehe... que papo de doido...

>    Você está falando de carga de dados em batch, ou
> está falando de 
> cadastramento de registros um-a-um, por humanos ou
> algo parecido?

Exatamente: carga/descarga via batch, com tarefas
agendadas e tudo o mais. Antiquado, não?
 
>    Dica: o Oracle tem ferramentas (data-loader)
> insuperáveis em 
> velocidade para carregar dados em batch. O Data
> Loader grava diretamente 
> no arquivo de dados, sem solicitar ajuda do RDBMS.
> Isso economiza o 
> tempo de armazenamento das operações de inserção de
> dados no Redo-Log, o 
> que torna este método imbatível...

Oracle maldito... eu queria programar em Perl e ele
não deixa...

>    Stored procedures normalmente estão em disco,
> como texto 
> (source-code). Elas sobem para a memória, são
> compiladas, catalogadas no 
> cache de disco em uma área de memória partilhada
> chamada "Library 
> Cache", onde o Oracle guarda todo o tipo de código
> PL/SQL depois de 
> compilado. O que o pessoal não menciona muito é que
> esta área é pequena, 
> proporcionalmente ao tamanho e quantidade de
> procedures normalmente 
> armazenadas. É a campeã de falhas de cache ("cache
> page miss" -- quando 
> o que você procura não está mais em cache) do RDBMS
> Oracle.

Então só é um método eficiênte se quase ninguém usa o
banco? Muuuito esperto. SAP usa isso, mas ao menos
funciona.
 
>    Um outro aspecto: o Perl tem custo de startup
> fixo: você roda uma vez 
> e pronto, o programa está funcionando (e vai fazer
> carga de todos os 
> registros que você apresentar para esta sessão). O
> Oracle reinicia um 
> stored procedure (e paga os custos de start-up) a
> cada nova chamada. 
> Isso acumula muito mais custos para o Oracle, sem
> dúvida.

As procedures aqui carregam linhas de arquivos texto e
mandam para tabelas. Isso significa que, para cada
linha, é feito uma chamada para a procedure?
 
>    Eu acho que isso vai depender muito da forma como
> seus dados estão: 
> São confiáveis? Vêm em pacotes de milhares de
> registros? São puros? 
> Existem registros com problemas / sujos? Que tipo de
> informações de log 
> você precisa? Isso está dentro do banco de dados?

São confiáveis por projeto (o que significa que de vez
em quando falha), mesmo em arquivos texto o tamanho do
campo é delimitado. Alguns arquivos são realmente
grandes. Preciso de logs com timestamp me dizendo onde
o processo foi parado, e ser der, por que. As
procedures do Oracle fazem isso, mas os logs são de
doer de ler...

>    Você pode sugerir ao pessoal que <code>use
> Perl;</code>, mas acho que 
> a possibilidade de utilizar um mecanismo de carga de
> dados da Oracle 
> pode ser mais atraente...

Enfim, vale a pena fazer um teste entre carregar o
mesmo arquivo de dados usando uma procedure e um
script em Perl?

[]´s


=====
Alceu Rodrigues de Freitas Junior
--------------------------------------
glasswalk3r em yahoo.com.br
http://www.imortais.cjb.net
-----------------------------------------------------------------------
"You have enemies? Good. That means you've stood up for something, sometime in your life." - Sir Winston Churchill

_______________________________________________________________________
Desafio AntiZona: participe do jogo de perguntas e respostas que vai
dar um Renault Clio, computadores, câmeras digitais, videogames e muito
mais! www.cade.com.br/antizona



Mais detalhes sobre a lista de discussão Cascavel-pm