Diversidade

junho 15th, 2010 por Marcio de Souza Almeida

Este texto foi a minha exposição no curso de MBA ontem…

Esta palavra nos leva a uma variedade substancial de opções, vamos nos ater a algumas delas :

O termo diversidade diz respeito à variedade e convivência de ideias, características ou elementos diferentes entre si, em determinado assunto, situação ou ambiente.
A ideia de diversidade está ligada aos conceitos de pluralidade, multiplicidade, diferentes ângulos de visão ou de abordagem, heterogeneidade e variedade. E, muitas vezes, também, pode ser encontrada na comunhão de contrários, na intersecção de diferenças, ou ainda, na tolerância mútua.
Texto acima retirado do site
http://pt.wikipedia.org/wiki/Diversidade

Linhas heterogêneas de pensamento nos dão uma riqueza de possibilidades, a oportunidade de discutir com pessoas com pensamentos diferentes dos nossos pode produzir um crescimento para ambos os lados, quando todos defendem um único ponto de vista, certamente estará sendo deixado para trás uma infinidade de possibilidades. Defesa da vida incondicionalmente é um ponto de vista bastante controverso e que certamente merece uma visão mais ampla. Questões religiosas e sociais são temas que geram uma infinidade de pontos de vista de podem gerar horas de calorosa discução.

As diferenças antropológicas merecem certo destaque, principalmente no Brasil, onde a tolerância e a intolerância andam de mãos dadas à luz do dia. As diferenças sócio-culturais e religiosas que movem este país são motivos de discordância da grande maioria das pessoas, a grande maioria não suporta ver suas convicções sendo colocadas à prova ou a prosperidade de quem não desfruta das mesmas opções culturais, religiosas, comportamentais, etc.
Por outro lado, o Brasil é reconhecido por não impedir, pelo menos na legislação, o ingresso de qualquer tipo de pessoa, independente de sua crença, cultura, comportamento e valores. É claro que há limites constitucionais, porém a livre expressão é algo que a lei protege.

Diferenças sexuais é e sempre será o grande tabu nas sociedades, não aceita-se facilmente opções diferenciadas da tradicional homem e mulher, aceita-se até muitos para um, porém o homossexualismo e a abstenção sexual são tidos como doença na grande maioria das vezes. Anualmente temos uma passeata representando esta opção sexual diferenciada, muitos apoiam, muitos condenam. O que temos é uma imposição de valores, causando ainda mais a divisão de uma sociedade e certamente sem bom final.

Temos também a diversidade da vida, tanto plantas quanto animais apresentam uma diversidade incrivelmente grande, porém dentro desta diversidade há um equilíbrio muito tênue, onde o desaparecimento de uma espécie pode causar todo um desequilíbrio no ecossistema local. Aprendi, quando criança, que se exterminássemos todos os ratos de uma mata, que está nas proximidades de nossa fazenda, teríamos sérios problemas com cobras, se eliminássemos as cobras, teríamos problemas com seus predadores naturais, o desequilíbrio certamente causaria a desintegração da mata e o fim de seu habitat.

Na lógica há uma diversidade de opções para a solução de um mesmo problema que podemos ver claramente a mente trabalhando para a obtenção de resultados. Existem diversas curiosidades matemáticas que tem resoluções de intermináveis formas distintas. Também existem algumas poucas proposições que não tem solução até o momento. A pouco tempo atrás, um matemático russo descobriu a solução de uma dessas proposições, recebeu um bom prêmio em dinheiro, porém o mesmo foi rejeitado, pois não acreditava que deveria receber por algo que devia ser compartilhado com a sociedade, uma lógica diferente do mundo ocidental.

Também vemos as possibilidades dentro de um sistema de informação.
Uma aplicação mundial, como a internet, por exemplo, tem a capacidade de ser executada nas mais diversas línguas e culturas. O Google está saindo da China por não concordar com as imposições sociais restritivas do governo chinês. Existem diversos exemplos de instituições que tentam se adequar às condições de outras sociedades e culturas, no site da Oracle, por exemplo, para você baixar um programa, você tem que fazer uma declaração de que não é terrorista e que não usará este programa para o mau.
A internet pode ser acessada de diversos tipos de aparelhos e com diversas possibilidades. Podemos ver um site sendo acessado de um celular, de uma televisão, de uma geladeira e até mesmo de um computador (quem diria)…
O grande problema desses diversos tipos de acesso é que o provedor/desenvolvedor nem sempre pensa que todas essas possibilidades serão utilizadas.
A grande maioria dos portais não suporta acesso por celular, suas páginas contém informações que não podem ser processadas por tal aparelho.
Os jornais não estão preparados para serem acessados por pessoas surdas, a navegação pela internet é extremamente complicada para os cegos, os idosos tem uma dificuldade a parte neste mundo tão rápido e dinâmico.

Vemos também a diversidade de aplicações que uma empresa pode empregar seus recursos.
Muitas empresas estão diversificando sua atuação em busca de incrementar sua participação neste mundo globalizado, podemos ver empresas como a empresa Friboi, maior processador de carnes do mundo, agora está investindo no ramo de papel e celulose.
A maior empresa de tecidos da América Latina, Vicunha, comprou a maior empresa siderúrgica do Brasil e tenta mante-la entre as maiores do Mundo.
Podemos facilmente encontrar diversas empresas que possuem bem forte em seus dicionários o termo diversidade.

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.