Arquivo da categoria: SQL SERVER

5 Funcionalidades que poderiam ser retiradas do SQL Server

Boa Noite Pessoal,

Dando uma olhada no blog do Fabiano, vi um post bacana sobre 5 coisas que deveriam ser removidas do SQL Server. Vi também que a idéia começou com o Paul Randal e que rapidamente outros profissionais de SQL Server começaram a escrever suas listas com 5 funcionalidades que deveriam ser removidas (ou ajeitadas) no SQL Server. Achei a idéia interessante e resolvi postar minha sugestão. Não é uma crítica às funcionalidades existentes ou ao produto. É apenas uma lista de coisas que considero dispensáveis.

Full Recovery Model como opção Default

Acho que pelo menos uma vez por dia vejo alguém dizendo: "Meu banco tem 100GB e o log está consumindo 99GB. Como faço para limpar esse Log ? Daqui a pouco vai acabar o espaço em disco e o banco vai parar". Isso só ocorre porque o Recovery Model está como Full (Default) e as entradas do log só vão sumir se um backup for realizado ou se o Recovery Model for alterado (no 2005 e anteriores era possível truncar o log com o BACKUP LOG WITH TRUNCATE_ONLY). Tenho minhas considerações sobre esses procedimentos em "Piores Práticas – Utilizar o comando BACKUP LOG com a opção WITH TRUNCATE ONLY – Parte I" e "Piores Práticas – Utilizar o comando BACKUP LOG com a opção WITH TRUNCATE ONLY – Parte II", mas o fato é que a maioria das pessoas que passam por problemas de log não fazem backups de log e por isso não precisam dele. Se o Recovery Model fosse Simple por Default essas pessoas teriam uma vida mais tranquila.

Auto Shrink

Pode até parecer utópico, mas ambiente bem administrado raramente necessita de SHRINK. Qual é o sentido de reduzir o tamanho de um arquivo apenas por reduzir ? Não há melhora de desempenho no banco de dados por conta da redução do espaço não utilizado de um arquivo. O disco continuará o mesmo e sua vida útil também (independente do arquivo ser grande ou pequeno). Há um "inútil" senso de que se o arquivo tiver espaço vazio há desperdício, mas reduzir um arquivo e deixar mais espaço livre no disco não irá fazer com que o disco tenha mais tempo de vida. Não acho correto gastar mais do que o necessário, mas acho completamente errado reduzir um arquivo ao seu tamanho mínimo sabendo que ele irá crescer de novo. Isso só irá aumentar o nível de fragmentação do arquivo, pois, toda vez que ele precisar crescer dificilmente irá utilizar uma área contígua. Com o nível de fragmentação aumentando e o SHRINK ocorrendo a todo instante, as chances do desempenho cair são altas, pois, será necessário que o arquivo cresça e reduza seu tamanho constantemente além de afetar bastante as pesquisas baseadas em RANGE, SORT, etc. Recomendo a leitura do artigo "Auto-shrink: Turn It Off" para conhecer melhor seu comportamento e porque ele deveria ser retirado. O SHRINK tem o seu lugar em algumas situações como expurgo de grandes volumes de dados, eliminação de colunas que liberem muito espaço, etc mas o Auto SHRINK ao meu ver não tem utilidade nenhuma. Se é realmente necessário limpar a todo instante o espaço vazio há um entendimento incorreto de como ele funciona ou um mau dimensionamento do espaço necessário.

Auto Close

A descrição do Books OnLine é a seguinte:

"When set to ON, the database is shut down cleanly and its resources are freed after the last user exits. The database automatically reopens when a user tries to use the database again. When set to OFF, the database remains open after the last user exits."

Em outras palavras, se ela estiver marcada como ON, o SQL Server irá liberar o acesso aos arquivos quando ninguém mais estiver conectado e quando alguém precisar conectar-se novamente, o SQL Server voltará a bloquear os arquivos. Se ela estiver marcada como OFF, o SQL Server sempre irá bloquear os arquivos MDF e LDF de forma exclusiva mesmo que ninguém precise de acesso à base. O problema é que se o SQL Server não bloquear os arquivos (AUTO_CLOSE ON), qualquer um poderá utilizá-los (copiar, renomear, excluir, etc). Quando o SQL Server precisar deles novamente, ou seja, quando alguém for conectar-se à base, se por qualquer razão eles estiverem em uso, o SQL Server poderá colocar a base no estado de Suspect e isso pode ser irreversível. Mesmo para edições como o MSDE e o SQL Server Express que tem essa opção marcada como DEFAULT, eu acredito que o SQL Server deve sim bloquear os arquivos MDF e LDF para uso externo. Não é porque se utiliza a edição Express ou MSDE que os dados deixam de ser importantes.

Server Roles Fixas

Desde o SQL Server 7 (não mexi com o 6.0 e o 6.5) existem as roles fixas de servidor. Ao contrário das roles de banco, não é permitido criar novas roles de servidor. limitando-nos às roles já existentes. A partir do SQL Server 2005 é possível a atribuição de Securables em nível de servidor e assim pode-se por exemplo dar permissão de rodar o Trace a um login específico sem a necessidade de incluí-lo na Role SysAdmin como era o caso do SQL Server 7 & 2000. Isso aumenta as possibilidades na gestão de privilégios, mas não é possível criar um grupo e incluir logins no grupo para evitar concessões individuais. Alguns roles eu até acho úteis como a DBCreator, BulkAdmin e a SysAdmins (é claro), mas outras como DiskAdmin e SetupAdmin eu nunca vi marcadas em nenhum servidor. Com as possibilidades da troca de contexto de execução com a cláusula EXECUTE AS elas perdem ainda mais o sentido. Seria muito interessante se pudéssemos criar roles em nível de servidor e atribuir as permissões desejadas. Isso evitaria darmos mais permissões que o necessário (típico das servers roles fixas como SysAdmin) ou conceder permissões para logins individuais.

Uso da procedure XP_CMDSHELL

Na transição do SQL Server 2000 para o 2005 várias Extended Procedures foram retiradas (xp_makecab, xp_executeresultset, etc), mas a xp_cmdshell ainda permanece. No meu entendimento, um banco de dados deve servir ao seu principal propósito (gravar e recuperar dados). Recursos como xp_cmdshell não se relacionam de forma direta a essas atividades e só abrem brechas de segurança além de deixar alguns implementadores mal acostumados. É inegável que essa stored procedure concede certa flexibilidade como criação de pastas, execução de utilitários como o BCP, SQLCMD ou o DTEXEC, mas uma arquitetura "correta" não delegaria essas atividades para o banco de dados (já vi gente mandando arquivo via FTP e criando usuário no AD com TSQL). Não imagino um desenvolvedor perguntando a um DBA ORACLE qual é o comando PL/SQL que irá dropar arquivos no File System do UNIX ou questionar um DBA DB2 do porquê não é possível utilizar esse SGBD para que ele compacte automaticamente os arquivos de backup com o GZIP em um sistema operacional Linux. Ninguém sequer irá cogitar essa possibilidade, pois, tarefas como criação de pastas, compactação de arquivos ou execução de utilitários nem de longe são atribuições de um banco de dados. Aquelas soluções que utilizam o SQL Server como Middleware e necessitam implementar essas tarefas no SQL Server deveriam considerar o uso do CLR ao invés da xp_cmdshell. É uma alternativa muito mais segura e administrável.

E você ? Qual é a sua lista ? Que cinco coisas você acha desnecessárias no SQL Server ?

[ ]s,

Gustavo

Copa Microsoft de Talentos – Evento em Brasília

Oi Pessoal,

Hoje não farei nenhuma postagem técnica (estou aproveitando o feriado com a família), mas há um tempinho para um convite importante aos simpatizantes de SQL Server em Brasília. No dia 06/04 (terça-feira que vem), acontece o evento que faz parte da campanha Copa Microsoft de Talentos e é realizado pela equipe técnica da Microsoft Brasil.

Serão duas sessões: uma focada para desenvolvedores e outra para profissionais de infra-estrutura, onde será possível ver demos ao vivo, utilizando cenários reais de implementação de tecnologias com a demonstração dos últimos lançamentos da Microsoft, como Windows Server 2008 R2, Windows 7, Exchange 2010, Visual Studio 2010, SQL Server 2008 R2, Office 2010, Sharepoint 2010, System Center, Forefront e Silverlight. Não há pré-requisito para participar do evento, mas vale a pena lembrar que as vagas são limitadas então os interessados devem apressar-se

Road Show Brasília
06/04/2010, a partir das 9h
San Marco Hoteis
SHS Quadra 05 Bloco “C”

Os profissionais de tecnologia e desenvolvedores devem inscrever-se nos seguintes links:

Sessão para Profissionais de Tecnologia:
https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032445853&Culture=pt-BR

Sessão para Desenvolvedores:
https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032445855&Culture=pt-BR

O evento é o dia inteiro (09:00 – 18:00). Espero comparecer em um dos períodos para prestigiá-lo. Nos vemos lá.

[ ]s,

Community Zone 2010

Oi Pessoal,

Desde 2007, todo ano a Microsoft organiza um evento chamado Community Zone. A idéia é montar um evento de em clima de descontração reunindo vários integrantes das comunidades, células acadêmicas, fóruns, etc que disseminam tecnologias Microsoft. Isso inclui MVPs, Student Partners, líderes de grupos de usuários, membros do Ineta e Culminis, influenciadores de uma forma geral e a própria equipe da Microsoft. Nesse evento há palestras, mesas de discussão, dinâmicas de grupo entre outras atividades para que os participantes se conheçam, interajam e troquem experiências profissionais.

A primeira vez que participei do Community Zone foi em 2008. Em dezembro de 2007 voltei a frequentar os fóruns MSDN e TechNet auxiliando com as dúvidas de SQL Server. Comecei a contribuir tão ativamente, que em agosto de 2008 fui convidado para o evento (muito bom por sinal). Além das palestras técnicas que falaram sobre o padrão OpenXML e deram as primeiras pinceladas no assunto Cloud Computing, tive a oportunidade de conhecer alguns MVPs, influenciadores e profissionais de peso em SQL Server como Fabiano Neves Amorin, Diego Nogare, Vladimir Magalhães para citar alguns. Lembro-me do Laércio Freitas e eu perguntando para o Júnior Galvão e o Diego Nogare o que era necessário para se tornar MVP, pois, estávamos bem empenhados em buscar esse reconhecimento. A dinâmica do agente Jack Bauer também foi fantástica.

Essa semana recebi o e-mail de convite para o Community Zone na sua edição 2010. Não pude ir no Community Zone em 2009, pois, na época estava bastante atarefado e alguns compromissos eram inadiáveis. Esse ano já confirmei minha presença. Espero conhecer pessoalmente alguns dos bons nomes que vejo nas comunidades, fóruns, webcasts de SQL Server que ainda não conheço.

[ ]s,

Gustavo

Mais um ano como MVP de SQL Server

Bom Dia Pessoal,

O ano de 2010 se inicia e ao abrir meus e-mails recebo a tão esperada confirmação de renovação do meu título de MVP:

Dear Gustavo Aguiar,

Congratulations! We are pleased to present you with the 2010 Microsoft® MVP Award! This award is given to exceptional technical community leaders who actively share their high quality, real world expertise with others. We appreciate your outstanding contributions in SQL Server technical communities during the past year.

Exatamente há um ano atrás, em janeiro de 2009, recebi um e-mail parecido falando da minha nomeação. No ano de 2008 eu havia feito muitas contribuições e consegui obter o título. Em 2009 as contribuições continuaram, mas muitas vezes fiquei um pouco incerto sobre o processo de renovação. Em alguns momentos senti uma certa vontade de perguntar sobre a renovação, mas a curiosidade deu lugar à discrição. Com um pouco mais de paciência, felizmente a boa notícia acabou chegando.

Gostaria de agradecer a todos que diretamente ou indiretamente ajudaram para a minha renovação. Estou certo que as votações no fórum, a presença nos Webcasts, a recomendação de artigos, entre muitas outras contribuições foram imprescindíveis para que, por mais um ano, eu possa eu tenha o título de MVP. Prometo retribuir esse reconhecimento da comunidade através da postagem de mais artigos, responder mais dúvidas, publicação de mais vídeos.

Muito obrigado e um excelente 2010 para todos nós.

[ ]s,

Gustavo

Objetivos e Metas para 2010

Olá Pessoal,

Dizem que o poder das palavras tem muito mais força do que imaginamos. O simples fato de pensar já faz uma enorme diferença no tempo e no esforço para se conseguir alguma coisa. Enquanto as idéias estão no pensamento elas estão em curso, mas a partir do momento em que elas são escritas e explicitadas sua força se torna muito maior.

O ano de 2009 foi um ano excelente. Fui nomeado MVP em SQL Server, tive a oportunidade de ir à sede da Microsoft em Redmond através do MVP Summit, iniciei no grupo SQL Server DF (grupo vinculado ao Pass) palestrando em dois encontros, ministrei várias aulas em centros autorizados, escrevi dois artigos técnicos para revistas especializadas, entre muitas outras coisas boas.

Boa parte do aconteceu já eram objetivos há algum tempo atrás. Para o ano de 2010 eu espero continuar esse ciclo de realizações. Se pensar já me ajudou no passado, dessa vez vou escrever e compartilhar os objetivos e metas para 2010 de SQL Server. Não sei se vou conseguir realizar tudo o que proponho, mas vou correr atrás do que for necessário:

Meta 01 – Aumentar o portfolio de certificações
Ao longo dos últimos anos venho acumulando certificações de SQL Server. O trajeto foi difícil, mas as recompensas foram bem gratificantes.

  • Microsoft Certified Database Administrator (MCDBA) (obtida em 29/04/2004)
  • Microsoft Certified Technology Specialist (MCTS) (SQL Server 2005) (obtida em 08/12/2006)
  • Microsoft Certified Trainer (MCT) (obtida em 25/06/2007)
  • Microsoft Certified IT Professional Database Developer (MCITP) (SQL Server 2005) (obtida em 05/09/2007)
  • Microsoft Certified IT Professional Database Administrator (MCITP) (SQL Server 2005) (obtida em 21/12/2007)
  • Microsoft Most Value Professional (MVP) (SQL Server) (obtida em 01/01/2009)
  • Microsoft Certified Technology Specialist (MCTS) (SQL Server 2008) – Database Development (obtida em 30/09/2009)
  • Microsoft Certified IT Professional Database Developer (MCITP) (SQL Server 2008) (obtida em 30/09/2009)
  • Microsoft Certified Technology Specialist (MCTS) (SQL Server 2008) – Implementation and Maintenance (obtida em 06/11/2009)
  • Microsoft Certified IT Professional Database Administrator (MCITP) (SQL Server 2008) (obtida em 06/11/2009)

Desde o início de 2008 que estou querendo obter as certificações relacionadas a Business Intelligence de SQL Server 2005 e SQL Server 2008. Minhas experiências em BI começaram no final de 2004 (até então eram teóricas) e mesmo trabalhando com os produtos mais recentes e ministrando diversos treinamentos, estou a tempos adiando essas as provas de certificações. Em 2010, pretendo obter as seguintes certificações de Business Intelligence.

  • MCTS: Microsoft SQL Server 2005 Business Intelligence
  • MCITP: Business Intelligence Developer (SQL Server 2005)
  • MCITP: Business Intelligence Developer 2008 (SQL Server 2008)
  • MCTS: SQL Server 2008, Business Intelligence Development and Maintenance

Meta 02 – Publicar pelo menos dois artigos técnicos

Em 2009 consegui publicar dois artigos técnicos para a revista Mundo .NET. O primeiro artigo foi sobre o uso de Event Notifications para controlar alterações em objetos no banco de dados e o segundo foi sobre o uso de Common Table Expressions em um caso prático (o marketing de rede). Em 2010 espero conseguir publicar mais dois artigos em revistas de alcance nacional.

Meta 03 – Aumentar em no mínimo 25% a taxa de visitas ao blog

No ano de 2009 consegui em um único dia a marca de 427 visitas ao blog. Esse quantidade está bem acima do usual (há uma média de 150 visitas diárias). Alguns artigos são bem atrativos para visitação a exemplo de “Como transformar linhas em colunas”, “Matrizes”, “Como importar dados em XML”, etc. Espero em 2010 conseguir chegar a marca de 200 visitas diárias em média e um pico superior a 500 visitas em um único dia (o negócio é ficar de olho).

Meta 04 – Manter a frequência de publicações

Escrever um artigo para o blog por semana em média não é tarefa fácil (os companheiros e blogueiros de SQL Server sabem disso como ninguém). Seria muito fácil traduzir um determinado material ou ainda copiar alguma idéia de alguém. Não posso negar que me inspiro em muita gente, mas o difícil mesmo é manter a originalidade, a aplicabilidade e qualidade de um artigo. Nesses últimos meses manter essa média tem sido bem difícil, e não raras às vezes, acumulei algumas semanas acabando por postar várias coisas de uma vez só. Vou tentar mantê-la para o ano de 2010.

Meta 05 – Chegar aos 45.000 pontos nos fóruns do MSDN e TechNet

Os fóruns técnicos de SQL Server do MSDN e do TechNet são um dos melhores fóruns de SQL Server que existem. A participação nesses fóruns (juntamente com as comunidades do Orkut) certamente tiveram um peso muito forte na minha nomeação para MVP. Esse ano não consegui dar exatamente a mesma atenção que dei em 2008. Foi um ano corrido com muitos projetos, aulas, consultorias e outras atividades. Diminui sim a quantidade de postagens, mas de forma nenhuma deixei de ajudar (apenas mudei o foco para o blog, artigos técnicos, etc). Atualmente estou com pouco mais de 39.000 pontos. Com mais 6.000 pontos chego à meta de 45.000. Isso significa 500 pontos mensais e certamente será um prazer ajudar a quem precisa.

Meta 06 – Gravar pelo menos três vídeos de SQL Server

Em 2008 realizei seis Webcasts fora a participação de três gravações no MSDN Experience totalizando nove vídeos. Já em 2009 fiz apenas um Webcast referente ao Performance Studio e a participação no SQL Server Day. Espero conseguir gravar pelo menos três vídeos independente da iniciativa (Webcast, SQL Server Day, etc).

Meta 07 – Renovar o título de MVP

Ao contrário de boa parte das certificações, o título de MVP não é obtido através de uma prova e seu período de validade não é eterno ou quando acabar o ciclo de suporte ao produto. Ele vale apenas por um ano após a data de nomeação. Estou somente a alguns dias de completar um ano de renovação e espero conseguir renová-lo. Se isso não for possível, nada impede de obtê-lo novamente em um ciclo futuro de nomeações. Eu sempre ajudarei à comunidade de SQL Server enquanto achar que posso e no caso da não renovação, continuarei a ajudar mesmo assim.

Meta 08 – Escrever um livro sobre SQL Server

Essa é uma meta bem antiga e muitos já me perguntaram "Se você gosta tanto de escrever, se você devaneia através de longos posts e detalhadas explanações, por que não escreve um livro ?". De fato já pensei muito sobre esse assunto e não é por falta de vontade. Se ler um livro já é trabalhoso, imagine só escrever um. Quanto tive as primeiras idéias, as primeiras inspirações, ainda não tinha a experiência necessária (mesmo achando que tivesse). Além disso o grande dificultador era que eu sempre estava um pouco atrás da última release (comecei no SQL Server 7/2000 em 2002, no SQL Server 2005 em 2006 e no SQL Server 2008 em 2009). Agora estou sentindo que estou "empatando" e talvez nada que escreva fique para trás tão rapidamente. Enfim, ainda que nem tudo esteja fechado (apenas alguns rascunhos) espero produzir alguma coisa.

Meta 09 – Ler pelo menos 8 livros de SQL Server

Desde 2002 contabilizo quantos livros de SQL Server (e demais assuntos) eu consigo ler. Até hoje já cheguei a marca de 86 livros (mais de 40.000 páginas) sendo 49 relacionados a banco de dados e 36 específicos de SQL Server. Em 2010 vou adicionar mais oito livros de SQL Server para esse patamar. Certamente que alguns Best Sellers estarão inclusos nessa lista.

Meta 10 – Ambientar-me no SQL Server 2008 R2

Embora o nome continue sendo SQL Server 2008, há vários recursos novos nessa release. Ela não chega a ser uma reformulação completa, mas certamente trará muitas novidades. Espero familiarizar e aprender bastante sobre os novos recursos.

[ ]s,

Gustavo

Prova 70-453 – Upgrade: Transition Your MCITP SQL Server 2005 DBA to MCITP SQL Server 2008 DBA

Boa Tarde Pessoal,

Dando continuidade ao meu ciclo de provas, realizei hoje a prova 70-453 – Upgrade: Transition Your MCITP SQL Server 2005 DBA to MCITP SQL Server 2008 DBA. Eu havia feito a 70-454 no final do mês retrasado para atualizar o MCITP Database Developer de 2005 para 2008. Para realmente manter a qualidade de um profissional de SQL Server, nada como trilhar o mesmo caminho só que na área de administração. Acho que desenvolver em SQL Server sempre exigirá algum conhecimento em administração (backups, permissões, etc) assim como administrar o SQL Server também exigirá algum conhecimento em desenvolvimento (elaboração de scripts, criação de tabelas de controles, etc).

Antes de propriamente falar da prova, registro aqui algumas críticas em relação a Prometric. Após ficar pouco mais de uma hora e meia fazendo a prova e gastando mais algum tempo comentando algumas questões para que a Microsoft refine seus exames, ao acabar a prova fui direcionado para o startup que me solicitou iniciar a prova. Quando vi a tela não acreditei e de forma nenhuma iria realizar a prova de novo (ainda mais depois de ter virado uma noite antes da prova). Chamei o profissional responsável que entrou em contato com a Prometric e recebeu as orientações pertinentes. Infelizmente o resultado da prova não foi impresso e caso eu não receba nenhuma notificação terei que entrar em contato com a Prometric e apresentar um CaseID para que eles avaliem o que aconteceu. Devo reconhecer que a Prometric melhorou alguns pontos como o seu site (antes era de difícil navegação) e a divulgação de vouchers de desconto nos exames Microsoft. Ainda assim, eu continuo sentindo falta do site da Vue Person Education que nunca tive ou ouvi falar de alguém que teve problemas. Após anotar meu CaseID fiquei sabendo que só nessa semana, mais três passaram por esse problema. Enfim, vou aguardar respostas e torcer para que dê tudo certo.

Seguindo a linha dos temores de provas de upgrade na Microsoft, estava me preparando para algo realmente complicado. Embora tenha achado a prova de upgrade do MCITP Database Developer muito fácil, minha expectativa em relação à prova de administração não era a mesma. Não por achar que administrar é mais difícil ou fácil que desenvolver, mas é que a prova 70-443 – Designing a Database Server Infrastructure by Using Microsoft SQL Server 2005 do SQL Server 2005 é muito comentada como difícil e se ela é difícil o que esperar de uma prova de upgrade ? Algo ainda mais difícil com certeza.

Pois bem, a verdade é que essa prova não é tão complicada assim. Não sei se as provas de upgrade do SQL Server estão facilitando, mas novamente me surpreendi em fazer uma prova tão fácil. A primeira parte da prova correspondia 23 questões de marcação. Quando terminei e vi que teria uma segunda parte, logo pensei "Agora vão aparecer aqueles gigantescos estudos de casos das provas 70-441 e 70-443". Para a minha surpresa, a segunda parte da prova também era toda de marcação só que ao invés de 23 questões eram 25 questões. Qual seria a lógica de dividir uma prova em duas partes com exatamente os mesmos critérios de avaliação ? Até pensei que isso era para segmentar os assuntos cobrados, mas havia assuntos que caíram em ambas as partes. Nem mesmo tive questões de simulação com máquinas virtuais a exemplo da 70-431- Microsoft SQL Server 2005 – Implementation and Maintenance. Outra coisa que me chamou a atenção foi não cair nenhuma (absolutamente nenhuma) questão relacionada ao SQL Server PowerShell. Vi uma questão de PowerShell na prova de desenvolvimento, quem diria na de administração ? Pois é. Não caiu nenhuma.

Vamos então às dicas para quem desejar fazer esse exame:

  • Backup & Restore – Vi pelo menos umas oito questões relacionadas a backup e restore. Saber como funcionam os backups full, diferencial e log é prerequisito básico para responder essas questões. Normalmente é repassado um cenário com a descrição de uma política de backup, tipos, horários, etc e solicita-se o caminho mais rápido para restaurar o banco de dados. Um fato que eu não poderia deixar que de comentar é sobre a utilização da opção COPY_ONLY. Apesar da crítica que recebi no artigo "A armadilha do Backup Diferencial – O que fazer para evitá-la ?", houve uma questão com um cenário muito parecido com o que descrevi no artigo. Fico feliz, pois, apesar de ter o meu artigo classificado como "pejorativo", foi exatamente o raciocínio cobrado na questão, ou seja, o uso do COPY_ONLY pode realmente evitar que uma política de backup seja prejudicada. Uma última observação nesse tópico é em relação aos Database Snapshots. Eles realmente podem prover diversos benefícios em cenários de exclusão e atualização acidental de dados, mas cabe lembrar que se o banco ficar comprometido, o snapshot também ficará inacessível. Esse recurso é excelente, mas é necessário lembrar que ele não substitui integralmente um backup.
  • Soluções de Alta Disponibilidade – Uma parte das questões teve atenção voltada a soluções de High Availability (HA). Conhecer Cluster, Database Mirroring e Log Shipping certamente farão diferença e alguns pontinhos a mais. No quesito cluster, normalmente as provas da Microsoft eram mais leves em relação a esse assunto bastante apenas saber que quando o failover for automático e transparente, o Cluster normalmente era a melhor opção. Nessa prova as questões de cluster foram um pouco mais exigentes. Quando usar um ativo & ativo ? E um ativo & passivo ? Quantas instâncias ficaram em cada nó ? Se for instalar um certificado para criptografar as conexões a um Cluster quais são os passos ? A parte de Database Mirroring também não ficou devendo. Alguém aí saberia como atualizar um patch de segurança em um banco espelhado no modo High Availability ? Será que tem que parar o mirror ou não ? A parte de replicação também não ficou muito atrás. Quando será que é melhor usar a P2P ? E a Merge ? Onde será que ela se aplica ?
  • Políticas – Esse certamente é um recurso excelente do SQL Server 2008 que não poderia deixar de ficar de fora. Qual será o modo correto de configurá-la de modo a impedir que certos objetos sejam criados ? Será que ela pode ser utilizada em conjunto com o WMI e WQL no seu papel de padronização ? E como fazer para padronizar uma mesma política em um parque de servidores ?
  • Auditoria – Embora seja um tópico muito bem comentado do SQL Server 2008, vi uma ou duas questões de baixa complexidade. Basta lembrar os principais eventos que tem escopo de banco (Database Audit Especification) e os que tem escopo de servidor (Server Audit Specification)
  • Monitoramento – Quais são as formas de monitoramento e melhora de desempenho no SQL Server 2008 ? DMVs, Profiler, System Monitor, Trace Flags, Resource Governor, Database Tuning Advisor, etc. Sim temos todas essas mas quando usar qual ? Será que o System Monitor é capaz de gerar dados detalhados sobre um Deadlock ? E será que um Trace Flag é capaz de listar os processos que estão sendo bloqueados e deixam uma aplicação lenta ? Ainda na linha de novas features é importante conhecer o Data Collector (ou o Performance Studio se preferir) para não correr o risco de errar.
  • Particionamento – A  velha história da tabela imensa com milhões de registros onde somente um pedacinho dela é consultada e o tamanho está causando problemas de desempenho. O que fazer ? Particionar com certeza, mas e quando for necessário utilizar uma estratégia de particionamento em conjunto com uma estratégia de archieve e expurgo ? Nessas horas conhecer os operadores split, switch e merge são essenciais.
  • Filestream – Mais um recurso do 2008 que rende algumas questões de prova. Será que é possível rodar o Filestream com o Cluster ? E com o Mirror ? E que configurações tem de ser feitas para que usuários externos acessem o stream diretamente sem passar pelo SQL Server ? Vi umas duas questões sobre esse assunto.
  • Miscelância – Existem uma série de outros tópicos que o exame cobra mas que não aparecem com tanta força. Registro de Assemblies em CLR, opções de segurança (Trustworthy, Execute As, etc), reindexação, filegroups, compactação NTFS, etc.

Embora existam bibliografias fantásticas produzidas pela Microsoft Press (a exemplo do Internals do 2008 produzido pela Kalen Delaney), eu não utilizei nenhum desses livros para fazer a prova. Li apenas o livro Microsoft SQL Server 2008 – Management and Administration do MVP Ross Mistry em conjunto com Hilary Cotter. Na minha opinião, a leitura (com o devido entendimento) é suficiente para conseguir aprovação nesse exame. O livro não é direcionado para a prova, mas cobre com profundidade muitos temas relacionados à administração do SQL Server 2008. Para aqueles que implementam o SQL Server 2008 sobre Windows 2008 o livro se torna ainda mais interessante.

Vou ficar no aguardo da Prometric para saber o resultado da prova nos próximos dias (embora eu tenha um palpite de que fui aprovado). No caso da aprovação, conquisto agora as certificações MCTS: SQL Server 2008, Implementation and Maintenance e MCITP: Database Administrator 2008. O jeito é aguardar para conferir. Com uma pendência a menos espero focar no SQL Server Day e responder algumas dúvidas acumuladas.

Atualização (28/11/2009)

Já faz algum tempo que eu queria atualizar mas acabei enrolando. Depois do incidente, tenho que dar meus parabéns para a equipe da Prometric pela forma que eles conduziram o meu caso. Embora tenha ocorrido o problema, seguindo as orientações de um amigo, entrei no site da Prometric e preenchi um formulário no próprio site informando o ID que me passaram, o número da prova, o local de realização e meu MCPID. Em 48 horas, o site atualizou o status da prova para Passed e ainda me mandaram um PDF do Score que foi escaneado. Consegui fazer 918 pontos (devo ter errado umas quatro questões).

[ ]s,

Gustavo

Prova 70-454 – Upgrade: Transition Your MCITP SQL Server 2005 DBD to MCITP SQL Server 2008 DBD

Bom Dia Pessoal,

Nos últimos dias tenho estado um pouco ausente dos fóruns e comunidades de SQL Server. Estive um pouco fora, pois, iniciei meu ciclo de provas de SQL Server. No final de 2007 obtive a credencial MCITP – Database Administrator de SQL Server 2005. De lá pra cá não fiz mais nenhuma prova, e assim como o produto evolui, é necessário me atualizar. Passei as três últimas semanas dedicando-me para a prova 70-454 – Upgrade: Transition Your MCITP SQL Server 2005 DBD to MCITP SQL Server 2008 DBD.

A julgar pelo conteúdo cobrado e por ser uma prova de upgrade eu achava que realmente iria encarar uma prova bem complicada. O primeiro ponto é que nem o site da MS tem referências de material de estudo, livros e learning para essa prova. Isso é ruim, pois, é desconfortável ir para uma prova sem referências. Andei vasculhando a net e simplesmente não há qualquer tipo de simulado ou material recomendado (desconsidero aqui testking, braindumps, etc). Até encontrei alguns, mas apenas para avaliação. Imaginei também que no estilo da 70-447 de upgrade do 2000 para o 2005, essa prova iria ter conteúdo da 70-451 e acabei encontrando um post do Luti (Prova 70-451: Microsoft SQL Server 2008, Designin and Optimizing Database Solutions). Após ler o post, minha impressão era que essa prova seria algo bem difícil.

A verdade é que a prova 70-454, na minha opinião é muito fácil. Foram apenas 41 questões de marcar sem absolutamente nenhum estudo de caso ou ainda alguma questão de simulação que se vê nas provas de MCTS e MCITP do SQL Server 2005. Não vi nada tão complicado e classificaria essa prova no mesmo nível de dificuldade da 70-431 que também é bem fácil. Aos que forem fazer esse exame, seguem algumas dicas para aumentar as chances de aprovação:

  • XML – Não deixe de ler os capítulos de XML do curso 6232 (2008) ou do 2779 (2005). Se você compreender os métodos do XML, Nested XML, Namedspace e o XML Schema Collection, as questões de XML é pra tirar de letra. Não perca tempo com métodos legados do SQL Server 2000 como o OPENXML ou variações como XML Explicit. O Nodes e o Path são bem mais práticos e eficientes.
  • Common Table Expressions (CTEs) – Vi duas questões de CTEs recursivas. Não havia muito mistério, mas para revisar eu indicaria uma lida nos artigos de CTE do Thiago Zavaski.
  • Índices – Vi três questões sobre índices e plano de execução. Entender sobre seletividade, Include Columns e Views Indexadas é suficiente. Recomendo uma olhada no Blog do Fabiano Neves Amorim.
  • Junções – Esse é elementar. Além dos JOINs clássicos (INNER, OUTER, FULL e CROSS), é bom saber como utilizar o CROSS APPLY e a diferença para o OUTER APPLY
  • SETs – É importante conhecer os recursos de GROUPING SETs, ROLLUP e CUBE e quando utilizá-los. O livro "Microsoft SQL Server 2008: T-SQL Fundamentals" do Itzik é excelente. Não é preciso ler o livro todo (embora eu recomende, pois, é muito bom). Basta apenas o capítulo 7 referente a Pivot, Unpivot e Grouping Sets.
  • Bloqueios – Saber como o NOLOCK funciona é básico e sequer foi cobrado. Entender o SNAPSHOT Isolation Level, o HINT READPAST e outros níveis como SERIALIZABLE e REPETABLE READ ajudam bastante.
  • Integridade – A partir do SQL Server 2005 as quatro opções ANSI na construção de FKs, foram contempladas (NOACTION, CASCADE, SET NULL e SET DEFAULT). Uma atenção especial nesse ponto pode garantir algumas questões. Lembre-se que Triggers nunca são a melhor opção se uma constraint puder ser utilizada. 
  • Novos recursos – É bom dar uma lida superficial em recursos como compressão, sparse columns, table parameters, novos tipos de dados, etc. O livro Programming Microsoft SQL Server 2008 (PRO-Developer) cobre muito mais do que o necessário além de ser, na minha opinião, um dos livros mais completos de SQL Server 2008 voltado para desenvolvedores. Uma lida no capítulo 2 (T-SQL Enhacements) tem cerca de 100 páginas e cobre com profundidade muitos dos novos recursos.

Outra dica é prestar bastante atenção nos enunciados. Há questões em que pode-se até não se saber a resposta certa, mas um ORDER BY, um TYPE ou algum outro comandinho fora do lugar entregam a alternativa correta. A prova valia 1000 pontos e consegui marcar 933, o que significa que errei 3 das 41 questões. A duração foi de duas horas e meia, mas consegui acabar a prova em pouco mais de uma hora (1:15 para ser exato). Depois dessa tenho agora mais uma certificação pra coleção. Agora é estudar para as próximas.

[ ]s,

Gustavo