Entrevista 1 – Mauro Pichiliani
Pessoal vou dar inicio ao que imagino que seja a primeira de muitas entrevistas que virão.
Minha idéia é a seguinte, iniciar uma séria de entrevistas com especialistas em SQL Server, inicialmente com os MVPs e Colunistas brasileiros, depois com funcionários da Microsoft e então partirei para os MVPs gringos e funcionários da Microsoft Corp.
Já tenho alguns questionários respondidos, irei tentar publicar 1 por semana.
O primeiro da Lista é o Mauro Pichiliani que é colunista no imasters.uol.com.br.
Sem mais, vamos ao questionário. Espero que gostem…
1. Vamos começar falando da novidade do momento, quais as novas features do SQL Server 2008 que você acha mais importante, e porque? Nomeie pelo menos 3.
a. Bom, o SQL Server 2008 traz uma série de novas funcionalidades. Eu escrevi uma coluna explicando as 10 funcionalidades que mais me impressionaram, a coluna pode ser visualizada no link abaixo:
http://imasters.uol.com.br/artigo/9712/sql_server/top_10_funcionalidades_do_sql_server_2008/
b. Dentre as três principais posso citar:
1. As melhorias no Reporting Services, que facilitam a vida de quem precisa criar relatórios bem apresentáveis.
2. Os recursos para compactação, que vão reduzir sensivelmente o espaço utilizado por bancos de dados.
3. Algumas mudanças na linguagem, como o operador MERGE, que é bem interessante e vai facilitar a comparação de dados entre tabelas.
2. Em relação a performance no SQL Server 2008, quais as features você acha mais importante?
a. São várias, mas creio que a utilização de filtros nos índices é a feature mais importante que pode melhorar muito a performance se utilizada corretamente.
3. Quais suas dicas para um profissional que está iniciando em SQL Server?
a. Eu sempre recomendo a quem está iniciando procurar estudar muito. Outro ponto importante é possuir uma mente aberta, ser criativo e saber improvisar. Muitas vezes os profissionais são conservadores e não arriscam muito, o que pode fazer a diferença no final do dia.
4. O que é necessário para se tornar um usuário Master em SQL Server?
a. Apenas uma palavra: Estudo. Obviamente é preciso também muita prática e o famoso jogo de cintura, mas com certeza o estudo é o principal.
5. O que é necessário para se tornar um usuário Master em Transact SQL Server?
a. Mais uma vez, muito estudo. O Transact-SQL, em particular, é uma linguagem fácil se comparada com outras, mas mesmo assim é preciso conhecê-la muito bem para dominar suas particularidades e saber utilizá-la a seu favor.
6. Qual sua opinião em relação ao uso excessivo de Triggers no banco de dados?
a. Bem, o uso de Triggers deve ser ponderado e utilizado com bom senso. Em algumas situações vale a pena utilizar triggers, pois um trigger é um ótimo mecanismo para programar regras de negócio. Contudo, já observei usos irracionais de triggers que apenas tornaram o banco de dados mais complexo e suscetível a erros.
7. Qual o maior erro que uma pessoa pode cometer ao analisar um plano de execução?
a. Analisar o plano de execução e tomar uma decisão errada. Isso sem contar que para analisar o plano de execução é preciso conhecer os seus componentes, algo que muitas pessoas ignoram.
8. Quando usar um Clustered Index e quando usar um Non Clustered Index?
a. Depende muito da situação. Em geral o uso do índice clusterizado já é implementado automaticamente quando se cria uma chave primária e, a partir daí, todos os outros índices criados são do tipo não clusterizados. Porém isso não deve ser visto como uma regra e sim como uma diretriz.
9. Porque estatísticas são importantes?
a. As estatísticas são importantes para avaliar a densidade e seletividade de índices e são utilizadas pelo SQL Server, de forma automática ou não. Há casos onde o SQL Server pode atualizar as estatísticas e gerar um plano de execução melhor. Devido a esta característica vale a pena ver se no plano de execução há alguma mensagem sobre a falta de estatísticas atualizadas.
10. O quanto fragmentação no banco de dados pode afetar performance? Existe algum beneficio em ter fragmentação no banco?
a. Mais uma vez esta questão depende muito de cada cenário. Em tabelas grandes que fazem o uso de muitos índices é possível que a fragmentação prejudique o desempenho, porém há casos onde a fragmentação pode fazer sentido, principalmente quando se utiliza opções como o FILLFACTOR e PAD_INDEX.
11. Afinal parallelismo é bom ou ruim?
a. Com certeza é algo bom, mais isso vai depender de cada instrução. Em geral o otimizador de consultas já avalia o paralelismo automaticamente e não precisamos nos preocupar muito com isso.
12. Você utiliza alguma ferramenta para auxiliar na resolução de problemas de performance? Quais?
a. Sim, utilizo. Com certeza o Profiler é uma das ferramentas mais adequadas para isso. Outra ferramenta muito importante é o próprio Management Studio, pois ele permite a visualização gráfica do plano de execução das instruções.
13. Em um banco de dados em produção você utiliza algum TraceFlag habilitado?
a. Raramente. O motivo de não utilizar TraceFlags é que alguns deles requerem a reinicialização do servidor, algo que não pode ser feito em bancos de dados que requerem alta disponibilidade.
14. Cite 3 livros que não podem faltar na coleção de um especialista SQL Server.
a. “Introduction to Database Systems” do C. J. Data, “SQL Server Resouce Kit”, da própria Microsoft e o “Inside SQL Server” da Kalen Delaney.
15. Nestes anos de experiência, Qual foi o problema mais difícil de resolver que encontrou?
a. Com certeza foram vários. Porém cito problemas de desempenho em bancos de dados com mais de 100 GB de dados como um deles. Além de ser complicado realizar qualquer manutenção em uma base dom este tamanho estas modificações requerem muito esforço e testes.
16. Já passou por algum daqueles problemas que resolveu mas até hoje não sabe o que era?
a. Sim, com certeza. Geralmente problemas relacionados a bugs internos do SQL Server não há como saber exatamente o que é. O máximo que dá para fazer é abrir um chamado no suporte da Microsoft e utilizado uma solução temporária (workaround) até um patch ou Service Pack ser liberado.
17. Qual o maior banco de dados que já trabalhou e quantas linhas tinha a maior tabela que já viu?
a. Bom, isso é difícil de dizer pois existem bancos de dados que crescem muito rapidamente. No momento posso dizer que já cheguei a trabalhar com bancos de dados que ultrapassam 1 TB de tamanho. Quanto à tabelas, procuro sempre evitar sobrecarregar uma mesma tabela com muitos dados, pois isso evita vários problemas. Mas já encontrei ambientes em que uma tabela apenas ocupava mais de 50 GB de espaço.
18. Como diria o Tobby(charges.com.br) – Bate bola jogo rápido:
Um concorrente digno do SQL Server: O Oracle
a. Uma feature: O recurso Time Machine do Oracle
Um comando SQL(o meu predileto é o SHUTDOWN WITH NOWAIT J) : Com certeza o comando SELECT, preferencialmente com a cláusula WITH CUBE.
b. Um livro: Indiscutivelmente o “Introduction to Database Systems” do Date.
19. Você tem algum blog? Site? Msn?… Como os usuários da comunidade podem entrar em contato com você?
a. Não tenho blog, mas o meu principal contato é através do iMasters (www.imasters.com.br) onde os usuários da comunidade podem entrar em contato comigo por meio dos comentários nas colunas ou pelo e-mail.
20. Deseja deixar alguma consideração final?
a. Vou deixar uma mensagem que ouvi recentemente e que aborda a questão da tecnologia versus o lado humano:
b. “Todos somos exploradores, que procuram saber o que está mais à frente do horizonte, o que está no outro lado. E ainda assim, quanto mais experimentei, mais aprendi…que não importa quão longe viajemos, ou quão rápido cheguemos ali, os mais profundos descobrimentos… não estão necessariamente mais à frente… da próxima estrela. Eles estão dentro de nós…tecendo os fios que nos unem, a todos nós, uns aos outros.”