Caro Leonardo;

   Muito obrigado por responder. Seguem as minhas considerações:


a - 
"porque a operações de escrita em lote costumam custar muito caro para os logs
daquela plataforma ..."

Você está falando de quais logs, dos arquives? É isso mesmo? Para quê importar 
1 bilhão de registros com arquive? Neste caso, é só desabilitar os mesmos, ok? 
Também já ví uma empresa erroneamente colocando datafiles e redo logs files 
arquivados no mesmo disco ou utilizando a mesma I/O; aí vai ficar lerdo mesmo, 
não tem jeito, os arquives TEM de ser colocados em um local separado.
Aproveitando: os redo log files funcionam de modo análogo ao WAL?


b - 
"O tal do Bulk Collect (verdadeiramente muito recente - 10g)"

Isto não te nada de recente, você está equivocado. Tal existe desde a versão 8i 
lançado em 1998, já completando mais de 10 anos. Também já fui programador em 
PL/SQL (certificado), e trabalhava com o Oracle 7.3.
Para completar, tem um exemplo de utilização do bulk com a versão 8 em 
http://www.oracle-base.com/articles/8i/BulkBinds8i.php.


c - 
"Esse tipo de comportamento é muito comum de se encontrar em uma série de 
aplicações crítica naquela plataforma fechada"

Não entendí; comum aonde? Você poderia me enviar alguns exemplos? Que tipo de 
atividades são realizadas para que eu consiga simular os mesmos problemas? Você 
tem alguma referêmcia na web explicando isto?


d - 
"E por falar em milhares (hã?) .. isso mesmo apenas milhares de linhas
é necessário recorrer aos CTAS (create table as ...) porque a
operações de escrita em lote costumam custar muito caro para os logs
daquela plataforma ..."

Olha só; se você estiver com algum problema de espaço em disco, e quiser mover 
alguma tabela para outro DISCO, você pode utilizar CRIATE TABLE AS a fim de 
efetuar uma operação mais rápida, podendo inclusive paralelizar esta operação 
(usar múltiplos processadores). Tal não tem NADA a ver com escritas em lote, 
correto?


e -
"...o todo poderoso ADDM que "disfarça" todo o problema das suas SQLs."

O ADDM (Automatic Database Diagnostic Monitor) não disfarça nada, pelo 
contrário, ele MOSTRA PROBLEMAS relacionados à consumo de CPU, uso de memória, 
uso da I/O, queries, rotinas em PL/SQL, rotinas em Java, configurações do 
banco, contenção de objetos e concorrência, e funciona da seguinte forma:

1 - o AWR tira uma fotografia ou "SNAPSHOT" do banco, de tempos em tempos, e 
armazena as informações coletadas;
2 - o ADDM analisa os dados coletados e identifica problemas, inclusive 
provendo as soluções, que podem ser visualizadas no Enterprise Manager.

  Então, voltando ao seu exemplo das queries: se algum sistema executar uma 
sentença SQL mal escrita, ou com baixa performance, o ADDM identifica a query e 
propõe soluções, que variam desde a criação de índices até a reescrita da mesma.


g - 
"Quanto ao TPC, tenta pelo menos o H."

  Mas porquê? Vejamos, em 
http://www.tpc.org/tpch/results/tpch_perf_results.asp, verificamos
publicações de testes com bancos que variam de 100 Gigas a 30 Teras,
onde o EXASOL marcou o primeiro lugar em 3, o Oracle em 2 e o DB2 em 1.
Aliás, no de 30 Teras só teve o Oracle; nem teve concorrência.


f - 
"é que *problemas* de performance qualquer implementação de servidor de banco 
de dados tem,
e graças a esse problemas é que a Júlia tem o pão e leite na mesa todo"

  Com certeza, e eu concordo muito com isso, também tenho esposa e filho. Mas o 
que eu vejo sempre é o seguinte: o fulano que mexe com a ferramenta A e só 
conhece a mesma, ou melhor, depende da mesma (caso que eu citei aquí na lista 
do Caché) sempre fala que esta é a melhor do mundo, é a mais rápida e etc e 
tal. Paciência, o cara está vendendo o peixe dele e pronto, será aquela 
discussão de time de futebol sem nenhum sentido e da qual não vale a pena 
participar.
  Olha só; uma empresa para a qual eu presto serviço onde o banco é PostgreSQL, 
e todo o mundo reclamava da performance. Só que o culpado não era o mesmo; na 
verdade escreveram uma aplicação bem porca, onde as entidades (cerca de 2000) 
foram dezenhadas tentando manter sempre uma chave única, para "facilitar a 
programação". E o "DBA" da época nem sequer criou índices para as chaves 
estrangeiras, e não tinha estatística para nada.
  Resolvidos estes problemas, algumas rotinas que levavam horas - isto mesmo, 
horas - foram retiradas do código Java e incorporadas ao banco via funções e 
views, passando a rodar em minutos.
  Hoje, ninguém lá quer tirar o Postgres.


Atenciosamente,

Márcio de Figueiredo Moura e Castro



________________________________
De: Leonardo Cezar <lhce...@gmail.com>
Para: Comunidade PostgreSQL Brasileira <pgbr-geral@listas.postgresql.org.br>
Enviadas: Sexta-feira, 22 de Janeiro de 2010 19:05:28
Assunto: Re: [pgbr-geral] Res: Res: Res: Res: Digest pgbr-geral, volume 35, 
assunto 94

2010/1/22 MARCIO CASTRO <marciomouracas...@yahoo.com.br>:
> Colega;
>
>   Eu estava tratando com outro membro da lista, quando viestes com esta
> falta de educação. Se vossa senhoria não concorda com alguma coisa inerente
> à minha pessoa, então faça a gentileza de mandar em private, e não incomodar
> aos demais, ok?

Olá Srs, prazer eu sou um dos moderadores desta lista. Tudo jóia??

Sou elementar assim como um Gnomo e de vez em quando apareço para
apoia-los em seus desafetos.

> a -
> "Tuas colocações já foram argumentadas e contra argumentadas"
>
> Colega; o PostgreSQL é muito mais lerdo que o Oracle no quesito PL/SQL
> versus PG/plSQL; disso eu não tenho dúvida, e ninguém mandou seguer um
> exemplo que comprove o contrário.

Gostaria de contribuir um pouco com este tema.

Sou um ex-desenvolvedor PL/SQL  e realmente lá no mundo proprietário
já tivemos alguns problemas de performance que precisamos utilizar
recursos do Or*cle (adorei essa!!) para "contornar" situações
inusitadas que surgiram com grande carga de dados – veja bem, não
estou falando de alguns milhões de registros.

O tal do Bulk Collect (verdadeiramente muito recente - 10g) foi criado
para contornar situações onde iterações sobre *dados* costumam ser
lentas, devido a deficiências na troca de contexto entre o motor SQL e
o motor PL/SQL. Esse tipo de comportamento é muito comum de se
encontrar em uma série de aplicações crítica naquela plataforma
fechada, Eu mesmo já vi e muito apesar de não ser DBA O**le.

E por falar em milhares (hã?) .. isso mesmo apenas milhares de linhas
é necessário recorrer aos CTAS (create table as ...) porque a
operações de escrita em lote costumam custar muito caro para os logs
daquela plataforma ...

Bom que você não precise se preocupar com problemas gerados pela /wait
classes interface/ porque se voce precisasse, de fato iria entender o
quanto que o processo de escrita de redo e escrita de buffers (LGWR e
DBWn respectivamente) atrasam as transações do resto do banco. Porque
voce não precisa?? Simples, seus problemas acabaram vcs tem o todo
poderoso ADDM que "disfarça" todo o problema das suas SQLs.

Finalizando e onde realmente eu queria chegar é que *problemas* de
performance qualquer implementação de servidor de banco de dados tem,
e graças a esse problemas é que a Júlia tem o pão e leite na mesa todo
dia, mas estamos aqui para solucionar todos esses problemas e os
outros que provavelmente deverão aparecer daqui pra frente ...

Quanto ao TPC, tenta pelo menos o H.

Preciso ir porque tão fechando aqui na empresa ... depois eu completo ;-)

Abraço!

-Leo
-- 
Leonardo Cezar
http://www.aslid.org.br
http://postgreslogia.wordpress.com
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral



      
____________________________________________________________________________________
Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a