quinta-feira, 29 de março de 2012

Impressões da prova 70-461

Hoje de manhã fiz a prova 71-461: Querying Microsoft SQL Server 2012 (que por ser beta fica com o 71 ao invés do 70) e realmente gostei do que eu vi.

Antes de fazer a prova eu sempre dou uma olhada no site da prova (http://www.microsoft.com/learning/en/us/exam.aspx?ID=70-461) e reviso as habilidades que são cobradas (skills measured). Aconselho a todos que se balizem por isso para estudar, sempre é muito certeiro.

Falar de prova beta tem um ponto negativo, pois você não sabe se passou ou não, mas claro que tem ideia se foi bem.
Quando eu marquei a prova não esperava encontrar grande dificuldade por ser uma prova que eu considero básica (já fiz uma ou duas consultas no SQL Server), e efetivamente a prova seguiu a linha que eu estava esperando. 
Então vou deixo aqui algumas impressões para o próximo candidato...

  1. A prova tinha um pouco mais de cinquenta questões e sinceramente estava esperando mais um pouco, não sei porque estava com 75 na cabeça, e foi bem abaixo disso.
  2. A prova oficial deve ter menos questões, mas para esse tipo de prova eu acho que o melhor seria manter 50 questões, pois permite avaliar o candidato em mais tópicos.
  3. A prova não apresenta grande dificuldade para alguém que já trabalha com o T-SQL, mas não deixa de ter perguntas que bem legais e, como toda prova, perguntas para atestar se o candidato sabe o mínimo.
  4. Durante a prova eu notei algumas pegadinhas, como inverter a ordem natural em que uma instrução é utilizada pelos desenvolvedores ou cobrar do candidato qual a diferença entre UDT e UDDT. Na boa, a primeira até vai para ver se o candidato está atendo, mas a segundo eu acho ridículo, é mais importante o candidato saber como e quando usar algo do que decorar qual o exato nome de uma funcionalidade.
  5. A prova apresentou as tradicionais questões de múltipla escolha, múltiplas respostas e as questões onde você monta a ordem da resposta (gosto bastante). De novidade essa prova trouxe 3 questões seguidas onde as opções de resposta são as mesmas e o que muda é o enunciado, que também achei legal mas facilita um pouco, já que o candidato pode fazer comparações e as vezes corrigir um erro que cometeu na anterior.
  6. A prova ainda conta com questões que não exigem conhecimento de sintaxe ou detalhes de uma funcionalidade, se você vive nesse planeta deve conseguir responder, apenas basta marcar uma resposta (com outras opções esdrúxulas) e pronto. São essas questões que eu acho que deveriam desaparecer das provas da Microsoft.
  7. Outro alvo de minhas críticas são algumas questões mal escritas ou que podem haver duas respostas certas dependendo do tipo de dado (ex.: date vs datetime) que não é explicitado. OK, beta é beta, vamos ver se melhora. 
  8. Pela primeira vez eu gastei todo o tempo de comentário apontando alguns errinhos na prova, frases dúbias e outras coisas que eu não gostei. Nem tive tempo de comentar algumas questões que achei fantásticas e que acho importantíssimo serem tratadas.
  9. Espero que as outras provas sejam (bem) mais difíceis, e mesmo acreditando que as provas devem ser casca grossa, ter uma prova com um nível mais básico é fundamental para aqueles que estão começando sua jornada de certificações e a trabalhar com a tecnologia.

Assuntos técnicos

  1. Não existe um assunto específico que domina a prova, temos um pouco de cada assunto e tudo muito bem distribuído, então se você não sabe uma coisinha ou outra, não deve ficar muito prejudicado.
  2. Mesmo sendo uma prova de querying, vai ser falado sobre procedures, views, UDFs, triggers, etc. Então saiba sintaxe, limitações, como e quando utilizar.
  3. Construir selects básicos não fazem parte da prova. Mas algumas coisas mais elaboradas sim, como where + group by + having, joins, apply, pivot, ranking, etc.
  4. Insert, update, delete e merge vão aparecer na prova, mas novamente com uso mais elaborado, cláusula output, dependência entre outras tabelas, etc.
  5. Escolha de tipos de dados, manipulação de datetime, criação de constraints, uniqueidentifier vs. Identity vs. Sequence, também aparecem estão presentes.
  6. Novidades do SQL Server 2012 estão espalhadas pela prova e deviam representar cerca de 8 a 10 questões na minha prova. Dê uma olhada: OFFSET FETCH, THROW, SEQUENCE, IIF, TRY_PARSE, EOMONTH, funções analíticas, WITHIN GROUP e window functions.
  7. XML também está sempre presente, nenhuma construção muito elaborada com XQUERY (que pode ficar beeeemmm complexa), mais recuperação com FOR XML e suas diversas combinações. E ah, rolou uma questão bem puxada com XSD, update de XML e XPaths.
  8. Outros assuntos que pintaram por lá: colunas computadas, níveis de isolamento, locking hints, criação de índices, non-sargs, cursores, @@error, TRY CATCH, transações, entre outros.
  9. Ver uma questão onde existem mais de uma resposta “certa”, no enunciado citar “aquela com melhor desempenho” e exigir que o candidato saiba quando um índice pode ser “ignorado” pelo SQL Server, é realmente lindo. 
  10. Uma coisa que me deixou um pouco intrigado... eu respondi duas duas questões com base em considerações pesadas: uma sobre performance de data loading com minimally logged operations e outra sobre tempdb, version store e possíveis impactos. Acho que o candidato iniciante pode chutar uma melhor resposta sem saber exatamente os detalhes que justificam sua resposta, o que é ruim, então deixei um comentário que talvez essas questões precisariam de um enunciado melhor ou se estariam na prova certa... 

Resumindo o “falatório escrito”. Gostei muito da prova, acho que é uma bela porta de entrada para os novatos e uma prova que não vai causar dificuldade para os mais experientes, trabalhando no nivelamento correto e com alguns ajustes, eu considero uma prova que atinge bem seus objetivos.

Concordo demais com a Microsoft em parar com aquela sacanagem de: fez um prova vira MCTS, mais uma MCITP. Quer ser um profissional certificado em Data Plataform, então são CINCO provas de SQL Server 2012 (http://www.microsoft.com/learning/en/us/certification/cert-sql-server.aspx#tab2).
Essa foi a primeira prova beta, que venham as próximas...

PS: O Freccia fez outra prova beta hoje e já blogou. Quer saber mais sobre a 70-462? Aqui: http://marcosfreccia.wordpress.com/2012/03/29/dicas-para-a-prova-71-642/

Bons estudos!


****************************************
Aproveitando o excelente comentário do Wellington...

Entendo qual o ponto dele, vamos supor que você passou nas provas 461, 464 e 465, que dão a você o direito de ser um profissional de desenvolvimento com SQL Server 2012, mas na sua titulação não vai aparecer nada além de um MCP. 3 provas e nenhuma "certificação"?! Eu ainda acho isso correto.

Se você é um profissional de desenvolvimento provavelmente não vai ser só um cara que utiliza o SQL Server e o T-SQL, então o que eu acho que a Microsoft deve fazer é criar a certificação Microsoft Certifed Professional Developer with SQL Server, onde além das 3 provas de SQL Server você ainda teria que fazer pelo menos uma prova de fundamentals de .NET e a prova de acesso a dados (ADO.NET). Aí sim você tem o perfil de desenvolvedor na plataforma Microsoft e sabe de SQL Server e como acessá-lo.

Sei que pode complicar um pouco o modelo, mas acredito que a melhor maneira de refletir no currículo o perfil do profissional mantendo um alto grau de especialização, é através da composição de provas, como essa que eu citei. Lembro que no passado existiam algumas provas obrigatórias e algumas eletivas para você virar MCDBA ou MCSE, acho que esse é o melhor modelo. E não so isso, existia também MCSE + Messaging ou MCSE + Security (se não me falha a memória), que eram especializações para o MCSE.

Uma coisa que eu discordo é não haver uma prova de Windows Server em Data Plataform. Não poderia ser uma prova muito difícil com troubleshooting e design de infraestrutura, mas algo que verificasse se o candidato possui conceitos como básicos, como SO (memória, processadores, paging file), I/O + storage, networking essentials, etc.

Mas ainda não resolvemos o caso do profissional que fez as 3 provas, como ele fica?! Na verdade já está resolvido, no transcript vai aparecer que o profissional fez as provas, então se eu olho isso eu já sei imediatamente o mínimo que posso esperar (e cobrar) do indivíduo, claro que não fica bonito como um título, mas em termo dos conteúdos cobertos, a validade é a mesma.

E se o recrutador não consegue distinguir isso? Bom, aí o problema é outro...


Por fim acho que ainda não temos o melhor modelo, mas acredito que um mais exigente é melhor do que o anterior. Uma coisa que não sei como vai funcionar é essa renovação de 3 em 3 anos. Acho que ainda vamos assistir muitas mudanças e o que vai valer mesmo é o transcript do candidato com seu histórico.

****************************************

****************************************
Adendo 2 [04/04/2012]

Entendo a questão do mercado, infelizmente ele é muito burro (o termo correto seria rígido? ;-)) em certas coisas. Os braindumps sempre vão continuar existindo, mas aí o problema é outro, está no caráter do profissional. Acho louvável você não os utilizar e acredito que as melhores empresas vão saber reconhecer a diferença entre um profissional certificado "for real" e um babaca. De resto vou tentar ser otimista e acreditar que a humanidade vai melhorar no longo prazo.

Sob a ótica do perfil DBA, entre as cinco provas acho que está fora do que um DBA obrigatóriamente precisa saber é a prova 70-463 Implementing a Data Warehouse with Microsoft SQL Server 2012. Saber o SSIS eu acho que é valioso, mas não imprescindível, agora DQS, MDS, SSAS? Me parece mais uma jogada da Microsoft para tentar forçar o profissional a estudar mais outras tecnologias e quem sabe adotá-las, mas realmente não deveria ser uma prova obrigatória para um DBA conseguir uma titulação.

Acho que o melhor seria se a Microsoft definisse a certificação Data Plataform com 6 provas, colocasse uma prova básica de SO como obrigatória e deixasse uma prova eletiva com escolha entre: data warehouse, infra-estrutura/SO avançado e ADO.NET.

Rodrigo, curioso ou não, estou revisando o Windows Internals! Também já estou pensando em comprar a nova edição que está para sair e agora dividiram em 2 livros, ai ai ai...

****************************************
[]s
Luciano Caixeta Moreira - {Luti}
luciano.moreira@srnimbus.com.br
www.twitter.com/luticm
www.srnimbus.com.br

terça-feira, 27 de março de 2012

System Center Advisor – Introdução e Considerações

Quase dois meses atrás eu habilitei uma conta do trial do System Center Advisor – SCA por simplicidade (https://www.systemcenteradvisor.com/) - para dar uma olhada na cara deste produto. Vamos a alguns comentários rápidos sobre esta ferramenta...

Configuração
Com uma conta do LiveId você consegue um acesso ao portal do SCA rapidinho, lá têm as instruções para fazer o download dos instaladores. A configuração é bem simples, você precisa instalar agentes de coleta nas máquinas que estão rodando o SQL Server e um agente de gateway, responsável por pegar o que foi coletado e encaminhar para o serviço do SCA, que roda na nuvem.

O agente é interessante, pois usualmente servidores de banco de dados normalmente não possuem portas abertas para conexão com a Internet, então os agentes de comunicam e despacham os dados através do agente, que pode ficar em outra máquina com acesso à nuvem.

Durante a instalação dos agentes é necessário que exista um componente do System Center instalado (pré-requisito), se não houver ele mesmo instala o serviço. Caso você já utilize o System Center deverá somente verificar que o serviço “System Center Management” está rodando corretamente.

Interface de gerenciamento
A interface de gerenciamento do SCA é bem intuitiva e fácil de usar, é feita em Silverlight e mostra todos os detalhes dos servidores que estão sendo gerenciados. Leva um certo tempo para os agentes enviarem os dados para a Nuvem, pois a sincronização acontece de 12 em 12 horas, então o próprio SCA já diz para você olhar o resultado no dia seguinte.

O System Center Advisor
Vamos dar uma olhada na interface, obviamente por motivos de privacidade estou apagando das imagens todo e qualquer detalhe que aponte para os clientes onde testei o SCA, substituindo por nomes falsos de servidores.

 (Figura 01 – Painel principal do SCA)

Esse é o painel inicial do SCA. De cara ele mostra quais servidores possuem alertas críticos, warning e os sem alertas. Caso um servidor tenha esteja em duas severidades, aparece duplicado nos contadores. Além disso ele mostra informação de funcionamento dos agentes em “Server Status”.


(Figura 02 – Alertas críticos)



(Figura 03 – Avisos)


Na janela de alertas é possível filtrar por severidade, status (ativo ou fechado), classe (“SQL Database”, “SQL DB Engine” e “Windows Operating System”) ou data. Todos os campos são ordenáveis e você pode ver que um problema pode aparecer diversas vezes (ex.: banco de dados com recovery model full e sem backup de log).

Quando você selecionar um alerta a descrição do problema vai aparecer e a solução é explicada. Quando existe um KB da Microsoft a referência já aparece para você ler mais a respeito. Então além de descobrirmos problemas é uma interessante fonte de estudo!
Você sabe de onde vêm essas definições do SCA? Vêm do time de suporte da Microsoft (http://blogs.msdn.com/b/psssql/)! Isso mesmo, o Bob Ward e companheiros de equipe são os responsáveis por escrever e definir quais regras o SCA vai validar, o que eu considero uma excelente escolha. Nada melhor do que quem respira problemas no dia-a-dia criar as regras para nos avisar de potenciais problemas.

Outro recuso muito legal do SCA é o gerenciamento de alertas. Vamos supor que você já sabe de um problema (ex.: collation do banco diferente da model) e não vai resolver esse problema agora. Qual o objetivo de manter um alerta lá no SCA que pode te distrair de problemas mais importantes? Então você pode pedir para ignorar o alerta e ainda definir o escopo, somente o banco de dados, este servidor ou todos os servidores, habilitando quando achar necessário.

 (Figura 04 – Gerenciando os alertas)

Quando você resolver algum problema, seja mudando uma configuração ou tomando uma ação corretiva como manter um backup de log, em até 12 horas quando o SCA receber uma nova leva de dados do agente vai reportar o problema como resolvido.


(Figura 05 – Configuração do servidor)

Também é possível visualizar uma série de configurações do Windows, SQL Server e banco de dados, bem como mudanças de configuração que aconteceram. Se você alterou a configuração “CLR Enabled”, a alteração vai aparecer no histórico de alterações do seu servidor.

(Figura 06 – Agentes)

A outra interface (figura 06) diz respeito à configuração dos agentes de coleta e gateway, indicando quais servidores o SCA está analisando. A última janela do SCA é para configuração da conta, tipo de acesso (trial ou completo) e também permitir que outros LiveIds possam acessar o SCA, seja com permissão de usuário comum ou administrador.

Considerações

Eu gostei bastante do System Center Advisor e é uma ferramenta que eu adotaria para meus clientes, e dentro da imensa quantidade de detalhes que nós DBAs temos que nos preocupar no dia-a-dia, uma ferramenta que nos aponta potenciais problemas é mais do que bem vinda. Vale ressaltar que o SCA não vai resolver todos os seus problemas, muito longe disso, mais é uma importante adição para nosso cinto de utilidades.

Claro que nem tudo são flores e, só para variar, tenho minhas críticas. Antes de escrevê-las aqui acabei por trocar alguns e-mails com o time de produto responsável pelo SCA, conversando diretamente com o Paul e Timothy.

1. Para você utilizar o System Center Advisor no seu ambiente é necessário que a empresa faça parte do programa de Software Assurance. Isso mesmo, não existe outra forma de contratação.
        a. Isso é um grande impeditivo para a adoção do SCA. Eu gostaria de poder utilizar esta nos meus clientes, mesmo comigo pagando uma mensalidade pelo serviço ou por servidora analisado.
        b. No passado tive a oportunidade de estar em Redmond conversando com o time de produto e meu “voto” foi para um modelo de pagamento diferente do adotado. Segundo eles outras maneiras estão em estudo, mas nada certo e sabe lá se e quando isso pode mudar.
        c. Não existe nada no SCA que valide a utilização deste em um ambiente sem Software Assurance, o que você está sujeito é a fiscalização da Microsoft. No meu caso não faz o menor sentido de ficar ilegal e correr esse risco em ambiente de clientes, então estou num beco sem saída.

2. Hoje o SCA conta com exatamente 104 regras de validação, número que sinceramente, achei baixo.
        a. Não existe possibilidade de você criar sua própria regra, que para o público geral é uma boa decisão. 
        b. Analisando as regras atuais eu poderia adicionar algumas regras de melhores práticas que eu levo comigo, mas como não temos essa flexibilidade, fica com as validações que fazemos na Nimbus.
        c. Esse é realmente o número de regras total e não existe diferença entre o trial e a versão full. Não sei qual a cadência de atualização de regras (3 em 3 meses? Quando alguém do suporte escrever uma regra nova?), então temos que aguardar o time de suporte lançar as próximas regras.

Espero que esse artigo sirva para você ter uma visão geral do SCA e que você tenha um ambiente dentro dos modelos de licenciamento para usar o produto. É leve, simples e agrega valor. Agora é esperar para que a Microsoft traga boas novidades.

Abraços e bom monitoramento!

[]s
Luciano Caixeta Moreira - {Luti}
luciano.moreira@srnimbus.com.br
www.twitter.com/luticm
www.srnimbus.com.br

segunda-feira, 26 de março de 2012

Kindle e o hábito da leitura

Domingo dia 17/03 eu comprei meu primeiro eBook para testar o novo brinquedinho, o Kindle Touch, e-Reader da Amazon. Durante alguns dias eu analisei se compraria um iPad e acabei desistindo da ideia, eu não gosto de ficar lendo livros em telas luminosas e o não vou usar o iPad no dia-a-dia, então acabei por optar por um Kindle.
No sábado, dia 24/03 eu acabei de ler meu primeiro livro no Kindle, o tão falado “The Hunger Games”, que achei fantástico por sinal. Então vamos quebra esse post em duas partes...


Kindle Touch



Acredito que acertei em cheio na minha compra, um dos meus hobbies é ler e, sinceramente tenho lido pouco, tanto em português como em inglês (acho que em 2011 eu somente li uns cinco livros não técnicos). 
Junto com o Kindle eu comprei uma capinha de couro com luz, que se alimenta diretamente da bateria do Kindle. Abaixo estão algumas fotos do distinto:





A leitura no Kindle é fantástica, a facilidade do ajuste de fonte e do contraste deixa até melhor do que ler um livro de verdade. A vista não cansa nada e a luz embutida (última foto) me permite ler no mais completo escuro sem o menor problema, sem incomodar minha mulher e bebê que estão dormindo ao meu lado (fator muito importante!).

Além da facilidade de uso, outro recurso muito legal é o dicionário integrado. Basta pressionar a palavra por dois segundos que a definição é aberta. Para quem gosta de aprender novas palavras e aprimorar o inglês, um prato cheio. Sem contar com o text-to-speech, que permite a narração do texto enquanto você vai acompanhando na tela.

Antes de comprar eu li algumas pessoas dizendo que o touch era ruim, pois passava as páginas sem querer, não sabiam onde estavam, etc. Na boa, com um mínimo de coordenação motora e você sai do outro lado sem problema.

Na hora em que acabei de ler o primeiro livro da trilogia me deu uma vontade de continuar lendo. Aí foi lindo, o Kindle já me sugestionou a compra de outros livros e claro que a continuação “Catching Fire” estava na lista. Cliquei no link, fui para a página do livro, cliquei em comprar - paguei US$ 7.70 que virá no meu cartão - e um minuto depois já estava lendo o próximo livro da Suzanne Collins. Simplesmente fantástico.


PDFs e livros técnicos


Eu ainda NÃO comprei um livro técnico para ler no Kindle, mas já havia ouvido comentários ruins. Pensei em comprar um que eu quero ler (“Clean Code”) para ver como fica, mas de cara nos comentários já tinha gente disparando contra o Kindle. O problema fica por conta do código fonte e alguma imagens que existe no livro, talvez por não ter sido corretamente preparado para o kindle, não sei.

Pesquisei mais um pouco e como nada me interessa no momento (estou com uns 50 para ler aqui em casa), resolvi não queimar 20 ou 30 dólares só para matar minha curiosidade. Assim que eu descobrir se presta, coloco aqui.

O Kindle também permite colocar alguns PDFs para leitura, coloquei e funciona razoavelmente bem. Não têm a facilidade de virar o PDF de acordo com a orientação do aparelho e controlar o zoom é um pouco chato, principalmente pela sensibilidade do toque, e por ter que voltar ao zoom original para passar a página, tendo que aumentar novamente na próxima. Revistas com duas colunas já fica melhor, pois a rolagem é simplificada mesmo com zoom, então para ler a SQL Server Magazine (USA) ficou bacana.

Vale ressaltar que meu objetivo era ler livros não técnicos, e para isso eu dou nota 10 para o Kindle touche e a capa. Gosta muito de ler? O Kindle se demonstrou um excelente companheiro.

Leitura

Cada um faz o que bem entende da vida e escolhe seus hobbies, mas minha sugestão é que todo mundo leia um pouco, alguns livros por ano, três ou quatro pelo menos. O motivo: hoje temos profissionais quase analfabetos.


Reconheço... Eu sou uma lástima com o Português, sempre gostei de matemática e física, no vestibular comemorei quando consegui ficar um pouco acima da média dos outros candidatos na prova de Português, mas mesmo com essa falha de formação, em geral eu acho que escrevo razoavelmente bem.

Minha crítica está quando os profissionais têm que escrever algum texto, relatório ou até um e-mail, e normalmente o resultado é lastimável. O corretor ortográfico (de grande valia) acaba por nos deixar mais acomodados e com o tempo vamos acostumando a manter um vocabulário limitado e pobre.  Até em revistas técnicas vemos esse problema, o autor pode ter uma boa ideia, mas a forma de se expressar é ruim.

E não acho que isso vale apenas para quando vamos escrever não, acho que isso tem impacto direto também quando o profissional está fazendo uma apresentação, discutindo uma nova ideia ou conversando com outros profissionais.
Quer dizer que o bom profissional tem que obrigatoriamente ler um romance ou um policial?! Longe disso... Mas quem saber ler um pouco mais, além de ser divertido, também não vai te fazer um profissional mais completo.

Quer começar? Nesse ano eu li o primeiro livro da Guerra dos Tronos, as crônicas do gelo e do fogo, e o The Hunger Games (inclusive o filme saiu na semana passada: http://www.thehungergamesmovie.com/). No momento estou lendo o segundo livro da guerra dos tronos e também a continuação dos jogos vorazes, e gostando bastante de ambos. 

Depois vou abrir páginas neste blog, uma dedicada à leitura e outra para filmes.

PS: você não precisa ser um leitor maníaco como o Paul Randall, se você acha que lê pouco (ou muito), veja este post: http://sqlskills.com/BLOGS/PAUL/post/2011-the-year-in-books.aspx.
PS2: Na semana em que li o livro no Kindle, o Paul Randall leu toda a trilogia e mais um. Como esse cara arranja esse tempo todo?

Abraços e boa leitura!

[]s
Luciano Caixeta Moreira - {Luti}
luciano.moreira@srnimbus.com.br
www.twitter.com/luticm
www.srnimbus.com.br

sexta-feira, 23 de março de 2012

Provas betas do SQL Server 2012 e o bom profissional

Para quem não viu, saiu ontem no blog do born to learn os promocodes para as provas betas de SQL Server 2012, se você quer correr estudar um pouco e tentar se certificar antes da maioria, é uma excelente oportunidade.

http://borntolearn.mslearn.net/btl/b/weblog/archive/2012/03/22/register-for-sql-server-2012-beta-exams.aspx

A prova é mais longa e o resultado não sai na hora, só depois de aproximadamente 3 meses, quando sai a prova definitiva. Outro ponto positivo é o custo, zero, então é uma boa economia se comparado aos US$ 100,00.

Eu me registrei usando outro promocode que não os informados, se tiver problema com os informados, leia o comentário da Krista.
Para quem estiver procurando a prova, as provas quando beta começam por 71-xxx. Somente quando são definitivas receberão o 70-xxx.


O BOM PROFISSIONAL

Sem entrar na discussão da validade das certificações e se um profissional certificado é bom ou não.

Acredito que o profissional antenado, que corre atrás das novidades e estuda bastante, já têm um diferencial em relação ao mercado. E nem sempre é no conhecimento técnico, mas sim no perfil da pessoa.

Recentemente recebi alguns e-mails de pessoas me agradecendo por ajudá-las, e é recorrente eu ser informado de profissionais que melhoraram sua colocação depois de um treinamento nosso.

As duas boas notícias dessa semana foram: um conseguiu uma nova consultoria (já passou em muitas provas de SQL Server) e a bela frase de hoje foi... "O segundo é agradecê-lo, graças ao curso eu consegui uma nova posição no mercado, na Microsoft como XXX trabalhando junto com os XXXs.  Não teria conseguido sem vc e o curso."

Em primeiro lugar, gostaria de ressaltar que esses profissionais com certeza chegariam onde estão hoje, de uma forma ou outra. São pessoas estudiosas e que se dedicam para serem melhores profissionais, e são eles que no futuro devem ter os maiores salários e satisfação profissional.

Mas e o Luti e a Nimbus nesse meio?! Eu acredito que podemos ser apenas aceleradores e guias nesse caminho. Aprendi da maneira difícil, tentando incentivar alunos sem interesse, que um indivíduo que não quer se dedicar e procura atalhos falsos, com a ajuda do problemático "jeitinho brasileiro", nunca vão chegar a ser um bom profissional, mesmo que eu mostre para ele todos os caminhos possíveis e as lindas recompensas no fim da jornada.

No fim são esses pequenos reconhecimento do esforço, que investimos na qualidade da empresa e na comunidade técnica, que não nos faz desistir e nem jogar tudo para o alto quando uma avalanche de problemas e dúvidas parecem te soterrar.

[]s
Luciano Caixeta Moreira - {Luti}
luciano.moreira@srnimbus.com.br
www.twitter.com/luticm
www.srnimbus.com.br

terça-feira, 20 de março de 2012

Análise do livro - Complete Showplan Operators

Agora pouco acabei de ler o livro do Fabiano Amorim, o Complete Showplan Operators, que você pode fazer download no site do SimpleTalk.
Eu tive o prazer de ler um livro impresso que o Fabiano me presenteou, ainda bem, odeio ler PDFs no computador.



"AAAAAAAAHHHHHHHH LUTI, 
não vale fazer análise de um livro escrito por gente da sua empresa". Vale, vale muito, quem já trabalhou comigo sabe que sou bem crítico.

Pontos positivos
  • O livro vai direto ao ponto, sem rodeios, se o leitor tiver dúvidas em assuntos relacionados, se vira.
  • Têm ótimas referências para o leitor que quer aprofundar em outros temas, incluindo  profissionais que TODO amante do SQL Server deve conhecer.
  • Mesmo não deixando explícito pelo autor, o livro trás algumas dicas de como analisar o desempenho da consultas, dicas de otimização e de recursos avançados (e mais obscuros) do SQL Server, como o DBCC RULEOFF.
  • O livro brilha nos capítulos dos spools e no "split, sort, colapse". 
Pontos negativos
  • Achei que a falta de alguns operadores dão uma quebra no livro, já que temos key lookup, mostre o RID lookup. O mesmo vai para o merge join, já que citou o nested loop e hash join, traga-os para o livro.
  • Na versão impressa em algumas figuras está quase impossível de identificar os operadores, ficaram muito pequenas na impressão.
  • Os exemplos trazem campos e tabelas com nomes em português, isso me incomodou bastante. Mesmo o Fabiano explicando que Order = Pedido, Cliente = Customer, nas consultas outros campos aparecem. Eu não gostaria de ler um livro em inglês com scripts em francês, então mesmo sendo minha língua nativa, não gostei.
  • O título engana, estou esperando o Complete Showplan Operators - Part II! Com muitos outros operadores e detalhes do query optimizer! :-)
Por fim eu acho que esse é um dos livros que deve ser lido por todo profissional que trabalha com o SQL Server, mostra muitos detalhes que passam desapercebidos no dia-a-dia e deixa muitos ganchos de estudo em outros assuntos para o leitor.
A escrita é leve e a leitura é gostosa e rápida, então o tempo gasto vai ser bem recompensado. 
Estava lendo o livro sem me atentar aos capítulos e quando olhei o título "And finally" fiquei puto. Já acabou?! Que venha o próximo...

Boa leitura!

[]s
Luciano Caixeta Moreira - {Luti}
luciano.moreira@srnimbus.com.br
www.twitter.com/luticm
www.srnimbus.com.br

Novo integrante da família

No dia 13/03, exatamente 01:04, nasceu Rafael, o mais novo integrante da nossa família.
A emoção é igual a do primeiro filho, com a diferença que dessa vez já estamos calejados e tudo é mais simples.


Rafa algumas horas depois do parto


Bernardo testando a resistência do irmão

A família passa bem, o Rafa é muito tranquilo e se tudo der certo vai ser menos nervoso que o pai, e claro, vai jogar bola comigo e com o Bernardo.
É muito gostoso ter outro bebezão em casa, espero que todos possam passar por essa experiência e tomara que consigam conciliar uma vida profissional de sucesso com uma feliz vida familiar.

E que todos colaborem para um mundo melhor, estamos precisando, bastante...

[]s
Luciano Caixeta Moreira - {Luti}
luciano.moreira@srnimbus.com.br
www.twitter.com/luticm
www.srnimbus.com.br

sexta-feira, 9 de março de 2012

Análise do livro – SQL Antipatterns

Acabei de ler o livro “SQL Antipatterns: Avoiding the Pitfalls of Database Programming” (http://www.amazon.com/SQL-Antipatterns-Programming-Pragmatic-Programmers/dp/1934356557/ref=cm_cr_pr_product_top) e deixo aqui meus comentários...

O livro não aborda uma tecnologia em especial, ele cita diversos recursos do SQL Server, Oracle, DB2, mysql, SQLite e Postgre. Os exemplos são em MySql e PHP, mas simples e não impactam em nada para quem não possui conhecimento destes.

Eu comecei um pouco cético em relação ao livro, principalmente porque não considero alguns antipatterns citados no início e algumas alternativas eram piores do que o antipattern que o autor cita, eu chamaria de brutal antipatterns. Nesse momento o livro tinha no máximo duas ou três estrelas, mas a coisa melhora...

Na parte I (Logical Database Design) o livro começa a mostrar seu valor, abordando cenários divertidos, como Entity-Attribute-Value (EAV), Polymorphic Attributes e metadata tribbles. Alguns anti-padrões são resolvidos com uma modelagem básica e normalização.

Nas partes II (physical database design) e III (query anti-patterns) são onde encontramos os anti-patterns mais básicos e diversas vezes pensei: mas isso é ridículo, um livro nem precisa falar que isso é ruim! Na verdade precisa sim, mesmo havendo cenários com itens grotescos, são anti-padrões, já vimos eles por aí e vamos continuar vendo, então devem ser registrados.
Depois que coloquei o livro contra essa ótica de que anti-pattern é um anti-pattern, a leitura foi mais agradável e diversas vezes o autor consegue ser engraçado, o que faz o livro fluir rapidamente.

A parte IV (application development) fecha o livro com maestria e possui três capítulos que valem o investimento: See no evil, diplomatic Immunity e Magic Beans.
O diplomatic immunity ressalta um problema grave, os desenvolvedores aplicam melhores práticas mas quando chegam no código SQL acham que não é necessário, uma imunidade diplomática. :-) Testes unitários? Controle de versão? Documentação? Comentários? Qual a razão disso? Uma verdade que precisa ser combatida.

Deixei meu primeiro comentário na Amazon (4 estrelas) e concluo:

- Discordo do autor em alguns pontos ao longo do livro, então não aconselho a levar como verdade extrema tudo o que está escrito lá, mas é interessante para uma reflexão de implementações que você já fez ou já encontrou.
- Os iniciantes no mundo SQL podem tirar lições valiosas desse livro, para eles a leitura será um pouco mais lenta.
- Os profissionais mais experientes vão achar alguns capítulos bem simplórios, mas podem tirar mais valor de outros capítulos mais densos.
- O autor cita muitas outras referências que merecem uma leitura, como o fantástico Patterns of Enterprise Application Architecture (PEAA) do Martin Fowler, então ainda deixa gancho para continuar seus estudos.

Não acho que é um livro que você deva sair correndo e comprar, mas é uma leitura rápida e agradável, que pode agregar valor para o profissional e evitar que este cometa alguns erros que podem custar caro.

No momento estou trabalhando em um novo treinamento “Arquitetura de dados e modelagem avançada” e com certeza esse livro vai ajudar a agregar ainda mais valor a este treinamento.

Happy Reading...

[]s
Luciano Caixeta Moreira - {Luti}
luciano.moreira@srnimbus.com.br
www.twitter.com/luticm
www.srnimbus.com.br

quinta-feira, 8 de março de 2012

Carreira com o SQL Server

Prefere ler o PDF?



Aproveitando o lançamento do SQL Server 2012 ontem, um artigo sobre carreira com o SQL Server...

É recorrente me perguntam sobre carreira, usualmente tocando o SQL Server, e hoje volto a escrever um pouco sobre o assunto, aproveitando os e-mails do Artur e Daniel que me pediram alguns conselhos. Além dos descrito abaixo, um post que escrevi em 2008 continua relevante: http://blogs.msdn.com/b/luti/archive/2008/07/21/mercado-em-alta-faltam-profissionais-problemas-na-forma-o.aspx.

O mercado de TI

A Tecnologia da Informação (TI) nunca precisou tanto de profissionais, claro que todos querem os melhor qualificados, mas a procura é por profissionais. Quer uma comprovação? Segue estudo da SOFTEX sobre carência de profissionais de TI no Brasil:

Software e Serviço em TI - A Indústria Brasileira em Perspectiva. Softex, 2009 (http://publicacao.observatorio.softex.br/_publicacoes/)

O gráfico não quebra em tipos de profissionais ou áreas, mas 140.000 de déficit em 2014 é um número significativo. Então vou usar uma classificação que carrego comigo dos tipos de profissionais (usando como referência a pirâmide abaixo), e note que ninguém pula etapas da pirâmide, é uma jornada que parte da base. 



  • Casos extremos: são as pessoas totalmente fora da curva, além de uma base científica muito forte, demonstram experiência e um conhecimento que chega a assustar. Você fica se perguntando se esse indivíduo é realmente desse planeta, é o Messi da TI.
  •     Na minha rede dentro do Brasil, acho que consideraria menos de 10 pessoas que estão nesse patamar.
  • Profissionais indispensáveis: Ok, ok, ok, sei que ninguém é insubstituível, mas sabe aquele profissional que se sair da empresa esta vai sentir muita falta e no médio prazo sua ausência pode até trazer prejuízo financeiro?
  •     Especialista: é aquele que conhece muito sobre um determinado produto e vai resolver os maiores problemas.
  •     Generalista: conhece de muitos produtos e acumula experiência para tomar as decisões mais críticas do negócio.
  •     Está em um nível de arquitetura, acredito que exige pelo menos 8/10 anos de profissão e sabe aliar TI com negócio. É uma referência dentro da empresa.
  •         Não quero entrar no debate filosófico do que é um arquiteto de software, respeito DEMAIS quem é um arquiteto de verdade.
  • Bons profissionais: são aqueles que vão liderar tecnicamente pequenos times, estão antenados com as novas tecnologias, estudam com frequência, querem inovar e evoluir na carreira.
  • Profissionais: aqui temos a massa trabalhadora, que sustenta a pirâmide, são estudantes que estão saindo das faculdades, pessoas que ainda vão subir, ou têm menos ambição profissional, não querem passar noites estudando e gostam de rotina e trabalho controlado.
***
Respondendo ao comentário do Flávio...

Obrigado pelo elogio, mas infelizmente hoje na Nimbus não considero termos nenhum profissional dentro dos "casos extremos", quem sabe no futuro se continuarmos melhorando.
Andei pensando na contagem desses profissionais, acho que vou reduzir o número para 5 ao invés de 10. :-)
***

Não me entendam errado aqui, você pode ser plenamente feliz em qualquer nível da pirâmide, porque ter um salário razoável e uma vida mais tranquila pode ser uma opção bem atrativa. Em qualquer lugar vamos precisar de profissionais de diversos níveis, e usualmente no topo estão os maiores salários, junto com as maiores dores de cabeça, complexidade e desafios.
No passado em um dia de muito estresse eu cheguei a pensar, como seria minha vida se eu me contentasse com menos “aventuras técnicas”? A ideia da tranquilidade me pareceu bem atrativa, mas alguns segundos depois meu lado geek me deu um tapa na cara e eu acordei...

O mercado SQL Server

Então vamos ao SQL Server. Bancos de dados têm uma característica interessante, você está sempre tocando outras áreas, seja a parte de rede, storage ou aplicação, então existem diversas especialidades para o profissional que pode atuar mais em uma frente ou outra. 
Em relação ao mercado mundial eu não busquei nenhum estudo recente, mas usualmente temos três players que dominam 2/3 do mercado, Oracle, IBM e SQL Server, nessa ordem de market share. 

O que vejo para o SQL Server no Brasil. O produto historicamente sempre foi tratado como banco para volumes pequenos de dados, não precisa de DBA e qualquer um instala (next > next > finish), o que não reflete nem de longe a realidade (isso já faz uns 12 anos, ok?!). Mas velhos hábitos e mitos são difíceis de morrer.

  •     Temos o SQL Server como um produto robusto que pode atender grandes volumes de dados (sem frescura de GBs, estamos falando de TBs e mais TBs) e ao negócio, sem comprometer escalabilidade, disponibilidade ou desempenho.
  •         Hoje a diferença entre os competidores está em detalhes, sempre existe item melhores em cada um (o que é ótimo!), e que devem ser analisados pelo negócio.
  •     Os sistemas pequenos cresceram para a casa dos X00 GBs e precisam de cuidado profissional.
  •         Gerenciar 10 GB é moleza e o desempenho costuma ser aceitável, então qualquer mané da conta do recado.
  •     Instâncias e bancos de dados estão espalhados em todo lugar que precisam ser organizadas e gerenciadas.
  •     Temos uma carência terrível de bons profissionais, DBAs por acidente estão em todo lugar.
  •         Conduzi diversas entrevistas e o resultado foi medonho, 10 anos de experiência como DBA e não sabe a diferença entre um índice cluster e um não-cluster?
  •         Partimos para entrevistar DBAs Oracle que poderiam se capacitar para trabalhar SQL Server, o resultado também foi horrível, o que indica que é um problema de todo o mercado.
Resultado: vagas e mais vagas abertas para trabalhar com SQL Server. A própria Microsoft costuma ficar com vagas de engenheiros de suporte SQL Server aberta por meses, sem um candidato qualificado aparecer por lá.

Os dados corporativos

Faz anos que BI e segurança estão na lista de maiores investimento das empresas, segundo o Gartner, se houver perda de dados o caos é generalizado e dependendo da perda, as empresas costumam falir (o número é assustador). As empresas sempre falam “os dados são nosso maior bem corporativo”. Verdade, pena que ninguém quer investir nisso e depois podem ficar fora do negócio.
Nesse ponto acho que todos somos “culpados”, principalmente no Brasil. Diversas vezes acho que encaramos alguns problemas levianamente, deixando convites para o desastre e caos.

A complexidade dos negócios, sistemas e o volume dos dados vêm aumentando alarmantemente, e quem vai ter que resolver esse problema são os profissionais dos dois níveis superiores da pirâmide, onde existe a maior carência.

Empresas vs. Funcionários

Você não é indispensável, sua empresa pode até dizer que “as pessoas são o maior bem da empresa” (junto com os dados), mas na hora “H” a corda arrebenta para o lado mais fraco, é novamente o “vs” enquanto as empresas dizem ser – e honrar - o “&”. 
Gerenciar pessoas é uma tarefa árdua, ainda mais profissionais de TI, alguns dos problemas:

  •     Empresas não querem qualificar seus funcionários, às vezes com medo de perder o profissional.
  •         “E se treinarmos o funcionário e ele sair da empresa?”
  •         “E se não treinarmos e ele resolve ficar?”
  •     Retenção de talentos: em um mercado aquecido é complicado manter os seus melhores funcionários.
  •         Prostituição: característica em alta no mercado, quem pagar mais leva. Só acho que gera insatisfação de ambos os lados e traz mais caos ao mercado.
  •     Recebimentos não proporcionais: acho que hoje as empresas estão pagando mais do que a maioria dos funcionários merecem. 
  •         Temos muita gente sem qualificação que conseguiu uma vaga por desespero da empresa, ganhando mais do que é justificável.

Uma curiosidade que aconteceu ontem. Estou terminando meu MBA executivo e estamos em um business game, que é um simulador de negócio, no estilo do desafio Sebrae. Ontem discutindo a estratégia para a próxima rodada do jogo uma amiga comentou “Olha lá, gastando muito dinheiro com treinamento, aposto que é de TI, nunca vi povinho para gostar de treinamento!”.
Essa impressão que uma gestora tem de TI me marcou. Na nossa área as coisas mudam muito rapidamente, provavelmente mais rápido que qualquer outra disciplina, e essa necessidade de treinamento verdadeira muitas vezes pode parecer supérflua para os gestores. Será que nós e nossos gerentes  não estamos falhando em demonstrar o dinamismo da área? 
No fim eu rolei de rir, ainda comentei que uma das frentes da Nimbus é de treinamento, mas acabamos por manter um gasto maior de treinamento para minimizar o turnover... deu certo.

Especialista vs. Generalista

Acredito que no Brasil hoje temos uma maior valorização do generalista, quadro que aos poucos acredito que deve mudar, não desmerecendo a pessoa que têm uma visão ampla, mas acho que a carreira em Y começa a chegar por aqui. 
Antigamente depois de X anos a única saída para um técnico era virar gerente ou se contentar com um salário mais baixo. Ridículo, e por isso hoje temos gerentes que não gerenciam, atrapalham as equipes, minam a confiança do cliente e colaboram com um ambiente ruim de trabalho.
Salários mais altos para técnicos que estão chegando ao topo da pirâmide estão aparecendo, outro dia um cliente comentou que na sua empresa o DBA Sênior, muito experiente e com tempo da empresa pode ganhar R$ 18.000,00 de salário base. Alguns ficaram impressionados, eu não, nada mais justo e apropriado para este cliente e profissional.

Soluções para este caos: não trago nenhuma.
Dicas para o profissional: 
  • Dinheiro não é tudo, mas é importante. 
  • Escolha um lugar que tenha uma cultura que você goste e se identifique. 
  • Sua empresa não investe no funcionário? Procure outra.
  • Avalie se o que sua empresa te paga é mais do que merece. Se sim, seja HONESTO e procure melhorar.
  • Seja auto ditada. Estude sozinho e entenda que são poucas pessoas dispostas a te ajudar.
  • Aprenda inglês, na nossa área é imprescindível.


Destaco: “Insubordination -- This is a tricky one. Good IT pros are not anti-bureaucracy, as many observers think. They are anti-stupidity. The difference is both subjective and subtle.”.

Trabalhando com SQL Server

Então vem a pergunta, e como eu começo a trabalhar com o SQL Server? Ninguém que abre uma vaga como DBA vai contratar alguém com zero de experiência, o que é um problema, dado que são raros termos cursos decentes de banco de dados (e produtos específicos) na formação acadêmica.
Mesmo não contratando sem experiência as empresas são experts em criar DBAs acidentais, também sem experiência como DBA, que são aqueles profissionais que possuem uma maior intimidade com o banco de dados e de repente... VOCÊ É UM DBA! Que beleza.

Muitos pregam que você só vai estudar uma tecnologia depois que cair em um projeto onde essa está sendo utilizada, e infelizmente é verdade na maioria das vezes, o que não significa que você não possa direcionar sua carreira.
No meu caso, eu fiz treinamentos, estudei livros e mais livros, fiz minhas provinhas de certificação (mesmo com muitos picaretas por aí ainda têm alguma validade) e fui tentando dentro dos projetos que participava me aproximar do SQL Server. Deu certo.
Com o tempo o profissional vai escolhendo as áreas em que pretende se especializar, relacionadas ao SQL Server. Isso só o tempo e suas preferências vão dizer.

Certa vez falando sobre trabalho alguém comentou que eu dei sorte na minha carreira por estar na Microsoft (na época). Sorte? Está de brincadeira? Passei anos estudando, trabalhando 12 horas por dia, dando aula, dormindo pouco, para alguém me falar que eu DEI SORTE?

É mais fácil colocar a culpa nos outros e na falta de sorte do que construir uma carreira...


***
Respondendo ao comentário do Freecia...

Primeiramente vou falar de grandes empresas, principalmente multinacionais, melhor se for de TI. Acho que TODO profissional deveria ter como objetivo na carreira passar uma temporada da vida trabalhando para uma empresa do porte da Microsoft, Oracle, IBM, Google, desejo que eu não tinha quando era mais jovem. Quando apareceu a oportunidade da MS eu fiquei na dúvida, pois tinha acabado de abrir minha empresa, mas resolvi tentar, entrei e fechei a empresa, não poderia ter tomado melhor decisão na minha vida.
Dentro da Microsoft tive a oportunidade de aprender muito, ver como funciona uma empresa global, ter contato com diversas culturas e diversos profissionais de altíssima qualidade, o que normalmente não se encontra em qualquer empresa. Trabalhei em duas áreas diferentes em duas cidades distintas com papéis bem diferentes, então pude notar os pontos fortes da empresa, os vícios e seus problemas (todas terão, não se iluda), mas acho que cresci profissionalmente 12 anos em menos de 4.
Acho que outras empresas de grande porte em que TI seja área meio irão te dar uma experiência muito bacana, mas acredito que o ritmo de MS ou Google e a aura que gira em torno da empresa é diferente.

Agora PFE – Premier Field Engineer
Foi uma experiência que recomendo para todos, mas saiba onde você está se metendo. Você estará com uma equipe muito bem qualificada, focado em uma tecnologia e respirando problemas diariamente. Provavelmente vai enfrentar casos onde CXOs de grandes empresas estarão no seu cangote perguntando se o problema foi resolvido (sem pressão! :-)) e terá que viajar, talvez muito.
Curiosamente eu entrei para o time de PFE sem ter atuado como suporte, nunca fui suporte per se, tinha passado de estagiário -> desenvolvedor -> consultor/instrutor quando entrei na Microsoft, e sinceramente, acho que pouca coisa vai preparar você para ser um engenheiro de suporte na MS, Oracle ou IBM. É mais importante ter um background técnico e acadêmico, conhecer a fundo o produto e ter uma abordagem estruturada para resolução de problemas, esse candidato é o que a área precisa.

Pontos positivos: têm que aprender se virar; aprende a fundo uma tecnologia; contato com equipes de suporte e fila de escalação, podendo chegar até o Bob Ward; contato com muitos clientes; 
Pontos negativos: tudo na Microsoft gira rápido, vida de PFE parece 24x7 para cada indivíduo (mesmo!); Muitas viagens (pode incomodar um pouco a família); Menor contato com o escritório (têm gente que faz uma carreira mais rápida no networking);

Em todas essas empresas grandes usualmente o salário é bem compatível com o mercado, então é um investimento de retorno.
Bottom line: tenha como objetivo de carreira trabalhar em uma grande empresa, você vai aprender melhor a olhar para o negócio, entender as pessoas e sobreviver melhor nas próximas empresas.

Sair da Microsoft não foi fácil, pelo contrário, foi a decisão mais difícil que tomei na minha vida. Sinto falta? Claro, dá saudade do pessoal, da empresa, das aventuras de PFE e DE (Developer Evangelist), mas felizmente ainda não me arrependi do novo caminho que segui.
***


Conclusão

Acho que existe muito espaço para profissionais de TI, e claro, de SQL Server. Acho que os salários são bem atrativos e minha aposta é que profissionais que trabalham próximos aos dados de uma empresa serão ainda mais valorizados nos próximos anos, inclusive já está bem popular uma profissão recente, o Data Scientist.

O mais complicado é que nem sempre é simples se tornar um DBA e as vagas se apresentam em menor quantidade que as de desenvolvedores, por exemplo. 
Esse artigo não é um puxão de orelha nem um desabafo, pelo contrário, ultimamente estou tentando ser o mais positivo possível nesse país, se conseguir sacudir a poeira de uma pessoa, já valeu.

Quer o topo da pirâmide? Não se iluda, não existe atalho.

[]s
Luciano Caixeta Moreira - {Luti}
luciano.moreira@srnimbus.com.br
www.twitter.com/luticm
www.srnimbus.com.br

sexta-feira, 2 de março de 2012

Otimizando o Data Cache

Bom dia pessoal.

No dia 01/02/2012 eu publiquei uma pesquisa no meu blog para analisarmos como está o desperdício no data cache do seu SQL Server (http://luticm.blogspot.com/2012/01/pesquisa-desperdicio-no-data-cache.html).

Como vocês podem ver pelas repostas, é usual termos um desperdício de 8% a 15%, o que isso significa? Se você tem um data cache com 30 GB de tamanho, então algo entre 2,4GB e 4,5GB está sendo desperdiçado.

É claro que não tenho ilusão de que 100% do data cache estará ocupado, pelo contrário, temos fragmentação normal dos índices, níveis não folha e outras páginas de controle usualmente possuem espaço livre, então parte desse espaço em memória vai ser desperdiçado sim! Mas você como DBA deve cuidar para que o desperdício seja o menor possível. Como?

  • Modelando corretamente seu banco de dados
  • Usando outros recursos, como compressão de dados (cuidado sempre com os trade-offs).
  • Garantindo a manutenção dos seus índices
  • Tomando muito cuidado com thresholds globais    Fillfactor? PADIndex? Fragmentação para reorganize e Rebuild?    Na boa, quem já fez treinamento comigo sabe que sou bem ácido em relação a essas recomendações universalmente aceitas, usualmente elas podem te prejudicar muito.

Todos vocês podem ver o que os outros publicaram e tirar suas próprias conclusões, então dentro do que foi mostrado eu gostaria de propor uma nova verificação para todos os ambientes: tentar minimizar o desperdício do data cache!

Qual o threshold? (Opa, acabei de falar mal de thresholds globais! Shame on me :-))
Se o seu negócio permitir (normalmente sim), vamos com uma meta ambiciosa: manter o desperdício do data cache sempre abaixo de 10%.

E claro que nem sempre a coisa é simples e muitos detalhes podem tornar a vida do DBA mais complexa (e divertida, porque não?). Imagine o seguinte... Seu índice apresenta fragmentação interna de 3% mas o desperdício dela no data cache para este objeto é de 50%!

Sim, isso pode acontecer com você, é o que eu chamo de fragmentação de um ramo da árvore (B-tree+), principalmente quando suas tabelas começam a crescer demais e uma fragmentação em um ramo mais utilizado pode passar despercebida, quando analisado todo o índice.

Esse seria um post longo, mas acabei escolhendo por publicar o artigo no SimpleTalk (http://www.simple-talk.com/sql/database-administration/no-significant-fragmentation-look-closer%E2%80%A6/) para ver se tinha aceitação também lá fora.

Então você somente pode considerar que leu esse post depois de ler o artigo inteiro e deixar lá seu comentário e avaliação, seja boa ou ruim.


[]s
Luciano Caixeta Moreira - {Luti}
luciano.moreira@srnimbus.com.br
www.twitter.com/luticm
www.srnimbus.com.br