[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