Pensamento - Adrian Rogers

janeiro 29th, 2010 por Marcio de Souza Almeida

“É impossível levar o pobre à prosperidade através de legislações que punem os ricos pela prosperidade.
Por cada pessoa que recebe sem trabalhar, outra pessoa deve trabalhar sem receber.
O governo não pode dar para alguém aquilo que tira de outro alguém.
Quando metade da população entende a idéia de que não precisa trabalhar, pois a outra metade da população irá sustentá-la, e quando esta outra metade entende que não vale mais a pena trabalhar para sustentar a primeira metade, então chegamos ao começo do fim de uma nação.
É impossível multiplicar riqueza dividindo-a.”

É um pensamento bastante simples que nos leva a pensar por que os governantes agem de forma contrárias à razão…

Twitter

dezembro 30th, 2009 por Marcio de Souza Almeida

Já que o Portilho fez propaganda do dele, vou fazer propaganda do meu…
http://twitter.com/marcio68almeida

Tudo bem que o dele é mais interessante que o meu…
Mas eu chego lá…

Tunning Oracle - Matar ou morrer…

dezembro 30th, 2009 por Marcio de Souza Almeida

Rodei o TRACE de uma consulta (básica) no sistema que é um dos espinhos na minha carne…
Eis o resultado…

Estatística
———————————————————-
2023865 recursive calls
0 db block gets
6438650 consistent gets
241172 physical reads
0 redo size
720 bytes sent via SQL*Net to client
8553 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
77095 sorts (memory)
0 sorts (disk)
12 rows processed

Ai você me diz que isso é um absurdo, estes números são irreais, etc, etc, etc…
Tenho que te dizer que estes números são resultado de muito trabalho de MELHORIA…
Melhoria ??? Sim, melhoria… antes nem sequer executava esta consulta…

Tenho muitos outros exemplos de consultas com valores absurdos, que demoram vários minutos para trazer uma resposta, reclamações dos clientes, etc…

Diretoria perturbando que nós, DBAs, temos que ajudar a área de desenvolvimento…
Minha vontade é eliminar, fisicamente, a área de desenvolvimento, incluindo aqui seus elementos.

Tunning pode ser um trabalho prazeroso, mas tem vez que não há prazer no mundo que justifique este trabalho…

Ainda bem que este ano está no fim…
Ano que vem, mesmo que apenas psicologicamente, voltamos renovados…

Testando tabelas compactadas.

dezembro 15th, 2009 por Marcio de Souza Almeida

Baseado no documento :
http://www.oracle-base.com/articles/9i/CompressedTables9i.php
Fiz os testes e, como deveria ser com todos os profissionais, não só os DBAs, fui um pouco além.
Os testes foram realizados tanto na versão 9i quanto na 10g, ainda não tenho uma 11g para testar.

Primeiro de tudo, para que serve compactar tabelas ? O objetivo é bastante claro, diminuição de espaço utilizado. Mas, para todo ganho nós temos alguns contratempos :
Uma vez compactada uma partição, leituras nessa partição serão relativamente mais lentas, já que será necessário o trabalho de descompactar as informações para serem lidas.
O ganho em espaço pode chegar a um percentual significativo mediante o tamanho da referida tabela, para tabelas gigantes pode ser uma opção bastante interessante.

Fiz os testes indicados pelo link acima e, claro, obtive os resultados relatados.
Resolvi fazer alguns testes complementares :
Verifiquei o tamanho das tabelas APÓS os updates, a partição compactada tornou-se maior do que a partição descompactada, indicando que não é inteligente dar manutenção nos dados compactados.
Compactei a partição que inicialmente encontrava-se descompactada, ela ficou com um tamanho inferior a metade do tamanho original.
Não consegui descompactar uma partição já compactada.

Conclusão :
1. Criar tabelas particionadas normais e, tendo-se certeza de que não serão manipuladas (atualizadas), compactá-las quando encerrando o período.
2. Ficar ciente de que as consultas realizadas nestas partições terão degradação de performance.
3. Uma vez que a partição tenha sido compactada, qualquer manipulação irá ser gravada de forma descompactada, se esta partição for movida para uma tablespace menor, poderá haver falta de espaço.
4. Uma partição compactada que só recebe dados (insert) será maior do que uma partição normal que é compactada posteriormente.

MTS - Oracle MultiThreaded Server

dezembro 7th, 2009 por Marcio de Souza Almeida

Oracle MTS (Oracle MultiThreaded Server), foi desenvolvido a partir do Oracle 7 com o objetivo de economizar memória dos servidores de bancos de dados.
Este recurso é muito explorado por aplicações WEB e Java, pois este tipo de aplicaçõ compartilha suas conexões, disponibilizando asism memória para outros serviços.
Não é um recurso recomendado para as plicações do tipo cliente-servidor e ERP, pois o comportamento destes tipos de aplicações não são compatíveis com os recursos oferecidos.
A partir dos servidores de 64 bits este recurso passa a tornar-se obsoleto, tendendo a ser descontinuado após a versão 10g.

O que é um DBA ? Curso em andamento…

dezembro 4th, 2009 por Marcio de Souza Almeida

Enquanto estava de férias, olhando o mar e tomando água de côco, fiquei filosofando sobre o que é, e quais as funções de um DBA. Fortaleza é realmente inspirador !!!
O que é gerenciar um banco de dados ? Até onde eu devo interferir nas atividades de outras áreas ? Quais as atividades diárias ? O que fazer em tempos de turbulência ? O que fazer em tempos de calmaria ?
Fiz vinte e poucos tópicos e já estou preparando um curso, independente de SGBD (Sistema Gerenciador de Bancos de Dados), pois as atividades são inerentes ao profissional, não ao banco.
A minha dúvida é se devo fazer esse curso on-line ou presencial.
Passarei as próximas semanas desenvolvendo os tópicos, ano que vem esse curso será disponibilizado.
Fim de semana e à noite tem bastante serviço me esperando agora…

Vitória do anti-jogo

dezembro 3rd, 2009 por Marcio de Souza Almeida

Ontem, assistindo ao jogo de futebol entre Fluminense e LDU, não foi possível ficar imparcial.
Todo o desempenho e garra do Fluminense foram anulados por uma atitude totalmente anti-desportiva do adversário.
Se no jogo anterior eles venceram por 5×1, por que jogar recuado, ficar se jogando no chão, torcendo para o jogo acabar logo ?
Se fossem competentes, não teriam o que temer, deveriam ter ido para fazer outros cinco gols.
Realmente despresível a atitude de um time que pensa de forma tão mesquinha.
Fico feliz em não torcer para uma equipe medíocre como essa.

Da mesma forma, vemos profissionais trabalhando com pensamentos mesquinhos e anti-profissionais.
“Vou sair de férias, azar de quem ficará para acertar as rebarbas”…
Vejo isso constantemente, vejo pessoas que se dizem profissionais, porém ao primeiro sinal de problema, praticam o anti-jogo, ficam doentes, tem que visitar um tio moribundo, tem alguma urgência, torcem para que o problema se resolva ou seja resolvido por qualquer outra pessoa, menos ele.
Fico feliz de não ter esse tipo de “profissional” em minha equipe, fico chateado por ver tantos dentro da empresa…

Que a excelência seja sempre o meu viver !!!

Data Modeler

julho 28th, 2009 por Marcio de Souza Almeida

Acabo de pegar no site da Oracle o Data Modeler.
Aparentemente um modelador de dados bastante simples e intuitivo.
Estou testando, mas me parece uma ótima ferramenta para distribuir aos nossos amigos desenvolvedores, já que a maioria não tem acesso ou disposição de usar um AD.
Em breve colocarei maiores informações sobre este produto, que é free.
Agora vou brincar com ele :D

Guardando lixo na base de dados.

julho 21st, 2009 por Marcio de Souza Almeida

É com grande frequência que encontro uma quantidade exagerada de lixo nas bases de dados das empresas por onde passo. Mas, o que é lixo ? Lixo é todo e qualquer objeto que encontra-se na base de dados, ocupando ou não espaço físico, que não é utilizado ou não se conhece a real utilidade dele.
Os casos mais freqüentes são os sinônimos, o que encontramos de sinônimos fantasmas, que não apontam para lugar algum é assustador, tem bases que encontrei mais de mil sinônimos fantasmas, o que é pior, mesmo não apontando para lugar algum, os administradores não deixaram que eu os removesse.
Procedures, funções e packages que não são utilizadas tem em grande quantidade, um dia serviu para alguma coisa, depois disso esqueceu-se dela ali, e ali ficará para sempre, já que ninguém vai lembrar por que estava ali ou até mesmo o que ela faz.
O que realmente castiga a base são tabelas criadas para suprir alguma necessidade e deixadas de lado, índices que não servem mais, por diversos motivos, que, no mínimo consomem processamento ao ser atualizado, degradando a aplicação, mas com certeza consomem espaço em disco.
O que fazer para se livrar desses lixos que tanto encontramos em nossas bases de dados ?
Antes de mais nada, documentação, sem ela não há como fazer qualquer trabalho, nem mesmo de melhoria de performance, pois não há como melhorar a performance de uma aplicação se não sabemos o que ela faz…
Atenção : Nunca remova nenhum objeto sem ter feito antes uma cópia de segurança.
Creio que o mais simples é começar eliminando os sinônimos fantasmas, quanto menos objetos tivermos para avaliar melhor.
Com a documentação, DFD e outras ferramentas em mãos, podemos começar a questionar todas as tabelas desnecessárias, a grande surpresa é a quantidade exorbitante de tabelas que encontraremos sem utilização. Com a eliminação dessas tabelas, provavelmente conseguiremos nos livrar de uma grande quantidade de índices…
Após esta limpesa inicial, podemos verificar os índices, um grande problema que encontro constantemente nos índices é a repetição, isto é, vemos o índice A com as colunas 1, 2 e 3, e vemos o índice J com as colunas 1, 2, 3 e 4, sem muito esforço podemos deduzir que um dos dois poderá ser removido. Um outro problema até mais grave é quando criam-se índices em cima de PKs, isto é, se a coluna chave é código, e ela é única, criar um índice código mais descrição éuma total falta de conhecimento das regras de bancos de dados. Pode parecer absurdo, mas encontro MUITO deste tipo de erro. Alguns dos que criaram ainda se dizem DBAs…
Após a remoção dessa parte do lixo, vamos verificar as procedures e funções que encontram-se inválidas, se estão inválidas e ninguém reclamou até agora, é por que não servem e podem ser eliminadas, sempre tenha um backup antes de remover qualquer coisa.
Após eliminar os objetos inválidos, veja QUAIS realmente são utilizadas e ONDE são utilizadas, todas as que não estiverem na documentação, provavelmetne não servem para nada.
Existem ainda muitos outros processos de limpeza da base de dados, mas com isto já dá para começar a sentir uma melhora significativa na aplicação.
E o mais importante é que a aplicação está documentada, agora é um trabalho árduo convencer os desenvolvedores a manter a documentação atualizada…
Trabalho de DBA não é só administrar o bom funcionamento do banco, é mante-lo sempre limpo e bem azeitado.
Quanto mais acertado estiver o banco, menos trabalho.

Até quanto é um percentual de chance aceitável ?

julho 20th, 2009 por Marcio de Souza Almeida

Quando vejo as pessoas jogando na sena, mega-sena e outros jogos de azar, que para mim não são mais do que lavagem de dinheiro, mas, vejo uma esperança muito grande em uma probabilidade muito pequena. Uma chance em um milhão a pessoa tem certeza de ser essa uma, a possibilidade de “sorte grande” aumenta quanto maior é a possibilidade de enriquecer da noite para o dia. As possibilidades diminuem e a esperança aumenta.
Quando o assunto em questão não é a possibilidade de ganhar um monte de dinheiro, é ficar doente, por exemplo, uma doença venérea ou mesmo uma AIDS, as chances são bastante grandes, se tiver relações sem preservativos as possibilidades são de setenta por cento de ficar doente, mesmo assim as pessoas tem esperança de que nada vai lhe acontecer. Já ouvi mais de uma vez de pessoas maduras o medo de ter ficado grávidas, pergunto por que não usou preservativo, a desculpa é sempre a mais variável possível, desde estourou a camisinha até “na hora do fogo”, passando por “ele pediu”, mas sempre com a mesma constante, “acreditava que não iria acontecer”.
Quando o assunto é doença estabelecida, as chances de cura, por maiores que sejam, sempre geram apreenção de todos, desde a pessoa doente até todos que a cercam e se importam com ela. Noventa por cento de chances de recuperação é um número assunstador, pois ainda há dez por cento de chances de não se recuperar. As mesmas pessoas que acreditavam que uma chance em um milhão estavam a seu favor na hora de ganhar um monte de dinheiro, não acreditam que noventa por cento de chances de recuperação de uma doença seja um número aceitável, se rebelam contra Deus, entregam os pontos, se desesperam.
Vejo no mundo empresarial uma atitude muito semelhante. Quando a possibilidade de ganho é muito grande, mesmo que as chances de fracasso e os riscos sejam enormes, as empresas e seus diretores entram de cabeça, é o caso de algumas empresas brasileiras que perderam muito dinheiro durante a crise mais recente. Os administradores acreditam que o risco é aceitável, “já fizemos isso antes” é o discurso deles, principalmente quando a casa cai, se a investida dá certo, são parabenizados com gordas recompensas, quando dá errado, são criminalmente acusados.
Por outro lado, quando a doença está estabelecida, isto é, o problema deixa de ser uma possibilidade e torna-se uma realidade, todos entram em desespero. Quando há uma perda muito grande de capital, quando seu produto que é o carro chefe da empresa deixa de ser desejado, tornando-se obsoleto, o trabalho que reconstrução e a capacidade de procurar novas alternativas parece que se esvaem, torna-se um câncer na empresa, dizem não haver mais alternativa e entregam os pontos, ou fecham ou vendem a empresa.
A nossa fé, em Deus, ou mesmo em uma força superior é muito pequena quando o assunto é recuperação, quando o assunto é ganância, nossa fé é incrivelmente grande.
Sabe por que os países árabes não sofreram com a crise internacional ? É por que eles tem fé no que é importante, na família e na comunidade, não são especuladores e não pretendem grandes ganhos. Justamente por não pretender grandes ganhos é que Deus lhes proporciona grandes ganhos, é por querermos grandes ganhos, é que Deus permite as crises internacionais (Ele não as causa, apenas as permite).
Sabe por que as comunidades religiosas tem um percentual maior de cura em doenças graves ? É por que todos se ajuntam para passar fé, confiança e solidariedade, só isso já é um fator relevante na cura, agregado a isso a certeza de que se tem uma entidade superior olhando e intervindo faz com que a cura seja possível.
Acho que devemos nos especializar em buscar o que realmente vale à pena, certamente não é o dinheiro e as posses e o poder…
Uma ótima semana para você.