Inicial > SQL Server > Entrevista 2 – Gustavo Maia Aguiar

Entrevista 2 – Gustavo Maia Aguiar

Olá galera, segue mais uma da série de entrevistas com especialistas em SQL Server.

Desta vez o entrevistado foi o futuro MVP Gustavo Maia Aguiar, mais conhecido por “01”, se você aparecer nos fóruns TechNet e MSDN vai entender o porque ele ganhou este apelido.

 

Gustavo Maia Aguiar é administrador de Empresas pela Universidade de Brasília (UnB) e pós-graduado em bancos de dados pela Universidade Católica de Brasília (UCB), atua na área de tecnologia de informação desde 2001, exercendo funções de desenvolvedor, analista, administrador de banco de dados (DBA) e administrador de dados (AD). É profissional certificado (MOS, MCDBA, MCAD, MCTS (SQL 2005), MCITP (DB Dev), MCITP (DB Admin), MCT e Itil Certified Professional). Já trabalhou em instituições do governo, iniciativa privada e parceiros Microsoft em atividades de suporte, consultoria e treinamento. É membro ativo e moderador do fórum MSDN e da comunidade SQL Server Brasil (Orkut).

 

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.      Eu tive pouco contato com o SQL Server 2008, mas dentre as funcionalidades que tive a oportunidade de conhecer acredito que algumas mereçam destaque como a Auditoria, o suporte a dados geográficos e o Resource Governor.

b.      Anteriormente, as funções de uma área de auditoria eram praticamente direcionadas a áreas administrativas e financeiras. O avanço de determinadas normas, padronizações e regulamentações (Sarbanes-Oxley, Basiléia II, ISO/IEC, etc) em relação a área de TI acaba forçando com que diversos processos (em especial a segurança da informação) sejam auditados e se seguirmos alguns dos princípios básicos da segurança (confidencialidade e integridade) é necessário saber quando um dado foi lido e (ou) alterado se necessário.

c.      O suporte a dados geográficos é mais uma iniciativa da Microsoft na ampliação do SQL Server para não apenas um sistema gerenciador de banco de dados relacional, mas sim uma suíte de produtos preparada para trabalhar com potencialmente qualquer tipo de dados. Embora o mundo relacional seja sem dúvida a implementação mais dominante existem outras como bancos de dados textuais, xml, etc. A presença de dados geográficos é mais um ADD-IN para lidar com esse mundo híbrido.

d.     O recurso Resource Governor é uma ferramenta bastante esperada pelos DBAs em SQL Server. Alguns recursos como CPU, Memória e Discos podiam ser administrados mas a principal limitação era alocar um pool de recursos por usuário (ou aplicação indiretamente) e é certamente frustrante ver uma aplicação crítica ser comprometida por uma aplicação mais simples (porém mal codificada). Ainda que pudéssemos resolver isso com instâncias separadas, trabalhar o pool de recursos na mesma instância de forma flexível é sem dúvida um grande avanço. Pode-se por exemplo limitar os recursos já na fase de desenvolvimento para verificar se a aplicação responderá adequadamente.

2.       Em relação a performance no SQL Server 2005, quais as features você acha mais importante?

a.      Existem algumas features chaves para o desempenho no SQL Server como views indexadas, cobertura de índices, etc mas especificamente sobre o SQL Server 2005, na minha opinião, destacam-se o particionamento de tabelas, a cláusula INCLUDE e o HINT Recompile em nível de instrução dentro de Stored Procedures. São recursos adicionais em relação as features já existentes que podem fazer bastante diferença principalmente em ambientes mais críticos e complexos.

3.       Quais suas dicas para um profissional que está iniciando em SQL Server?

a.      Leia o máximo de livros e revistas que puder, mexa bastante no produto (mesmo que somente em casa ou em laboratório), converse com o maior número de profissionais que conseguir e participe de fóruns, eventos e cursos sempre que possível.

4.       O que é necessário para se tornar um usuário Master em SQL Server?

a.      Depois que você tiver lido o maior número de livros e revistas possível sobre o assunto, tiver uma boa  experiência no produto, ter participado de fóruns, eventos e cursos acredito que fique faltando ainda a vivência em um ambiente bastante crítico (para tornar prático o conhecimento que muitas vezes é teórico) e uma dose de outras tecnologias (rede, desenvolvimento, storage, etc). O SQL Server é um produto bem abrangente mas não funciona sozinho. Um profissional “master” deve saber bastante de SQL Server, mas o mínimo de outras tecnologias que interagem com ele para não ficar imóvel se um recurso de cluster não subir, se um erro com o SSPI acontecer, se uma conexão dar TimeOut ou quando tiver que decifrar um XML Schema. Essa pode ser uma sutil diferença entre um DBA que decorou o Books OnLine e o que resolve os problemas.

5.       O que é necessário para se tornar um usuário Master em Transact SQL Server?

a.      Manipular dados usando o TSQL e fazer alguns truques que às vezes são necessários demandam bastante criatividade. Normalmente o hábito de programar impulsiona o raciocínio para desenvolver soluções TSQL mais elaboradas, mas independente disso, acho que observar e analisar soluções de especialistas ajuda bastante. Muitas vezes alguém já “pensou” em muitos detalhes e você pode adaptar uma determinada lógica a outras situações similares.

6.       Qual sua opinião em relação ao uso excessivo de Triggers no banco de dados?

a.      Não sou muito adepto de triggers, mas reconheço que em algumas situações elas são realmente necessárias. No entanto sua utilização deve ser a exceção e não a regra. Se um banco de dados possui utilização excessiva de triggers existe uma grande possibilidade de que existam problemas ocultos que podem ser melhor trabalhados (modelo de dados incorreto, local para lógica de negócio inadequado, mecanismos de validação ineficientes, etc.)

7.       Qual o maior erro que uma pessoa pode cometer ao analisar um plano de execução?

a.      Achar que um Clustered Index Scan é eficiente e está usando um índice somente por ter a palavra Index.

8.       Quando usar um Clustered Index e quando usar um Non Clustered Index?

a.      Essa é sem dúvida uma pergunta sem resposta exata e cada caso é um caso. Via de regra, o Clustered Index é recomendável para colunas que não tem seus valores alterados, são inseridas seqüencialmente e são pequenas e pesquisadas por intervalo e utilizadas nas cláusulas ORDER BY e GROUP BY. Índices NonClustered são ótimos candidatos para colunas que quando pesquisadas retornam poucos registros. Uma recomendação que não funciona para todos os casos mas que se adéqua em muitos casos é usar o índice clustered para chaves primárias e nonclustered para chaves estrangeiras.

9.       Porque estatísticas são importantes?

a.      Através das estatísticas que o otimizador de consultas poderá tomar decisões de como recuperar dados de uma determinada consulta. Se não há estatísticas, o otimizador pode desprezar decisões que potencialmente o ajudariam a recuperar dados mais rapidamente. É importante mantê-las atualizadas para que as decisões que o otimizador realizar sejam de fato as melhores possíveis.

10.   O quanto fragmentação no banco de dados pode afetar performance? Existe algum beneficio em ter fragmentação no banco?

a.       Fragmentação é, de certa maneira, ter os dados espalhados. Isso significa que no momento de juntá-los um esforço adicional será necessário, pois, será necessário juntar todos os fragmentos e nesse caso o desempenho é prejudicado. Alguns cenários podem se beneficiar de algum grau de fragmentação (na figura do Fill Factor), mas cada caso é um caso. A recomendação é mantê-la ao mínimo possível, mas não devemos tentar eliminá-la completamente.

11.   Afinal paralelismo é bom ou ruim?

a.      Na maioria das vezes é benéfico, até porque o próprio SQL Server se encarrega de avaliar quando utilizá-lo (não é porque existem múltiplos processadores que toda consulta, reindexação ou ordenação será processada com paralelismo). No entanto, muitos processadores rodando uma mesma consulta em paralelo podem gerar um Deadlock de processador assim como tarefas muito demoradas rodando com paralelismo podem alocar processadores em demasia e provocar lentidão em outras requisições. Felizmente para situações como essa temos a disposição o MAXDOP.

12.   Você utiliza alguma ferramenta para auxiliar na resolução de problemas de performance? Quais?

a.      Normalmente as organizações não tem à disposição ferramentas auxiliares para monitoramento. Já utilizei algumas como o Mom e o NetIQ e já vi algumas funcionando como o System Center. No entanto, quase sempre utilizo as ferramentas disponíveis (Perfmon, Profiler, Performance Dashboard e DMVs).

13.   Em um banco de dados em produção você utiliza algum TraceFlag habilitado?

a.      Quando trabalho com grandes volumes de dados alguns TraceFlags acabam tornando-se obrigatórios. Costumo utilizar quase que por Default o T1118 para o TempDB. Existem outros igualmente interessantes como o T1204, o T2551, além da utilização de parâmetros de inicialização. No entanto, evito utilizar Trace Flags a menos que realmente necessários.

14.   Cite 3 livros que não podem faltar na coleção de um especialista SQL Server.

a.      Existem tantas obras excelentes sobre SQL Server que é difícil escolher apenas três, mas considerando o SQL Server 2005 eu citaria os seguintes títulos:

1.       Inside Microsoft SQL Server 2005 – The Storage Engine (Kallen Delaney)

2.       Troubleshooting SQL Server 2005 (Ken Henderson)

3.       The SQL Server 2005 Unleashed

15.   Nestes anos de experiência, Qual foi o problema mais difícil de resolver que encontrou?

a.      Existem alguns que não me recordo no momento, mas um que me lembro foi reconstruir um servidor de banco de dados SQL Server 2000 que foi danificado sem possuir um backup ou utilizar uma ferramenta de terceiros.

16.   Já passou por algum daqueles problemas que resolveu mas até hoje não sabe o que era?

a.       Sim. Algumas vezes, a instalação do SQL Server em Cluster pode apresentar falhas na primeira tentativa e funcionar na segunda tentativa sem que nenhuma configuração tenha sido realizada.

17.   Qual o maior banco de dados que já trabalhou e quantas linhas tinha a maior tabela que já viu?

a.      Até a presente data, o maior banco de dados em SQL Server que já me deparei tinha 413GB e a maior tabela desse banco de dados possui 260 milhões de linhas.

18.   Como diria o Tobby(charges.com.br) – Bate bola jogo rápido:

a.      Um concorrente digno do SQL Server: DB2

b.      Uma feature: DMV (Dynamic Management Views)

c.       Um comando SQL: ALTER DATABASE Banco SET READ_ONLY WITH ROLLBACK IMMEDIATE

d.      Um livro: Há muitos empates, mas sugiro o Inside SQL Server 2005 – T-SQL Querying

19.   Você tem algum blog? Site? Msn?… Como os usuários da comunidade podem entrar em contato com você?

a.      Costumo ser facilmente encontrado no fórum do MSDN para dúvidas de SQL Server (é mais rápido até do que o e-mail). Também sou moderador da comunidade “SQL Server Brasil” no Orkut onde participo ativamente. Meu blog é: http://gustavomaiaaguiar.spaces.live.com/blog e meu e-mail é gmaguiar2004@hotmail.com

20.   Deseja deixar alguma consideração final?

a.      A busca pelo conhecimento é uma estrada sem fim e bastante difícil. Quando vierem as recompensas e as conquistas chegarem você terá orgulho de ter andado por ela e estar no ponto em que está. Quando vierem as dificuldades e você achar que andou demais e que ainda assim pareceu pouco, pare, respire e olhe para trás. Você pode ser surpreender com o tamanho do conhecimento que você adquiriu.

Categorias:SQL Server
  1. Gustavo
    28 de setembro de 2008 às 22:05

    Oi Fabiano,
     
    Obrigado pela entrevista. Vi a sua no Codificando.NET que também ficou muito boa. Está difícil ser o N.1 (rs). A competição no MSDN está bem forte hehehe.
     
    Abs,

  2. Tiago
    7 de janeiro de 2009 às 22:28

    Acertou em cheio quando disse "futuro MVP"!E agora qual é a sua aposta para futuros MVPs? Será que eu tenho chance?Faz diferença fazer parte dos "que mais responderam" lá no fórum MSDN?É que agora tá assim lá:01) Caio Proiete [MCT]02) Angus MacGyver03) Gustavo Maia Aguiar (esse não conta mais)04) Dennes (esse já foi MVP mas perdeu)05) Emanuel Peixoto06) Leandro Rodrigues07) Rafael Fagundeshttp://forums.microsoft.com/MSDN-BR/TopAnswerers.aspx?SiteID=21Mas eu tô longe na lista… Lá embaixo. Mas respondi muita gente!

  1. No trackbacks yet.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

%d blogueiros gostam disto: