<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-US"><title type="html">SQL Server: um Endpoint Brasileiro</title><subtitle type="html">Discussão de assuntos ligados ao SQL Server e as ferramentas ao redor dele, como o Visual Studio por exemplo</subtitle><id>http://blogs.msdn.com/procha/atom.xml</id><link rel="alternate" type="text/html" href="http://blogs.msdn.com/procha/default.aspx" /><link rel="self" type="application/atom+xml" href="http://blogs.msdn.com/procha/atom.xml" /><generator uri="http://communityserver.org" version="2.1.61025.2">Community Server</generator><updated>2008-03-07T19:24:59Z</updated><entry><title>Disponibilidade do SQL Server 2008 R2 (CTP)</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/procha/archive/2009/08/12/disponibilidade-do-sql-server-2008-r2-ctp.aspx" /><id>http://blogs.msdn.com/procha/archive/2009/08/12/disponibilidade-do-sql-server-2008-r2-ctp.aspx</id><published>2009-08-12T22:57:51Z</published><updated>2009-08-12T22:57:51Z</updated><content type="html">&lt;p&gt;Bastante gente tem me perguntado a respeito disto, então resolvi blogar. O primeiro CTP público do SQL Server 2008 R2 já está disponível para download para assinantes do TechNet. &lt;/p&gt;  &lt;p&gt;O site com o link para download é o &lt;a title="http://www.microsoft.com/sqlserver/2008/en/us/R2.aspx" href="http://www.microsoft.com/sqlserver/2008/en/us/R2.aspx"&gt;http://www.microsoft.com/sqlserver/2008/en/us/R2.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Recomendo fortemente à toda a comunidade. Apesar de ser o primeiro CTP público (portanto, com código beta) os administradores e profissionais de TI em geral já podem começar a se familiarizar com o produto e testar as novas funcionalidades. Importante lembrar que o Kilimanjaro não traz apenas as tão esperadas funcionalidades de BI, mas também suporte a 256 processadores e bases de dados com centenas de terabytes. Recentemente fiz um jumpstart sobre o Madison (plataforma de DW do SQL Server) em Redmond. Alguns detalhes ainda não são públicos, em breve vou blogar sobre isto também. &lt;/p&gt;  &lt;p&gt;Dúvidas? Let me know&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9867060" width="1" height="1"&gt;</content><author><name>procha</name><uri>http://blogs.msdn.com/members/procha.aspx</uri></author></entry><entry><title>Visual Studio Team System 2010 e Oracle Database</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/procha/archive/2009/04/14/visual-studio-team-system-2010-e-oracle-database.aspx" /><id>http://blogs.msdn.com/procha/archive/2009/04/14/visual-studio-team-system-2010-e-oracle-database.aspx</id><published>2009-04-14T20:23:12Z</published><updated>2009-04-14T20:23:12Z</updated><content type="html">&lt;p&gt;Boa notícia: está em desenvolvimento pela Quest Software um Database Schema Provider (DSP) para Oracle. Este DSP estará disponível no VSTS 2010, de acordo com &lt;a href="http://www.microsoft.com/presspass/features/2009/feb09/02-24ZanderQA.mspx" target="_blank"&gt;Jason Zander, gerente geral do Visual Studio, em entrevista&lt;/a&gt;. Caso alguém tenha dúvidas quanto a competência da Quest no desenvolvimento deste DSP, lembro que eles são os desenvolvedores do Toad for Oracle, que é uma das ferramentas mais populares entre os DBAs deste banco de dados.&lt;/p&gt;  &lt;p&gt;Na prática, isto significa que teremos todos os benefícios do Visual Studio 2008 Database Edition para bancos de dados Oracle, o que é fantástico. Pessoalmente, sou um grande fã do VSTS Database Edition e sempre que mostro ele aos meus clientes e parceiros percebo que eles ficaram entusiasmados. Para maiores detalhes sobre esta ferramenta, veja meu blog post &lt;a href="http://blogs.msdn.com/procha/archive/2008/04/07/visual-studio-team-system-2008-database-edition.aspx" target="_blank"&gt;Visual Studio Team System 2008 Database Edition&lt;/a&gt;. Em resumo, aí vão algumas das funcionalidades que podemos fazer HOJE com o DB Pro (como chamamos ele – ou DataDude), que poderão ser feitas com bancos de dados Oracle em breve:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Reconstrução de nomes de objetos&lt;/strong&gt; com a habilidade de prever as mudanças antes de realizá-las (Refactoring) &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Ferramentas de comparação&lt;/strong&gt; (de schemas e dados) permitem comparações e sincronização do schema e dos dados entre bancos de dados de desenvolvimento, teste e produção &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Teste de Unit&lt;/strong&gt; do banco de dados (em breve também com análise de cobertura de código para testes de procedures, triggers, etc)&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Controle de fontes&lt;/strong&gt; e de versões de todos os objetos do banco de dados com a possibilidade de se fazer engenharia reversa em um banco de dados a fim de se trazê-lo ao sistema de controle &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Colaboração em time&lt;/strong&gt; com itens de trabalho (Work Item) e integração de processos com o Team Foundation Server, o qe viabiliza o desenvolvimento de banco de dados baseado em projeto&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Aderência a processos de desenvolvimento de software&lt;/strong&gt; &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Gerador de carga de dados de teste&lt;/strong&gt; com valores “Reais e Coerentes”, através habilidade de importar informações como Row Counts e histogramas de um banco de dados existente ou de geração de strings utilizando expressões regulares&lt;/li&gt;    &lt;li&gt;Habilidade de &lt;strong&gt;enviar apenas as alterações realizadas em um banco de dados&lt;/strong&gt;, ao invés de apagar o banco inteiro e reconstruí-lo a cada mudança &lt;/li&gt;    &lt;li&gt;Muito mais&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Para testar o Visual Studio visite &lt;a title="http://www.microsoft.com/visualstudio/en-us/try/trial-software.mspx" href="http://www.microsoft.com/visualstudio/en-us/try/trial-software.mspx"&gt;http://www.microsoft.com/visualstudio/en-us/try/trial-software.mspx&lt;/a&gt; . Você pode baixar o arquivo .iso com o instalador, ou pode baixar uma VPC já configurada e iniciar seus testes. &lt;/p&gt;  &lt;p&gt;Bom divertimento. &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9548836" width="1" height="1"&gt;</content><author><name>procha</name><uri>http://blogs.msdn.com/members/procha.aspx</uri></author></entry><entry><title>Service Pack 1 do SQL Server 2008 disponível para download</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/procha/archive/2009/04/08/service-pack-1-do-sql-server-2008-dispon-vel-para-download.aspx" /><id>http://blogs.msdn.com/procha/archive/2009/04/08/service-pack-1-do-sql-server-2008-dispon-vel-para-download.aspx</id><published>2009-04-09T00:47:15Z</published><updated>2009-04-09T00:47:15Z</updated><content type="html">&lt;p&gt;&lt;a href="http://blogs.technet.com/dataplatforminsider/archive/2009/04/07/service-pack-1-for-sql-server-2008-available-today.aspx"&gt;Anúncio oficial: disponibilidade do Service Pack 1 para SQL Server 2008.&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;“…&lt;/p&gt;  &lt;p&gt;Está disponível desde ontem (07/04/2009) o &lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=66ab3dbb-bf3e-4f46-9559-ccc6a4f9dc19"&gt;Service Pack 1 para SQL Server 2008&lt;/a&gt;. Basicamente, o SP1 é um roll-up de updates acumulativos e oferece maior suportabilidade e estabilidade. Todos os clientes utilizando SQL Server 2008 devem fazer o download e atualizar seus ambientes para usufruirem das vantagens do SP1 imediatamente. &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Com o Service Pack 1, a Microsoft fez investimentos que facilitam o deployment e tornam o gerenciamento de Service Packs mais eficiente. Não existem novas funcionalidades por parte deste Service Pack&lt;/li&gt;    &lt;li&gt;Além do roll-up dos updades cumulativos anteriores, o SP1 inclui atualizações menores (QFE) em resposta ao feedback enviado pela comunidade de SQL Server&lt;/li&gt;    &lt;li&gt;Entre as novas facilidades no gerenciamento de Service Packs, foi incluida a capacidade de deployment por slipstream, Service Pack Uninstall e Report Builder 2.0 click-once deployment&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Slipstream permite aos administradores instalar o SQL Server 2008 e SP1 de uma só vez. Isto diminui o tempo total da instalação, incluindo menos reboots, o que implica em maior produtividade&lt;/li&gt;      &lt;li&gt;Service Pack Uninstall permite aos administradores desinstalarem o Service Pack separado do restante do produto. Esta funcionalidade também aumenta a produtividade do DBA, reduz o custo de deoployment e aumenta a suportabilidade do produto&lt;/li&gt;      &lt;li&gt;Report Builder Click Once melhora este aplicativo de autoria de relatórios para usuário final facilitando o deployment&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;Com mais de três milhões de downloads desde o RTM em Agosto, já é claro que os clientes veem o SQL Server 2008 como um investimento inteligente. Clientes, parceiros e desenvolvedores já usufruem dos benefícios que o produto oferece na versão RTM. &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Existem poucos fixes com o SP1, sendo a maioria deles itens pequenos identificados pela comunidade&lt;/li&gt;    &lt;li&gt;Este Service Pack oferece 80% menos chance de mudança na configuração do ambiente das empresas em comparação com Service Packs das versões anteriores. Este número é resultado do investimento feito pela Microsoft para facilitar o deployment de Service Packs&lt;/li&gt;    &lt;li&gt;Empresas como Xerox, Samsung Electronics, Raymond James e outros estão rodando suas aplicações de missão crítica em SQL Server 2008. &lt;/li&gt;    &lt;li&gt;Fazer o upgrade para SQL Server 2008 tem um ROI provado de 162%. Um estudo recente da Forrester sobre o impacto econômico total de se fazer o upgrade para SQL Server 2008 baseado em uma empresa real conclui que, além do alto ROI, foi percebida a redução de custos com produtividade e sobrecarga de trabalho totalizando mais de 3 milhões de dólares. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;O SP1 está disponível para download em &lt;a title="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=66ab3dbb-bf3e-4f46-9559-ccc6a4f9dc19" href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=66ab3dbb-bf3e-4f46-9559-ccc6a4f9dc19"&gt;http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=66ab3dbb-bf3e-4f46-9559-ccc6a4f9dc19&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;…”&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9538995" width="1" height="1"&gt;</content><author><name>procha</name><uri>http://blogs.msdn.com/members/procha.aspx</uri></author></entry><entry><title>Download gratuito de e-book: Introducing Microsoft SQL Server 2008</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/procha/archive/2008/12/23/download-gratuito-de-e-book-introducing-microsoft-sql-server-2008.aspx" /><id>http://blogs.msdn.com/procha/archive/2008/12/23/download-gratuito-de-e-book-introducing-microsoft-sql-server-2008.aspx</id><published>2008-12-23T20:10:50Z</published><updated>2008-12-23T20:10:50Z</updated><content type="html">&lt;p&gt;Como tenho tido pouquíssimo tempo de desenvolver conteúdo técnico e postar no blog, resolvi colocar esta boa notícia. Está disponível para download gratuito (mediante cadastro) o livro &lt;em&gt;&lt;strong&gt;Introducing Microsoft SQL Server 2008&lt;/strong&gt;&lt;/em&gt; da Microsoft Press. &lt;/p&gt;  &lt;p&gt;O livro se destina a DBAs, desenvolvedores, administradores de sistemas e qualquer outra pessoa que se interesse por bancos de dados em geral. Altamente recomendável também para quem JÁ conhece SQL Server, seja qual for a versão. &lt;/p&gt;  &lt;p&gt;Para fazer download do livro &lt;a target="_blank" href="http://csna01.libredigital.com/?urss1q2we6"&gt;visite este link&lt;/a&gt;. Aí vai a lista de capítulos, para poupar um pouco o seu trabalho, que está lendo meu blog (muito obrigado, aliás!):&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Introducing Microsoft SQL Server 2008:       &lt;br /&gt;Chapter 1: Security and Administration        &lt;br /&gt;Chapter 2: Performance        &lt;br /&gt;Chapter 3: Type System        &lt;br /&gt;Chapter 4: Programmability        &lt;br /&gt;Chapter 5: Storage        &lt;br /&gt;Chapter 6: Enhancements for High Availability        &lt;br /&gt;Chapter 7: Business Intelligence Enhancements&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;E a capa:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://csna01.libredigital.com/?urss1q2we6"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="ms_sql_srv_cvr" border="0" alt="ms_sql_srv_cvr" src="http://blogs.msdn.com/blogfiles/procha/WindowsLiveWriter/DownloadgratuitodeeBookIntroducingMicros_D49E/ms_sql_srv_cvr_3.jpg" width="154" height="187" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Em tempo, boas festas a você e a toda sua família. Que 2009 seja um ano de muita saúde, justiça, amizade e amor para todos nós.&lt;/p&gt;  &lt;p&gt;Forte abraço e até 2009. &lt;/p&gt;  &lt;p&gt;Pericles Rocha&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9250438" width="1" height="1"&gt;</content><author><name>procha</name><uri>http://blogs.msdn.com/members/procha.aspx</uri></author></entry><entry><title>SQL Server 2008: 10 Motivos para Fazer Upgrade (Demos do TechEd Brasil 2008)</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/procha/archive/2008/10/21/sql-server-2008-10-motivos-para-fazer-upgrade-demos-do-teched-brasil-2008.aspx" /><id>http://blogs.msdn.com/procha/archive/2008/10/21/sql-server-2008-10-motivos-para-fazer-upgrade-demos-do-teched-brasil-2008.aspx</id><published>2008-10-21T06:14:37Z</published><updated>2008-10-21T06:14:37Z</updated><content type="html">&lt;p&gt;Fiquei um tempo longe do blog. Isto se deve à extensiva rotina de trabalho e de um primeiro trimestre fiscal bastante “ocupado” aqui na Microsoft. Mas isso não é do interesse de ninguém aqui, então vamos ao que interessa. &lt;/p&gt;  &lt;p&gt;Nos dias 14, 15 e 16 de Outubro deste ano tivemos o TechEd 2008 aqui em São Paulo. No dia 14, fiz a palestra “Upgrade para o SQL Server 2008: 10 Motivos para Fazê-lo” e prometi que postaria aqui o script de cada uma das demos – inclusive as que não deu tempo de eu mostrar :-)&lt;/p&gt;  &lt;p&gt;Promessa é dívida. Infelizmente não posso postar a apresentação em si aqui, porque é restrita aos que estiveram no TechEd. Mas se você tiver dúvida sobre qualquer um dos assuntos abaixo ou se precisar de ajuda para reproduzir as demos, por favor me avise. &lt;/p&gt;  &lt;p&gt;Os assuntos abordados no TechEd, caso você não tenha participado, foram os abaixo:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Data Compression &lt;/li&gt;    &lt;li&gt;Policy Based Management &lt;/li&gt;    &lt;li&gt;Resource Governor &lt;/li&gt;    &lt;li&gt;Transparent Data Encryption &lt;/li&gt;    &lt;li&gt;Auditoria &lt;/li&gt;    &lt;li&gt;Novidades em T-SQL &lt;/li&gt;    &lt;li&gt;Novidades no SQL Server Management Studio &lt;/li&gt;    &lt;li&gt;Spatial Data &lt;/li&gt;    &lt;li&gt;FileStream &lt;/li&gt;    &lt;li&gt;Reporting Services &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Os scripts estão disponíveis no link abaixo:&lt;/p&gt; &lt;iframe style="border-bottom: #dde5e9 1px solid; border-left: #dde5e9 1px solid; padding-bottom: 0px; background-color: #ffffff; margin: 3px; padding-left: 0px; width: 240px; padding-right: 0px; height: 66px; border-top: #dde5e9 1px solid; border-right: #dde5e9 1px solid; padding-top: 0px" marginheight="0" src="http://cid-8e1baef56e6b027a.skydrive.live.com/embedrowdetail.aspx/SQL%20Server/TechEd%20Brasil%202008/Scripts%20TechEd2008.zip" frameborder="0" marginwidth="0" scrolling="no"&gt;&lt;/iframe&gt;  &lt;p&gt;Algumas das demos, no entanto, foram em interface gráfica. Para a de Policy-Based Management, por exemplo, veja um &lt;a target="_blank" href="http://blogs.msdn.com/procha/archive/2008/01/21/declarative-management-framework.aspx"&gt;outro exemplo que postei aqui no meu blog&lt;/a&gt;, quando a feature ainda se chamava Declarative Management Framework. O mesmo se aplica às novidades do SQL Server Management Studio, &lt;a target="_blank" href="http://blogs.msdn.com/procha/archive/2008/08/13/novidades-no-sql-server-management-studio-ssms.aspx"&gt;onde já publiquei um artigo aqui também&lt;/a&gt; – embora tenha aprendido com o &lt;a target="_blank" href="http://buckwoody.com"&gt;Buck Woody&lt;/a&gt; sobre várias outras novidades que eu nem conhecia ainda. &lt;/p&gt;  &lt;p&gt;Os bancos de dados de exemplo (AdventureWorks, AdventureWorks2008, AdventureWorksDW, etc) e os exemplos do Reporting Services também podem ser encontrados no &lt;a target="_blank" href="http://www.codeplex.com/MSFTDBProdSamples/Release/ProjectReleases.aspx?ReleaseId=16040"&gt;CodePlex&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Em caso de dúvidas por favor me avise. Espero que tenha aproveitado o TechEd 2008!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9008590" width="1" height="1"&gt;</content><author><name>procha</name><uri>http://blogs.msdn.com/members/procha.aspx</uri></author><category term="SQL Server 2008" scheme="http://blogs.msdn.com/procha/archive/tags/SQL+Server+2008/default.aspx" /><category term="SQL Server" scheme="http://blogs.msdn.com/procha/archive/tags/SQL+Server/default.aspx" /><category term="Resource Governor" scheme="http://blogs.msdn.com/procha/archive/tags/Resource+Governor/default.aspx" /><category term="Reporting Services" scheme="http://blogs.msdn.com/procha/archive/tags/Reporting+Services/default.aspx" /><category term="SQL Server backup" scheme="http://blogs.msdn.com/procha/archive/tags/SQL+Server+backup/default.aspx" /><category term="TechEd 2008" scheme="http://blogs.msdn.com/procha/archive/tags/TechEd+2008/default.aspx" /><category term="10 Motivos para Fazer Upgrade" scheme="http://blogs.msdn.com/procha/archive/tags/10+Motivos+para+Fazer+Upgrade/default.aspx" /></entry><entry><title>Webcasts de SQL Server no MSDN Experience</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/procha/archive/2008/08/13/webcasts-de-sql-server-no-msdn-experience.aspx" /><id>http://blogs.msdn.com/procha/archive/2008/08/13/webcasts-de-sql-server-no-msdn-experience.aspx</id><published>2008-08-13T18:33:37Z</published><updated>2008-08-13T18:33:37Z</updated><content type="html">&lt;p&gt;&lt;a href="http://www.msdnbrasil.com.br/experience/sqlserver" target="_blank"&gt;Está disponível o novo MSDN Experience exclusivo para SQL Server&lt;/a&gt;. Parafraseando meu bom amigo Luciano Moreira (Especialista em Desenvolvimento na Microsoft Brasil): &lt;/p&gt;  &lt;p&gt;&lt;em&gt;“O Experience de SQL Server conta com 5 módulos, que cobrem desde à introdução ao SQL Server e suas ferramentas, passando pela escrita de consultas (simples e complexas), criação de views e stored procedures, programação CLR, arquitetura e componentes internos, indexação, gerenciamento de transações, análise de performance e troubleshooting, e como um extra, ainda temos duas sessões sobre o Service Broker…” “…O conteúdo do MSDN Experience pode ser aplicado tanto para o SQL Server 2005 e 2008, como em parte, para o SQL Server 2000.”&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;O conteúdo é muito bom! Dois dos webcasts foram gravados por mim.&lt;/p&gt;  &lt;p&gt;Visite em &lt;strong&gt;MSDN Experience - SQL Server:&lt;/strong&gt; &lt;a href="http://www.msdnbrasil.com.br/experience/sqlserver"&gt;http://www.msdnbrasil.com.br/experience/sqlserver&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Enjoy!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8858918" width="1" height="1"&gt;</content><author><name>procha</name><uri>http://blogs.msdn.com/members/procha.aspx</uri></author><category term="SQL Server 2008" scheme="http://blogs.msdn.com/procha/archive/tags/SQL+Server+2008/default.aspx" /><category term="SQL Server 2005" scheme="http://blogs.msdn.com/procha/archive/tags/SQL+Server+2005/default.aspx" /><category term="SQL Server em portugu&amp;#234;s" scheme="http://blogs.msdn.com/procha/archive/tags/SQL+Server+em+portugu_26002300_234_3B00_s/default.aspx" /><category term="SQL Server" scheme="http://blogs.msdn.com/procha/archive/tags/SQL+Server/default.aspx" /><category term="Gerenciamento" scheme="http://blogs.msdn.com/procha/archive/tags/Gerenciamento/default.aspx" /><category term="Reporting Services" scheme="http://blogs.msdn.com/procha/archive/tags/Reporting+Services/default.aspx" /><category term="Alta disponibilidade" scheme="http://blogs.msdn.com/procha/archive/tags/Alta+disponibilidade/default.aspx" /><category term="Cluster" scheme="http://blogs.msdn.com/procha/archive/tags/Cluster/default.aspx" /><category term="Ciclo de vida de desenvolvimento" scheme="http://blogs.msdn.com/procha/archive/tags/Ciclo+de+vida+de+desenvolvimento/default.aspx" /><category term="Desenvolvimento em Banco de Dados" scheme="http://blogs.msdn.com/procha/archive/tags/Desenvolvimento+em+Banco+de+Dados/default.aspx" /><category term="SQL Server Management Studio" scheme="http://blogs.msdn.com/procha/archive/tags/SQL+Server+Management+Studio/default.aspx" /><category term="T-SQL" scheme="http://blogs.msdn.com/procha/archive/tags/T-SQL/default.aspx" /><category term="Webcast" scheme="http://blogs.msdn.com/procha/archive/tags/Webcast/default.aspx" /><category term="curso" scheme="http://blogs.msdn.com/procha/archive/tags/curso/default.aspx" /><category term="learning" scheme="http://blogs.msdn.com/procha/archive/tags/learning/default.aspx" /><category term="MSDN" scheme="http://blogs.msdn.com/procha/archive/tags/MSDN/default.aspx" /></entry><entry><title>Novidades no SQL Server Management Studio (SSMS)</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/procha/archive/2008/08/13/novidades-no-sql-server-management-studio-ssms.aspx" /><id>http://blogs.msdn.com/procha/archive/2008/08/13/novidades-no-sql-server-management-studio-ssms.aspx</id><published>2008-08-13T18:20:15Z</published><updated>2008-08-13T18:20:15Z</updated><content type="html">&lt;p&gt;Recentemente tenho utilizado bastante algumas das novidades do SQL Server Management Studio na versão 10 (SQL Server 2008) e achei que seria interessante postar sobre isto. Algumas dessas novidades eram muito esperadas (debug de código T-SQL e IntelliSense, por exemplo) e vão deixar os administradores bastante entusiasmados. Outros recursos novos ajudam a reduzir o tempo necessário para administrar seus servidores, inclusive versões anteriores do SQL Server. &lt;/p&gt;  &lt;p&gt;Vamos a algumas das novidades mais interessantes:&lt;/p&gt;  &lt;h1&gt;IntelliSense&lt;/h1&gt;  &lt;p&gt;Agora é possível utilizar o editor de query do Management Studio com IntelliSense. Este recurso atua de forma muito similar de como funciona no Visual Studio, fornecendo recursos que completam os comandos conforme você os digita, destacam os erros de sintaxe e digitação e ajuda com parâmetros (aquele “tip tool” com a especificação dos parâmetros).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/procha/WindowsLiveWriter/NovidadesnoSQLServerManagementStudioSSMS_C8B9/01_2.jpg"&gt;&lt;img title="01" style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="181" alt="01" src="http://blogs.msdn.com/blogfiles/procha/WindowsLiveWriter/NovidadesnoSQLServerManagementStudioSSMS_C8B9/01_thumb.jpg" width="303" border="0" /&gt;&lt;/a&gt;&amp;#160; &lt;a href="http://blogs.msdn.com/blogfiles/procha/WindowsLiveWriter/NovidadesnoSQLServerManagementStudioSSMS_C8B9/03_2.jpg"&gt;&lt;img title="03" style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="183" alt="03" src="http://blogs.msdn.com/blogfiles/procha/WindowsLiveWriter/NovidadesnoSQLServerManagementStudioSSMS_C8B9/03_thumb.jpg" width="325" border="0" /&gt;&lt;/a&gt; &lt;a href="http://blogs.msdn.com/blogfiles/procha/WindowsLiveWriter/NovidadesnoSQLServerManagementStudioSSMS_C8B9/02_4.jpg"&gt;&lt;img title="02" style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="193" alt="02" src="http://blogs.msdn.com/blogfiles/procha/WindowsLiveWriter/NovidadesnoSQLServerManagementStudioSSMS_C8B9/02_thumb_1.jpg" width="244" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Há quem diga que não gosta de IntelliSense, mas são poucos. E os que “não gostam”, geralmente mudam de idéia muito rápido. Mas para quem realmente não gosta, o IntelliSense pode ser desativado. &lt;/p&gt;  &lt;h1&gt;Debugger para código T-SQL&lt;/h1&gt;  &lt;p&gt;Quando eu queria resolver um problema no meu código T-SQL, costumava colocar comandos SELECT ou PRINT no meio das procedures para analisar o valor das variáveis durante a execução. Era possível resolver problemas de código (em geral, problemas de lógica) por esse tipo de análise ou seguindo outras técnicas. &lt;/p&gt;  &lt;p&gt;No novo Management Studio, é possível fazer debug do seu código T-SQL. Você pode colocar breakpoints, executar linha por linha e ter watches para analisar o valor dos seus objetos e de suas variáveis, da mesma forma como faz com o Visual Studio. Este é um grande recurso para aumentar a produtividade dos desenvolvedores e melhorar a qualidade do seu produto. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/procha/WindowsLiveWriter/NovidadesnoSQLServerManagementStudioSSMS_C8B9/07_2.jpg"&gt;&lt;img title="07" style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="159" alt="07" src="http://blogs.msdn.com/blogfiles/procha/WindowsLiveWriter/NovidadesnoSQLServerManagementStudioSSMS_C8B9/07_thumb.jpg" width="437" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/procha/WindowsLiveWriter/NovidadesnoSQLServerManagementStudioSSMS_C8B9/08_2.jpg"&gt;&lt;img title="08" style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="546" alt="08" src="http://blogs.msdn.com/blogfiles/procha/WindowsLiveWriter/NovidadesnoSQLServerManagementStudioSSMS_C8B9/08_thumb.jpg" width="727" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;h1&gt;Procurar Objetos em seu banco de dados (Object Finder)&lt;/h1&gt;  &lt;p&gt;Você tem uma procedure, mas não se lembra o nome dela. Você sabe que ela tem a palavra “Converte” no meio do nome, mas não consegue encontrar ela. Seus problemas estão resolvidos!&lt;/p&gt;  &lt;p&gt;Com o novo SQL Server Management Studio, você pode pesquisar todos os objetos do seu servidor através de um campo de busca, simples. Ele retorna todos os tipos de objetos e aceita sintaxes como LIKE (‘%Texto%’). Agora ficou mais fácil encontrar suas tabelas, colunas, procedures, views, logins e tudo mais.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/procha/WindowsLiveWriter/NovidadesnoSQLServerManagementStudioSSMS_C8B9/05_2.jpg"&gt;&lt;img title="05" style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="282" alt="05" src="http://blogs.msdn.com/blogfiles/procha/WindowsLiveWriter/NovidadesnoSQLServerManagementStudioSSMS_C8B9/05_thumb.jpg" width="871" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;h1&gt;Multi-Server Management&lt;/h1&gt;  &lt;p&gt;Faz tempo que temos a habilidade de registrar servidores SQL Server na organização na ferramenta de administração (Enterprise Manager, Management Studio) e termos uma lista organizada destes servidores. Por exemplo: criávamos grupos e, abaixo destes grupos, registrávamos os servidores SQL Server que quiséssemos, para fácil acesso. Acontece que esta lista ficava guardada no Windows Registry e era diferente em todas as estações que você se logava. &lt;/p&gt;  &lt;p&gt;Agora o SQL Server Management Studio permite criar grupos de servidores em um repositório centralizado, chamado de Central Management Servers. Este repositório fica armazenado no MSDB de um servidor que você eleger e qualquer usuário que se conectar a este servidor vai visualizar a mesma lista de servidores disponíveis para administração. A partir deste repositório central você pode realizar as tarefas de administração do SQL Server Database Engine, Analysis Services, Reporting Services, SQL Server Compact e do Integration Services.&lt;/p&gt;  &lt;h1&gt;Consultas em vários servidores&lt;/h1&gt;  &lt;p&gt;A partir dos servidores registrados no seu ambiente centralizado, pode-se disparar uma query ou um comando que vai atingir todos os servidores do seu grupo de uma só vez. Este recurso foi solicitado pelos DBA, pois facilita tarefas repetitivas de administração.&lt;/p&gt;  &lt;h1&gt;Error List Window&lt;/h1&gt;  &lt;p&gt;Quando você executa um comando que retorna um erro no Management Studio, o erro indicava em qual linha estava o erro. Às vezes, você fica procurando o erro e simplesmente não consegue encontrar por ser um problema de digitação simples, ou por não conhecer a sintaxe corretamente. &lt;/p&gt;  &lt;p&gt;A nova Error List Window dá mais detalhes sobre seu erro e a posição dele em seu código, enquanto você digita. Mais uma vez, de forma semelhante ao Visual Studio.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8858834" width="1" height="1"&gt;</content><author><name>procha</name><uri>http://blogs.msdn.com/members/procha.aspx</uri></author><category term="SQL Server 2008" scheme="http://blogs.msdn.com/procha/archive/tags/SQL+Server+2008/default.aspx" /><category term="SQL Server em portugu&amp;#234;s" scheme="http://blogs.msdn.com/procha/archive/tags/SQL+Server+em+portugu_26002300_234_3B00_s/default.aspx" /><category term="SQL Server" scheme="http://blogs.msdn.com/procha/archive/tags/SQL+Server/default.aspx" /><category term="Gerenciamento" scheme="http://blogs.msdn.com/procha/archive/tags/Gerenciamento/default.aspx" /><category term="Ciclo de vida de desenvolvimento" scheme="http://blogs.msdn.com/procha/archive/tags/Ciclo+de+vida+de+desenvolvimento/default.aspx" /><category term="Desenvolvimento em Banco de Dados" scheme="http://blogs.msdn.com/procha/archive/tags/Desenvolvimento+em+Banco+de+Dados/default.aspx" /><category term="Sem&amp;#226;ntica" scheme="http://blogs.msdn.com/procha/archive/tags/Sem_26002300_226_3B00_ntica/default.aspx" /><category term="SQL Server Management Studio" scheme="http://blogs.msdn.com/procha/archive/tags/SQL+Server+Management+Studio/default.aspx" /><category term="Debug" scheme="http://blogs.msdn.com/procha/archive/tags/Debug/default.aspx" /><category term="SSMS" scheme="http://blogs.msdn.com/procha/archive/tags/SSMS/default.aspx" /><category term="T-SQL" scheme="http://blogs.msdn.com/procha/archive/tags/T-SQL/default.aspx" /><category term="IntelliSense" scheme="http://blogs.msdn.com/procha/archive/tags/IntelliSense/default.aspx" /></entry><entry><title>SQL Server 2008 RC0 (Release Candidate 0) - Download</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/procha/archive/2008/06/12/sql-server-2008-rc0-release-candidate-0-download.aspx" /><id>http://blogs.msdn.com/procha/archive/2008/06/12/sql-server-2008-rc0-release-candidate-0-download.aspx</id><published>2008-06-12T19:15:11Z</published><updated>2008-06-12T19:15:11Z</updated><content type="html">&lt;p&gt;O SQL Server 2008 RC0 já está disponível para download público em &lt;/p&gt; &lt;p&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=35F53843-03F7-4ED5-8142-24A4C024CA05&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=35F53843-03F7-4ED5-8142-24A4C024CA05&amp;amp;displaylang=en&lt;/a&gt;.  &lt;p&gt;O site oficial do produto é &lt;a href="http://www.microsoft.com/sqlserver/2008/en/us/default.aspx"&gt;http://www.microsoft.com/sqlserver/2008/en/us/default.aspx&lt;/a&gt; e alguns Virtual Labs podem ser encontrados em &lt;a href="http://www.microsoft.com/sqlserver/2008/en/us/learning.aspx"&gt;http://www.microsoft.com/sqlserver/2008/en/us/learning.aspx&lt;/a&gt;&amp;nbsp; &lt;p&gt;Enjoy!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8593342" width="1" height="1"&gt;</content><author><name>procha</name><uri>http://blogs.msdn.com/members/procha.aspx</uri></author><category term="SQL Server 2008" scheme="http://blogs.msdn.com/procha/archive/tags/SQL+Server+2008/default.aspx" /><category term="Declarative Management Framework" scheme="http://blogs.msdn.com/procha/archive/tags/Declarative+Management+Framework/default.aspx" /><category term="Resource Governor" scheme="http://blogs.msdn.com/procha/archive/tags/Resource+Governor/default.aspx" /><category term="Reporting Services" scheme="http://blogs.msdn.com/procha/archive/tags/Reporting+Services/default.aspx" /><category term="Data Mining" scheme="http://blogs.msdn.com/procha/archive/tags/Data+Mining/default.aspx" /><category term="Alta disponibilidade" scheme="http://blogs.msdn.com/procha/archive/tags/Alta+disponibilidade/default.aspx" /></entry><entry><title>SQL Server 2005 em ambiente virtualizado</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/procha/archive/2008/05/28/sql-server-2005-em-ambiente-virtualizado.aspx" /><id>http://blogs.msdn.com/procha/archive/2008/05/28/sql-server-2005-em-ambiente-virtualizado.aspx</id><published>2008-05-28T21:28:34Z</published><updated>2008-05-28T21:28:34Z</updated><content type="html">&lt;p&gt;Virtualização tem sido um dos assuntos mais freqüentes nos bate-papos que tenho feito com meus clientes. Todos querem saber se&amp;nbsp; o SQL Server é um bom candidato para virtualização, tanto no aspecto econômico quanto do aspecto de disponibilidade e tempo de resposta. Com o lançamento do Hyper-V no segundo semestre deste ano as possibilidades de economia em ambientes de TI se tornam uma real possibilidade. Não apenas a economia, aliás, mas também a melhor utilização de seus recursos. Vamos explorar então alguns dos principais aspectos em torno deste assunto. &lt;/p&gt; &lt;h2&gt;Benefícios da virtualização&lt;/h2&gt; &lt;p&gt;A virtualização de servidores traz diversos benefícios às organizações, não importa o tamanho delas. Vamos entender quais são os principais benefícios desta opção:&lt;/p&gt; &lt;h3&gt;Consolidação de Servidores&lt;/h3&gt; &lt;p&gt;Estima-se que servidores dedicados funcionem muito abaixo de sua capacidade, mais exatamente de 5% a 15% das capacidades reais do hardware (veja maiores detalhes &lt;a href="http://www.microsoft.com/downloads/thankyou.aspx?familyId=0fe4e411-8c88-48c2-8903-3fd9cbb10d05&amp;amp;displayLang=en#" target="_blank"&gt;aqui&lt;/a&gt;). Virtualizando servidores em um número menor de servidores físicos ajuda a utilizar melhor o seu investimento em hardware, reduzir custos de energia e de refrigeração, além da economia de espaço físico. Se você precisar crescer sua estrutura, faz mais sentido (e é mais barato) adicionar digamos processador, memória e discos a um sistema existente do que comprar servidores novos. Em alguns servidores hoje pode-se particionar o hardware a fim de se alocar os recursos entre suas "máquinas virtuais" - embora este seja um conceito um pouco diferente do que estamos discutindo.&lt;/p&gt; &lt;h3&gt;Licenciamento&lt;/h3&gt; &lt;p&gt;Este é um dos assuntos mais importantes a abordar quando falamos em virtualização. Então, vamos primeiro aos básicos de licenciamento para SQL Server. O SQL Server pode ser licenciado de duas formas:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;Por processador:&lt;/strong&gt; é necessária uma licença do SQL Server 2005 para cada processador presente no servidor onde ele está sendo executado. O importante é lembrarmos que este método de licenciamento leva em consideração os processadores físicos, e não os núcleos em caso de processadores com mais de um núcleo. Por exemplo: uma máquina com quatro processadores quadcore (e, portanto com 16 núcleos) precisa apenas de quatro licenças para o SQL Server. Não é cobrado nada por cada um dos demais núcleos - este é, na verdade, um dos diferenciais do SQL Server em relação aos concorrentes. Este modelo é em geral utilizado em casos onde o número de SQL CALs torna o valor do modelo Server + CAL menos interessante ou em casos onde o acesso ao banco de dados é feito por clientes indeterminados (internet, por exemplo)&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Server+CAL: &lt;/strong&gt;neste caso adquire-se uma licença para o servidor e uma SQL CAL (Client Access License) para cada acesso feito ao SQL Server. Quando falamos em user CAL, é importante lembrar que esta licença é tratada de forma nominal, e não de acesso simultâneo&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;O grande benefício do ambiente virtualizado se faz realidade utilizando o SQL Server 2005 Enterprise Edition. Com esta edição, se você tem, digamos, dez máquinas virtuais em um servidor com quatro processadores, é necessário licenciar apenas os quatro processadores físicos do host. Se você utilizar SQL Server 2005 Standard Edition ou Workgroup Edition, seria necessário licenciar cada uma das dez máquinas virtuais. &lt;/p&gt; &lt;h3&gt;Vários ambientes consolidados&lt;/h3&gt; &lt;p&gt;Pode-se ter em um mesmo servidor físico os seus ambientes de produção, homologação e desenvolvimento, por exemplo. Cada um destes em uma instância virtualizada. Além disto, pode-se implementar soluções de alta disponibilidade como o cluster, log shipping ou database mirroring "in a box". Concordo que algumas destas soluções são específicas para endereçar problemas de hardware, como o cluster, mas mesmo assim é importante registrar. &lt;/p&gt; &lt;h3&gt;Administração Centralizada&lt;/h3&gt; &lt;p&gt;Ao invés de se ter vários servidores, consoles e racks, um local único para administração ajuda a reduzir os custos de operação e erros humanos. &lt;/p&gt; &lt;h2&gt;Performance e Suporte&lt;/h2&gt; &lt;p&gt;Tendo em vista todas as reduções de custo ainda permanece a dúvida: devo virtualizar meus servidores de banco de dados? A primeira preocupação é com performance. Também existe a preocupação não menos importante quanto a suportabilidade do ambiente. &lt;/p&gt; &lt;p&gt;Eu entendo que a resposta a este assunto vai variar de caso em caso, sendo oportuno um trabalho de testes comparativos. Em muitos casos, vai melhorar (ou ficar igual). Em muitos outros, vai piorar. Eu entendo que tendo feito um trabalho de capacity planning onde se estima o sizing dos servidores e atribuindo aos servidores virtuais tais recursos mínimos, não devam existir problemas de performance. No entanto, o príncipal gargalo em servidores de banco de dados está no subsistema de discos. Lembre-se que seus servidores virtualizados vão compartilhar de um mesmo bus para fazer IO e esta operação pode se tornar custosa. Com um ambiente de storage bem dimensionado e performático as chances se reduzem aqui. &lt;/p&gt; &lt;p&gt;Quanto ao suporte, desde que seus servidores estejam virtualizados utilizando tecnologia Microsoft (Virtual Server ou Hyper-V, quando este estiver disponível) o suporte é 100% garantido. Em tecnologias de virtualização não-Microsoft, o suporte poderá estar condicionado ao fato de se poder simular o mesmo problema em ambiente físico. Veja a política da Microsoft para suporte a ambientes virtualizados em &lt;a href="http://support.microsoft.com/kb/897615/en-us"&gt;http://support.microsoft.com/kb/897615/en-us&lt;/a&gt;&amp;nbsp;&lt;/p&gt; &lt;h2&gt;Conclusão&lt;/h2&gt; &lt;p&gt;A virtualização de servidores permite a empresas reduzir seus custos com data center reduzindo espaço necessário, economizando energia e recursos de resfriação. Além disso, viabiliza a melhor utilização dos seus recursos de hardware e a reduzir custos também com licenciamento.&lt;/p&gt; &lt;p&gt;No entanto, é interessante avaliar bem esta solução e suas conseqüências antes de tomar a decisão. Para maiores informações visite os sites:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://www.microsoft.com/sql/default.mspx"&gt;http://www.microsoft.com/sql/default.mspx&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://www.microsoft.com/sql/howtobuy/virtualization.mspx"&gt;http://www.microsoft.com/sql/howtobuy/virtualization.mspx&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://www.microsoft.com/sql/howtobuy/sqlserverlicensing.mspx"&gt;http://www.microsoft.com/sql/howtobuy/sqlserverlicensing.mspx&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Como sempre, fique a vontade para deixar suas dúvidas. &lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8556836" width="1" height="1"&gt;</content><author><name>procha</name><uri>http://blogs.msdn.com/members/procha.aspx</uri></author><category term="SQL Server 2005" scheme="http://blogs.msdn.com/procha/archive/tags/SQL+Server+2005/default.aspx" /><category term="SQL Server em portugu&amp;#234;s" scheme="http://blogs.msdn.com/procha/archive/tags/SQL+Server+em+portugu_26002300_234_3B00_s/default.aspx" /><category term="SQL Server" scheme="http://blogs.msdn.com/procha/archive/tags/SQL+Server/default.aspx" /><category term="Virtualiza&amp;#231;&amp;#227;o" scheme="http://blogs.msdn.com/procha/archive/tags/Virtualiza_26002300_231_3B0026002300_227_3B00_o/default.aspx" /></entry><entry><title>Coexistência entre plataformas</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/procha/archive/2008/05/28/coexist-ncia-entre-plataformas.aspx" /><id>http://blogs.msdn.com/procha/archive/2008/05/28/coexist-ncia-entre-plataformas.aspx</id><published>2008-05-28T17:19:00Z</published><updated>2008-05-28T17:19:00Z</updated><content type="html">&lt;P&gt;Ontem um cliente me fez a seguinte pergunta: é suportado utilizar em um servidor Windows Server 2003 x64, em paralelo, uma instância SQL Server 2005 64 bit e uma 32 bit?&lt;/P&gt;
&lt;P&gt;R: Sim. Em um servidor x64 pode-se utilizar uma instância 32bit (sob WoW64) em paralelo a uma instância x64. Se o servidor for IA64, no entanto, não é possível. Veja a matriz de compatibilidade em &lt;A title=http://msdn.microsoft.com/en-us/library/ms143694.aspx href="http://msdn.microsoft.com/en-us/library/ms143694.aspx" mce_href="http://msdn.microsoft.com/en-us/library/ms143694.aspx"&gt;http://msdn.microsoft.com/en-us/library/ms143694.aspx&lt;/A&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8556585" width="1" height="1"&gt;</content><author><name>procha</name><uri>http://blogs.msdn.com/members/procha.aspx</uri></author><category term="SQL Server 2005" scheme="http://blogs.msdn.com/procha/archive/tags/SQL+Server+2005/default.aspx" /><category term="SQL Server em portugu&amp;#234;s" scheme="http://blogs.msdn.com/procha/archive/tags/SQL+Server+em+portugu_26002300_234_3B00_s/default.aspx" /><category term="SQL Server" scheme="http://blogs.msdn.com/procha/archive/tags/SQL+Server/default.aspx" /><category term="x86" scheme="http://blogs.msdn.com/procha/archive/tags/x86/default.aspx" /><category term="x64" scheme="http://blogs.msdn.com/procha/archive/tags/x64/default.aspx" /><category term="Coexist&amp;#234;ncia" scheme="http://blogs.msdn.com/procha/archive/tags/Coexist_26002300_234_3B00_ncia/default.aspx" /><category term="Coexist&amp;#234;ncia 32bit 64bit" scheme="http://blogs.msdn.com/procha/archive/tags/Coexist_26002300_234_3B00_ncia+32bit+64bit/default.aspx" /></entry><entry><title>Consultas Full-Text em Português no SQL Server 2005</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/procha/archive/2008/05/15/consultas-full-text-em-portugu-s-no-sql-server-2005.aspx" /><id>http://blogs.msdn.com/procha/archive/2008/05/15/consultas-full-text-em-portugu-s-no-sql-server-2005.aspx</id><published>2008-05-16T03:50:00Z</published><updated>2008-05-16T03:50:00Z</updated><content type="html">&lt;P&gt;Hoje vou escrever sobre um recurso muito popular no SQL Server 2005, que tem ganhado maior receptividade a cada dia: o Full-Text Search. Trata-se de uma tecnologia importantíssima que compõe o SQL Server. Vou falar brevemente aqui sobre seu propósito, como configurar Full-Text Search em português (PT-BR) e alguns cenários de exemplo. Espero que você goste. 
&lt;H1&gt;Definição&lt;/H1&gt;
&lt;P&gt;O &lt;STRONG&gt;Full-Text Search&lt;/STRONG&gt; (ou simplesmente FTS) permite que sejam feitas pesquisas de palavras em campos do tipo texto, XML ou binário, com flexibilizações semânticas. Imagine ter campos de texto livre em seu banco de dados (comentários, revisões), documentos do Word, PowerPoint ou outros formatos armazenados em colunas do tipo binary (e varbinary) e ter a possibilidade de efetuar uma pesquisa indexada a estes campos, de forma muito simples, obtendo como resultado não apenas os registros que contenham a palavra pesquisada, mas também registros que contenham diferentes formas semânticas da mesma palavra, ou até mesmo outras palavras que estejam relacionadas aos termos pesquisados. Esta é a funcionalidade que o Full-Text Search entrega. 
&lt;P&gt;&lt;STRONG&gt;Um exemplo:&lt;/STRONG&gt; em uma aplicação web de uma livraria, que contém informações sobre livros, você armazena em uma das colunas as revisões feitas por usuários sobre um livro e, em outra coluna, um documento Microsoft Office Word com o primeiro capítulo do mesmo livro. O Full-Text Search permite que você pesquise as duas colunas pela palavra “Projeto” e que sejam retornados os resultados “Projeto”, “Projetos”, “Projetei”, “Projetaremos”, entre outras formas, com uma coluna que indica um ranking da relevância daquele resultado para a pesquisa solicitada. Ele permite ainda que se relacione a palavra “Obra” a “Projeto”, de modo que ao se pesquisar a palavra “Projeto” resultados que contenham o termo “Obra” também sejam retornados. Isto é especialmente relevante quando lidamos com marcas de produtos. Pode-se, por exemplo, fazer que seja retornado um registro com a palavra “SQL Server” ao se pesquisar pelo termo “SGBD”. 
&lt;P&gt;O interessante é que esta busca de semântica pode ser feita em diversos idiomas, incluindo o nosso português do Brasil (PT-BR). O sistema de quebra de palavras e de flexibilização leva em consideração as regras do nosso idioma para fazer a consulta. O Full-Text Search é um recurso integrado ao SQL Server. Ele é, na verdade, o mecanismo utilizado por ferramentas como o Microsoft SharePoint Server. 
&lt;P&gt;Faz sentido? &lt;/P&gt;
&lt;H2&gt;Cenários de exemplo&lt;/H2&gt;
&lt;P&gt;Além do exemplo acima, da livraria, os cenários abaixo ajudam a ilustrar a utilização do Full-Text Search: 
&lt;OL&gt;
&lt;LI&gt;Gerenciamento Eletrônico de Documentos (GED)&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Pesquisa de currículos em uma base de dados de RH (ex.: pesquisar as palavras “SQL Server”, “Educação”) &lt;/LI&gt;
&lt;LI&gt;Pesquisa de material técnico&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;E-Business&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Navegação em Internet Banking (ex.: ao pesquisar o termo “Investimento” o resultado pode trazer “Investimentos”, “CDB”, “DI”, “Fundo de Ações”, etc)&lt;/LI&gt;
&lt;LI&gt;Encontrar itens em catálogos de ofertas&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;Departamento Legal&lt;/LI&gt;
&lt;UL&gt;
&lt;LI&gt;Identificar conteúdo em e-mail&lt;/LI&gt;
&lt;LI&gt;Pesquisa de jurisprudência&lt;/LI&gt;&lt;/UL&gt;&lt;/OL&gt;
&lt;H2&gt;Thesaurus, Noise Words e Idiomas&lt;/H2&gt;
&lt;P&gt;A obtenção de resultados a partir da associação de palavras relacionadas é produto da funcionalidade de Thesaurus do Full-Text Search. Você pode relacionar palavras em um arquivo XML de modo que resultados que sejam relevantes ao termo pesquisado sejam retornados ao usuário. O exemplo acima com Internet Banking ilustra bem este cenário (retornar “Ações” ao se pesquisar “Investimento”). 
&lt;P&gt;Pode-se também configurar palavras a serem ignoradas pelo mecanismo de pesquisa. Este recurso é chamado de Noise Words e se baseia na configuração de um arquivo de parâmetro contendo quaisquer palavras que precisem ser ignoradas, melhorando a relevância da pesquisa. Alguns exemplos são “Para”, “Onde” e “Se”. 
&lt;P&gt;Quando são construídos os catálogos e os índices Full-Text especifica-se o idioma daquele índice. A partir daí o SQL Server utiliza o “quebrador” (Word Breaker) que seja do idioma correto. Ainda assim, pode-se forçar a utilização de um Word breaker diferente durante a consulta para, por exemplo, fazer consultas utilizando de forma excepcional outro idioma. Em outras palavras: a pesquisa não é limitada ao idioma especificado ao criar o índice. Atualmente, o Full-Text Search está disponível em 23 idiomas diferentes. 
&lt;H1&gt;Configuração do Full-Text Search em Português do Brasil (PT-BR)&lt;/H1&gt;
&lt;P&gt;É necessária configuração manual no SQL Server 2005 para configuração do Full-Text Search no nosso idioma. Isto é necessário, pois o Word Breaker para português foi desenvolvido por uma empresa externa. 
&lt;P&gt;&lt;STRONG&gt;AVISO: execute os passos abaixo sob sua responsabilidade. Como qualquer alteração no Windows Registry, é recomendável que o procedimento seja testado em ambiente de laboratório e que se tenha um backup completo do ambiente.&lt;/STRONG&gt; 
&lt;OL&gt;
&lt;LI&gt;Clique em Start-&amp;gt; Run. Digite regedit.exe e clique em Ok;&lt;/LI&gt;
&lt;LI&gt;Navegue até a chave; HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.1\MSSearch\CLSID;&lt;/LI&gt;
&lt;LI&gt;Clique em Edit-&amp;gt; New e selecione Key. Digite {25B7FD48-5404-4BEB-9D80-B6982AF404FD} e pressione Enter para confirmar;&lt;/LI&gt;
&lt;LI&gt;Clique com o botão direito sobre o valor “(Default)” no painel da direita e selecione Modify. Insira o valor “ptblr.dll” e confirme;&lt;/LI&gt;
&lt;LI&gt;Clique em Edit-&amp;gt;New e selecione Key novamente. Digite {D5FCDD7E-DBFF-473F-BCCD-3AFD1890EA85} e pressione Enter para confirmar;&lt;/LI&gt;
&lt;LI&gt;Clique com o botão direito sobre o valor “(Default)” no painel da direita e selecione Modify. Insira o valor “ptblr.dll” e confirme;&lt;/LI&gt;
&lt;LI&gt;Navegue até a chave HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL.1\MSSearch\Language\ptb&lt;/LI&gt;
&lt;LI&gt;Clique em Edit-&amp;gt;New e selecione String Value&lt;/LI&gt;
&lt;LI&gt;Digite NoiseFile e pressione Enter&lt;/LI&gt;
&lt;LI&gt;Dê um clique duplo em NoiseFile e digite o caminho “C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\FTData\noiseptb.txt”&lt;/LI&gt;
&lt;LI&gt;Repita os passos 8 até 10 para criar valores com os seguintes dados:&lt;/LI&gt;&lt;/OL&gt;
&lt;TABLE border=1 cellSpacing=0 cellPadding=2 width=920&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=140&gt;&lt;STRONG&gt;String Value&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=151&gt;TsaurusFile&lt;/TD&gt;
&lt;TD vAlign=top width=627&gt;C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\FTData\tsptb.xml&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=141&gt;&lt;STRONG&gt;DWORD Value&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=154&gt;Locale&lt;/TD&gt;
&lt;TD vAlign=top width=627&gt;00000416&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=141&gt;&lt;STRONG&gt;String Value&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=157&gt;WBreakerClass&lt;/TD&gt;
&lt;TD vAlign=top width=627&gt;{25B7FD48-5404-4BEB-9D80-B6982AF404FD}&lt;/TD&gt;&lt;/TR&gt;
&lt;TR&gt;
&lt;TD vAlign=top width=141&gt;&lt;STRONG&gt;String Value&lt;/STRONG&gt;&lt;/TD&gt;
&lt;TD vAlign=top width=160&gt;StemmerClass&lt;/TD&gt;
&lt;TD vAlign=top width=627&gt;{D5FCDD7E-DBFF-473F-BCCD-3AFD1890EA85}&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;
&lt;P&gt;&lt;STRONG&gt;OBSERVAÇÃO:&lt;/STRONG&gt; Os caminhos sugeridos os passos 2,7 e 10 podem variar se você estiver utilizando uma instância nomeada. Os passos acima também estão descritos no artigo &lt;A href="http://support.microsoft.com/kb/908441/en-us" mce_href="http://support.microsoft.com/kb/908441/en-us"&gt;http://support.microsoft.com/kb/908441/en-us&lt;/A&gt;&lt;/P&gt;
&lt;H1&gt;Utilizando Full-Text Search&lt;/H1&gt;
&lt;P&gt;Aí vai um exemplo muito rápido de utilização do Full-Text Search com busca por semântica: 
&lt;P&gt;&lt;FONT size=3&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT size=3&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff&gt;SELECT&lt;/FONT&gt; Descricao &lt;FONT color=#0000ff&gt;FROM&lt;/FONT&gt; Comentarios&lt;/FONT&gt;&lt;/FONT&gt; 
&lt;P&gt;&lt;FONT size=3&gt;&lt;FONT face="Courier New"&gt;&lt;FONT color=#0000ff&gt;WHERE CONTAINS&lt;/FONT&gt; (Descricao, &lt;FONT color=#ff0000&gt;'FORMSOF(INFLECTIONAL, "colocamos")'&lt;/FONT&gt;)&lt;/FONT&gt;&lt;/FONT&gt; 
&lt;P&gt;&lt;FONT size=3 face="Courier New"&gt;&lt;/FONT&gt;
&lt;P&gt;Resultados (visualizados de forma parcial devido ao tamanho do campo utilizado): 
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/procha/WindowsLiveWriter/ConsultasFullTextemPortugusnoSQLServer20_108E6/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/procha/WindowsLiveWriter/ConsultasFullTextemPortugusnoSQLServer20_108E6/image_2.png"&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; BORDER-TOP: 0px; BORDER-RIGHT: 0px" border=0 alt=image src="http://blogs.msdn.com/blogfiles/procha/WindowsLiveWriter/ConsultasFullTextemPortugusnoSQLServer20_108E6/image_thumb.png" width=934 height=306 mce_src="http://blogs.msdn.com/blogfiles/procha/WindowsLiveWriter/ConsultasFullTextemPortugusnoSQLServer20_108E6/image_thumb.png"&gt;&lt;/A&gt; 
&lt;P&gt;Como disse, este é um exemplo bem simples que construí para esta demonstração. Para exemplos mais elaborados por favor deixe um comentário, ou simplesmente visite &lt;STRONG&gt;“Querying SQL Server Using Full-Text Search”&lt;/STRONG&gt; &lt;A href="http://msdn.microsoft.com/en-us/library/ms142559(SQL.100).aspx" mce_href="http://msdn.microsoft.com/en-us/library/ms142559(SQL.100).aspx"&gt;http://msdn.microsoft.com/en-us/library/ms142559(SQL.100).aspx&lt;/A&gt;. Este artigo inclui os seguintes tópicos: 
&lt;UL&gt;
&lt;LI&gt;Full-Text Search Query Fundamentals &lt;/LI&gt;
&lt;LI&gt;Searching for Specific Word or Phrase (Simple Term) &lt;/LI&gt;
&lt;LI&gt;Performing Prefix Searches &lt;/LI&gt;
&lt;LI&gt;Searching for the Inflectional Form of a Specific Word (Generation Term) &lt;/LI&gt;
&lt;LI&gt;Searching for Words or Phrases Using Weighted Values (Weighted Term) &lt;/LI&gt;
&lt;LI&gt;Searching for Words or Phrases Close to Another Word or Phrase (Proximity Term) &lt;/LI&gt;
&lt;LI&gt;Querying varbinary(max) and xml Columns &lt;/LI&gt;
&lt;LI&gt;Querying Multiple Columns &lt;/LI&gt;
&lt;LI&gt;Querying Linked Servers &lt;/LI&gt;
&lt;LI&gt;Integrating Full-Text Search and Transact-SQL Predicates &lt;/LI&gt;
&lt;LI&gt;Comparing Full-Text Functions and Full-Text Predicates&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Como sempre, sinta-se a vontade para deixar suas dúvidas e comentários.&lt;/P&gt;
&lt;P&gt;** Obrigado ao Fernando Barros pelas notas de correção com o valor correto para a StemmerClass e com o nome da dll do word breaker. &lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8509547" width="1" height="1"&gt;</content><author><name>procha</name><uri>http://blogs.msdn.com/members/procha.aspx</uri></author><category term="SQL Server 2005" scheme="http://blogs.msdn.com/procha/archive/tags/SQL+Server+2005/default.aspx" /><category term="SQL Server em portugu&amp;#234;s" scheme="http://blogs.msdn.com/procha/archive/tags/SQL+Server+em+portugu_26002300_234_3B00_s/default.aspx" /><category term="SQL Server" scheme="http://blogs.msdn.com/procha/archive/tags/SQL+Server/default.aspx" /><category term="Full-Text Search" scheme="http://blogs.msdn.com/procha/archive/tags/Full-Text+Search/default.aspx" /><category term="Contains" scheme="http://blogs.msdn.com/procha/archive/tags/Contains/default.aspx" /><category term="Sem&amp;#226;ntica" scheme="http://blogs.msdn.com/procha/archive/tags/Sem_26002300_226_3B00_ntica/default.aspx" /></entry><entry><title>Problema ao estabelecer um Mirror</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/procha/archive/2008/05/05/problema-ao-estabelecer-um-mirror.aspx" /><id>http://blogs.msdn.com/procha/archive/2008/05/05/problema-ao-estabelecer-um-mirror.aspx</id><published>2008-05-05T19:50:31Z</published><updated>2008-05-05T19:50:31Z</updated><content type="html">&lt;p&gt;Recentemente estive em um cliente para configurar o Database Mirroring em uma base de dados. Pedi a ele para fazer um backup da base de dados inicial e restaurar no mirror, para que quando eu chegasse já fizesse o mirror. &lt;/p&gt; &lt;p&gt;Depois de criar os endpoints, ao tentar iniciar o mirror, vinha a mensagem abaixo:&lt;/p&gt; &lt;p&gt;&lt;em&gt;"The server network address "TCP://&amp;lt;FQDN&amp;gt;:5022" can not be reached or does not exist. Check the network address name and that the ports for the local and remote endpoints are operational. (Microsoft SQL Server, Error: 1418)"&lt;/em&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/procha/WindowsLiveWriter/ProblemaaoestabelecerumMirror_C29F/image_4.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="237" alt="image" src="http://blogs.msdn.com/blogfiles/procha/WindowsLiveWriter/ProblemaaoestabelecerumMirror_C29F/image_thumb_1.png" width="626" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Na figura acima, estou omitindo o nome do servidor por questões de privacidade. No lugar da faixa em branco viria o FQDN do servidor de um dos endpoints. A porta 5022 é padrão, mas pode ser alterada durante a configuração. &lt;/p&gt; &lt;p&gt;Foram feitos os seguintes testes:&lt;/p&gt; &lt;p&gt;a) Ping no FQDN partindo do servidor A para o servidor B e vice-versa: OK&lt;/p&gt; &lt;p&gt;b) Telnet na porta 5022, partindo também de um lado para o outro: OK&lt;/p&gt; &lt;p&gt;c) Login utilizado tem permissão CONNECT nos endpoints: OK. &lt;/p&gt; &lt;p&gt;Solução: o restore do banco de dados não havia sido feito com a opção "WITH NORECOVERY". Embora a mensagem de erro nos leve a acreditar que o problema ocorre devido a uma falha de rede, esta foi a causa no nosso caso. É obrigatório que o restore da base de dados seja feito com esta opção, mas isto não foi percebido pela pessoa que fez o restore. &lt;/p&gt; &lt;p&gt;Apenas decidi dividir esta experiência aqui pois, pesquisando pela internet, vi pessoas discutindo em forums o mesmo sintoma, sem atingir uma solução.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8460889" width="1" height="1"&gt;</content><author><name>procha</name><uri>http://blogs.msdn.com/members/procha.aspx</uri></author><category term="Database Mirroring" scheme="http://blogs.msdn.com/procha/archive/tags/Database+Mirroring/default.aspx" /><category term="Error" scheme="http://blogs.msdn.com/procha/archive/tags/Error/default.aspx" /><category term="1418" scheme="http://blogs.msdn.com/procha/archive/tags/1418/default.aspx" /></entry><entry><title>Visual Studio Team System 2008 Database Edition</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/procha/archive/2008/04/07/visual-studio-team-system-2008-database-edition.aspx" /><id>http://blogs.msdn.com/procha/archive/2008/04/07/visual-studio-team-system-2008-database-edition.aspx</id><published>2008-04-07T18:52:15Z</published><updated>2008-04-07T18:52:15Z</updated><content type="html">&lt;p&gt;O Visual Studio Team System tem a capacidade de incorporar diversos pap&amp;#233;is do processo de desenvolvimento de software nas organiza&amp;#231;&amp;#245;es: desde o Arquiteto, passando pelo Designer, Gerente de Projeto, Tester e, &amp;#233; claro, o desenvolvedor. Ele faz isto fornecendo ferramentas que aumentam a produtividade, com um ambiente &amp;#250;nico de desenvolvimento e ger&amp;#234;ncia do projeto de software. Desde a concep&amp;#231;&amp;#227;o do Visual Studio Team System (daqui em diante vou me referir a ele simplesmente por VSTS), no entanto, um dos principais pap&amp;#233;is estava fora do ciclo de vida de desenvolvimento de software. Este papel &amp;#233; o do desenvolvedor em bancos de dados. &lt;/p&gt;  &lt;p&gt;&amp;#201; este o cen&amp;#225;rio sobre o qual o VSTS 2008 Database Edition atua, o do desenvolvedor em banco de dados. Imagine ter todos os objetos do banco de dados sob controle de fontes, passando pelos mesmos fluxos de aprova&amp;#231;&amp;#227;o e colabora&amp;#231;&amp;#227;o de todo o seu c&amp;#243;digo, e das funcionalidades de desenvolvimento offline fazendo check-in e check-out dos objetos do banco de dados. Imagine ainda ter ferramentas que fa&amp;#231;am teste de unit em c&amp;#243;digo de banco de dados, ferramentas que geram dados de teste que realmente significam alguma coisa, ferramentas que fazem compara&amp;#231;&amp;#227;o entre schemas de banco de dados (desenvolvimento comparado com produ&amp;#231;&amp;#227;o, por exemplo). Agora chega de imaginar - j&amp;#225; &amp;#233; poss&amp;#237;vel! &lt;/p&gt;  &lt;p&gt;O objetivo deste post &amp;#233; descrever rapidamente alguns dos recursos do VSTS 2008 Database Edition. Na verdade, os meus recursos preferidos. Esta &amp;#233; uma ferramenta poderos&amp;#237;ssima e assunto obrigat&amp;#243;rio para os desenvolvedores (e at&amp;#233; mesmo para os DBAs). &lt;/p&gt;  &lt;h1&gt;O que &amp;#233; o VSTS 2008 Database Edition?&lt;/h1&gt;  &lt;p&gt;Trata-se de uma edi&amp;#231;&amp;#227;o do VSTS 2008 que incorpora o profissional de banco de dados ao ciclo de vida de desenvolvimento de software. Na verdade, esta ferramenta j&amp;#225; estava dispon&amp;#237;vel no VSTS 2005, por&amp;#233;m na forma de um add-in. Ele oferece os seguintes benef&amp;#237;cios:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Desenvolvimento baseado em projeto &lt;/li&gt;    &lt;li&gt;Ader&amp;#234;ncia a processos de desenvolvimento de software &lt;/li&gt;    &lt;li&gt;Colabora&amp;#231;&amp;#227;o em time com itens de trabalho (Work Item) e integra&amp;#231;&amp;#227;o de processos com o Team Foundation Server &lt;/li&gt;    &lt;li&gt;Reconstru&amp;#231;&amp;#227;o de nomes de objetos com a habilidade de prever as mudan&amp;#231;as antes de realiz&amp;#225;-las (Refactoring) &lt;/li&gt;    &lt;li&gt;Ferramentas de compara&amp;#231;&amp;#227;o (de schemas e dados) permitem compara&amp;#231;&amp;#245;es e sincroniza&amp;#231;&amp;#227;o do schema e dos dados entre bancos de dados de desenvolvimento, teste e produ&amp;#231;&amp;#227;o &lt;/li&gt;    &lt;li&gt;Controle de fontes e de vers&amp;#245;es de todos os objetos do banco de dados com a possibilidade de se fazer engenharia reversa em um banco de dados a fim de se traz&amp;#234;-lo ao sistema de controle &lt;/li&gt;    &lt;li&gt;Teste de Unit do banco de dados &lt;/li&gt;    &lt;li&gt;Aproveita a infra estrutura de teste de projetos &lt;/li&gt;    &lt;li&gt;Gera valores &amp;#8220;Reais e Coerentes&amp;#8221; atrav&amp;#233;s habilidade de importar informa&amp;#231;&amp;#245;es como Row Counts e histogramas de um banco de dados reais &lt;/li&gt;    &lt;li&gt;Gerador de Dados prov&amp;#234; gera&amp;#231;&amp;#227;o repetitiva de dados para testes baseados em configura&amp;#231;&amp;#245;es &lt;/li&gt;    &lt;li&gt;Integra&amp;#231;&amp;#227;o com MSBuild para Deployments/Builds de banco de dados baseando-se em projetos &lt;/li&gt;    &lt;li&gt;Habilidade de enviar apenas as altera&amp;#231;&amp;#245;es realizadas em um banco de dados, ao inv&amp;#233;s de apagar o banco inteiro e reconstru&amp;#237;-lo a cada mudan&amp;#231;a &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;A lista de benef&amp;#237;cios &amp;#233; extensa. A lista de recursos (features), tamb&amp;#233;m. Vou abordar neste post apenas alguns deles, se voc&amp;#234; tiver alguma d&amp;#250;vida em espec&amp;#237;fico, por favor, poste um coment&amp;#225;rio.&lt;/p&gt;  &lt;h1&gt;Iniciando um Projeto&lt;/h1&gt;  &lt;p&gt;Existem tr&amp;#234;s formas de iniciar um projeto de banco de dados pelo VSTS 2008 Database Edition:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Iniciar um projeto em branco e criar cada objeto individualmente - O VSTS 2008 j&amp;#225; tem os templates de projeto para banco de dados &lt;/li&gt;    &lt;li&gt;Iniciar um projeto utilizando um script T-SQL existente - se voc&amp;#234; tem um script de cria&amp;#231;&amp;#227;o de um banco de dados e de seus objetos, pode importar este arquivo. O VSTS 2008 faz um processo de engenharia reversa no arquivo e cria os objetos em seu projeto &lt;/li&gt;    &lt;li&gt;Conectar-se a um banco de dados existente - minha preferida. Se voc&amp;#234; j&amp;#225; tem um banco de dados na sua empresa, utilize este recurso. O VSTS 2008 se conecta ao banco de dados e gera os scripts de cria&amp;#231;&amp;#227;o dos objetos. Isto permite que voc&amp;#234; comece a utilizar o VSTS 2008 Database Edition imediatamente, independente de ser um projeto novo ou um ambiente que j&amp;#225; est&amp;#225; em produ&amp;#231;&amp;#227;o. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/procha/WindowsLiveWriter/VisualStudioTeamSystem2008DatabaseEditio_10298/image_4.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="461" alt="image" src="http://blogs.msdn.com/blogfiles/procha/WindowsLiveWriter/VisualStudioTeamSystem2008DatabaseEditio_10298/image_thumb_1.png" width="648" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Figura 1: Janela com os templates de projeto para SQL Server&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Observa&amp;#231;&amp;#227;o: &lt;/strong&gt;Perceba que neste instante voc&amp;#234; j&amp;#225; pode colocar seu projeto em controle de fontes. &lt;/p&gt;  &lt;p&gt;Para este exemplo, vou utilizar a op&amp;#231;&amp;#227;o n&amp;#250;mero 3. O pr&amp;#243;prio assistente que cria o projeto j&amp;#225; pergunta se voc&amp;#234; deseja importar o schema de outro banco de dados. Neste instante, voc&amp;#234; pode criar uma conex&amp;#227;o com um banco de dados existente e o assistente se encarrega de ler seu schema e criar os objetos relevantes no projeto. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/procha/WindowsLiveWriter/VisualStudioTeamSystem2008DatabaseEditio_10298/image_6.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="498" alt="image" src="http://blogs.msdn.com/blogfiles/procha/WindowsLiveWriter/VisualStudioTeamSystem2008DatabaseEditio_10298/image_thumb_2.png" width="643" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Figura 2: Op&amp;#231;&amp;#227;o por importar o schema de um banco de dados existente&lt;/p&gt;  &lt;p&gt;O processo de importa&amp;#231;&amp;#227;o de schema gera um arquivo .sql para cada objeto do seu banco de dados. Voc&amp;#234; pode visualiz&amp;#225;-los pelo sistema de arquivos, ou pelo Schema View, no VSTS 2008. Cada um destes arquivos .sql ir&amp;#225; fazer parte do seu controle de fontes e voc&amp;#234; pode fazer check-in e check-out nos arquivos, da mesma forma como faz com seus arquivos .cs, .vb ou outros. Por padr&amp;#227;o, o nome destes arquivos &amp;#233; formado por &lt;strong&gt;[nomedoschema].[nomedoobjeto].[tipo].sql&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/procha/WindowsLiveWriter/VisualStudioTeamSystem2008DatabaseEditio_10298/image_8.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="427" alt="image" src="http://blogs.msdn.com/blogfiles/procha/WindowsLiveWriter/VisualStudioTeamSystem2008DatabaseEditio_10298/image_thumb.png" width="376" border="0" /&gt;&lt;/a&gt;&amp;#160; &lt;a href="http://blogs.msdn.com/blogfiles/procha/WindowsLiveWriter/VisualStudioTeamSystem2008DatabaseEditio_10298/image_12.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="426" alt="image" src="http://blogs.msdn.com/blogfiles/procha/WindowsLiveWriter/VisualStudioTeamSystem2008DatabaseEditio_10298/image_thumb_4.png" width="350" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Figuras 3 e 4: Visualiza&amp;#231;&amp;#227;o dos objetos gerados no Schema View e no Solution Explorer&lt;/p&gt;  &lt;h1&gt;Schema Refactoring (Reconstru&amp;#231;&amp;#227;o)&lt;/h1&gt;  &lt;p&gt;De acordo com Scott Ambler, autor de Agile Database Development, &amp;quot;Reconstru&amp;#231;&amp;#227;o do banco de dados &amp;#233; fazer uma altera&amp;#231;&amp;#227;o pequena no Schema que melhore o seu design sem alterar sua sem&amp;#226;ntica&amp;quot;. Por exemplo:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Renomear o nome de um objeto Schema para melhorar sua consist&amp;#234;ncia, entendimento ou manuten&amp;#231;&amp;#227;o &lt;/li&gt;    &lt;li&gt;Renomear TODAS refer&amp;#234;ncias deste schema &lt;/li&gt;    &lt;li&gt;Renomear tabelas, views, stored procedures, user defined functions, etc. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#201; muito comum precisarmos alterar o nome de um objeto durante o processo de desenvolvimento. Com a funcionalidade de Refactoring, o VSTS 2008 atualiza todas as refer&amp;#234;ncias a este objeto no projeto com o nome novo. Ele ainda pode simular a altera&amp;#231;&amp;#227;o e emitir um mini-relat&amp;#243;rio de conclus&amp;#227;o, para que voc&amp;#234; mesmo possa avaliar a mudan&amp;#231;a antes de efetiv&amp;#225;-la. &lt;/p&gt;  &lt;p&gt;Basta um clique com o bot&amp;#227;o direito para realizar o processo de refactoring. Ap&amp;#243;s as altera&amp;#231;&amp;#245;es, se voc&amp;#234; estiver utilizando controle de fontes, o pr&amp;#243;prio processo de refactoring se preocupa em fazer o check-out dos arquivos necess&amp;#225;rios e fazer as altera&amp;#231;&amp;#245;es. Se voc&amp;#234; alterar o nome de uma coluna, como no exemplo abaixo, o VSTS atualiza quaisquer stored procedures que fa&amp;#231;am refer&amp;#234;ncia a esta coluna para refletir as altera&amp;#231;&amp;#245;es.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/procha/WindowsLiveWriter/VisualStudioTeamSystem2008DatabaseEditio_10298/image_14.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="298" alt="image" src="http://blogs.msdn.com/blogfiles/procha/WindowsLiveWriter/VisualStudioTeamSystem2008DatabaseEditio_10298/image_thumb_5.png" width="378" border="0" /&gt;&lt;/a&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;Figura 5: Renomeando uma coluna no banco de dados. &lt;/p&gt; &lt;a href="http://blogs.msdn.com/blogfiles/procha/WindowsLiveWriter/VisualStudioTeamSystem2008DatabaseEditio_10298/image_18.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="333" alt="image" src="http://blogs.msdn.com/blogfiles/procha/WindowsLiveWriter/VisualStudioTeamSystem2008DatabaseEditio_10298/image_thumb_7.png" width="602" border="0" /&gt;&lt;/a&gt;   &lt;p&gt;Figura 6: Alterando o nome de uma coluna. Perceba a op&amp;#231;&amp;#227;o &amp;quot;Preview Changes&amp;quot;&lt;/p&gt;  &lt;p&gt;Se mesmo ap&amp;#243;s tiver feito as altera&amp;#231;&amp;#245;es voc&amp;#234; desejar desfaz&amp;#234;-las, o Global Undo est&amp;#225; dispon&amp;#237;vel para desfazer tudo.&lt;/p&gt;  &lt;h1&gt;Build e Deploy&lt;/h1&gt;  &lt;p&gt;O VSTS 2008 Database Edition tem completa integra&amp;#231;&amp;#227;o com o MSBUILD. Isto significa que voc&amp;#234; pode usufruir de todo o processo de build e entrega de vers&amp;#245;es de suas aplica&amp;#231;&amp;#245;es tamb&amp;#233;m em mudan&amp;#231;as na camada de banco de dados. &lt;/p&gt;  &lt;p&gt;Sempre que s&amp;#227;o feitas altera&amp;#231;&amp;#245;es no ambiente, sejam objetos novos ou a altera&amp;#231;&amp;#227;o de objetos existentes, &amp;#233; gerado um arquivo .sql com as altera&amp;#231;&amp;#245;es. Este arquivo pode ser enviado a um DBA para aprova&amp;#231;&amp;#227;o e execu&amp;#231;&amp;#227;o, ou pode ser integrado ao seu processo de build di&amp;#225;rio.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/procha/WindowsLiveWriter/VisualStudioTeamSystem2008DatabaseEditio_10298/image_22.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="312" alt="image" src="http://blogs.msdn.com/blogfiles/procha/WindowsLiveWriter/VisualStudioTeamSystem2008DatabaseEditio_10298/image_thumb_9.png" width="458" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Figura 7: Processo de Build e Deploy&lt;/p&gt;  &lt;p&gt;Atrav&amp;#233;s do MSBuild &amp;#233; poss&amp;#237;vel: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Utiliza&amp;#231;&amp;#227;o por linha de comando &lt;/li&gt;    &lt;li&gt;Acesso por programa&amp;#231;&amp;#227;o &lt;/li&gt;    &lt;li&gt;Liga&amp;#231;&amp;#227;o entre as tarefas &lt;/li&gt;    &lt;li&gt;Integra&amp;#231;&amp;#227;o do time &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Como j&amp;#225; disse aqui, &amp;#233; poss&amp;#237;vel enviar apenas altera&amp;#231;&amp;#245;es realizadas ou um banco de dados completo para o destino. &lt;/p&gt;  &lt;p&gt;Em um deployment completo, todo o banco de dados &amp;#233; criado no destino. Este &amp;#233; o comportamento padr&amp;#227;o, quando o destino n&amp;#227;o existe, mas tamb&amp;#233;m pode ser for&amp;#231;ado pela op&amp;#231;&amp;#227;o de build &amp;#8220;Always Recreate Database&amp;#8221;&lt;/p&gt;  &lt;p&gt;Em um deployment incremental, s&amp;#227;o enviadas apenas as diferen&amp;#231;as entre o projeto e o banco de dados de destino. &lt;/p&gt;  &lt;p&gt;Voc&amp;#234; pode ainda utilizar um script incremental que valida a vers&amp;#227;o do servidor de destino, nome do banco de dados e database compatibility level, entre outros atributos do servidor ou do banco de dados. Se a valida&amp;#231;&amp;#227;o falhar em algum crit&amp;#233;rio que voc6e especifique, o deploy pode ser abordado.&lt;/p&gt;  &lt;p&gt;Mas se voc&amp;#234; n&amp;#227;o deseja utilizar o MSBUILD por linhas de comando, o VSTS 2008 pode enviar as altera&amp;#231;&amp;#245;es atrav&amp;#233;s de sua IDE. &lt;/p&gt;  &lt;h1&gt;Recursos para Teste&lt;/h1&gt;  &lt;p&gt;O VSTS 2008 oferece recursos para que voc&amp;#234; possa realizar testes em seu banco de dados. &amp;#201; poss&amp;#237;vel fazer teste de unit e gerar dados de teste para popular suas bases. &lt;/p&gt;  &lt;h2&gt;Testes de Unit&lt;/h2&gt;  &lt;p&gt;O recurso de Unit Test dispon&amp;#237;vel no VSTS 2008 funciona em conjunto com o Team Test do VSTS 2008. &amp;#201; poss&amp;#237;vel utilizar c&amp;#243;digo .NET para gerar os testes e tamb&amp;#233;m T-SQL. Pode-se, por exemplo, dizer se &amp;#233; esperado um tipo de resultado a partir de uma stored procedure e avaliar este resultado ao final da execu&amp;#231;&amp;#227;o dos testes. O resultado pode ser um ResultSet, um RowCount ou valores escalares, por exemplo. Ou at&amp;#233; mesmo um retorno sem conclus&amp;#227;o determinada.&lt;/p&gt;  &lt;h2&gt;Dados de teste&lt;/h2&gt;  &lt;p&gt;Este &amp;#233; um dos meus recursos preferidos no VSTS 2008. O gerador que j&amp;#225; vem embutido no VSTS 2008 (ele tamb&amp;#233;m permite que voc&amp;#234; plugue geradores de dados de terceiros) utiliza diferentes t&amp;#233;cnicas para gerar dados que s&amp;#227;o realmente relevantes para os seus testes. Pode-se pode exemplo utilizar express&amp;#245;es regulares para gerar express&amp;#245;es. &lt;/p&gt;  &lt;p&gt;A&amp;#237; vai um roteiro de exemplo para um gerador de testes em cima do banco de dados Northwind:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Clique em dbo.Orders&lt;/li&gt;    &lt;li&gt;Clique no menu Data, Data Generator, e clique em Column Details.&lt;/li&gt;    &lt;li&gt;Em Column Details, selecione ShipCity, e defina o campo Generator com o valor Data Bound Generator. Isto indica que o gerador vai obter seus resultados a partir de uma query.&lt;/li&gt;    &lt;li&gt;No menu View, clique em Properties Window&lt;/li&gt;    &lt;li&gt;Na janela de propriedades, veja a sess&amp;#227;o Generator. Na propriedade Connection Information, clique na conex&amp;#227;o que corresponde ao banco de dados do qual voc&amp;#234; importou o schema. Esta op&amp;#231;&amp;#227;o se deve ao fato de consultarmos os dados em um banco de dados j&amp;#225; existente.&lt;/li&gt;    &lt;li&gt;Na janela de propriedades, em Generator, na propriedade Query, defina a query string como &amp;quot;SELECT * FROM Orders&amp;quot;. &lt;/li&gt;    &lt;li&gt;Em Column Details, no campo Generator Output para ShipCity, clique em [OutputTable1].[ShipCity].&lt;/li&gt;    &lt;li&gt;Salve o data generation plan.     &lt;br /&gt;&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Como sempre, fique a vontade para escrever seus coment&amp;#225;rios ou d&amp;#250;vidas.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8365688" width="1" height="1"&gt;</content><author><name>procha</name><uri>http://blogs.msdn.com/members/procha.aspx</uri></author><category term="SQL Server 2008" scheme="http://blogs.msdn.com/procha/archive/tags/SQL+Server+2008/default.aspx" /><category term="SQL Server em portugu&amp;#234;s" scheme="http://blogs.msdn.com/procha/archive/tags/SQL+Server+em+portugu_26002300_234_3B00_s/default.aspx" /><category term="SQL Server" scheme="http://blogs.msdn.com/procha/archive/tags/SQL+Server/default.aspx" /><category term="DB Pro" scheme="http://blogs.msdn.com/procha/archive/tags/DB+Pro/default.aspx" /><category term="Ciclo de vida de desenvolvimento" scheme="http://blogs.msdn.com/procha/archive/tags/Ciclo+de+vida+de+desenvolvimento/default.aspx" /><category term="VSTS" scheme="http://blogs.msdn.com/procha/archive/tags/VSTS/default.aspx" /><category term="Desenvolvimento em Banco de Dados" scheme="http://blogs.msdn.com/procha/archive/tags/Desenvolvimento+em+Banco+de+Dados/default.aspx" /><category term="Visual Studio Team System 2008 Database Edition" scheme="http://blogs.msdn.com/procha/archive/tags/Visual+Studio+Team+System+2008+Database+Edition/default.aspx" /></entry><entry><title>Webcast Disponível: Manage and Deploy Database</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/procha/archive/2008/03/19/webcast-dispon-vel-manage-and-deploy-database.aspx" /><id>http://blogs.msdn.com/procha/archive/2008/03/19/webcast-dispon-vel-manage-and-deploy-database.aspx</id><published>2008-03-19T17:47:00Z</published><updated>2008-03-19T17:47:00Z</updated><content type="html">&lt;P&gt;Já está disponível o &lt;A href="https://www.msdnbrasil.com.br/experience/vsts/Secure/Conteudo.aspx" target=_blank mce_href="https://www.msdnbrasil.com.br/experience/vsts/Secure/Conteudo.aspx"&gt;webcast&lt;/A&gt; que gravei para a equipe do &lt;A href="https://www.msdnbrasil.com.br/" target=_blank mce_href="https://www.msdnbrasil.com.br/"&gt;MSDN&lt;/A&gt; sobre &lt;STRONG&gt;Manage and Deploy Database&lt;/STRONG&gt;, com o Microsoft Visual Studio Team System 2008 Database Edition. Os tópicos abordados no webcast são:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;&lt;STRONG&gt;Visão Conceitual:&lt;/STRONG&gt; visão geral sobre o produto&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Ciclo de vida de Desenvolvimento em Banco de Dados:&lt;/STRONG&gt; como o desenvolvimento em banco de dados se integra ao ciclo de vida de desenvolvimento de software na sua empresa&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Iniciando um Projeto Novo (demonstração):&lt;/STRONG&gt; técnicas para iniciação de um projeto a partir de um banco de dados novo, ou criação de um projeto baseado em um banco de dados já existente&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Estrutura do Projeto (demonstração):&lt;/STRONG&gt; como o banco de dados fica estruturado no Visual Studio Team System&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Enviando Alterações (demonstração):&lt;/STRONG&gt; como enviar apenas uma alteração simples para o banco de dados de produção, ao invés de "dropar" o banco de dados e reconstruí-lo&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;Para quem não conhece o DB Pro (como é chamado), trata-se de uma edição do Visual Studio que insere o banco de dados no ciclo de vida de desenvolvimento de software. Ele contém ferramentas interessantes, como a comparação de schemas (pode-se comparar o schema de um banco de produção com um de desenvolvimento e ver as diferenças, por exemplo), geração de dados relevantes para teste e deploy diferencial de um banco de dados, entre muitos outros recursos. &lt;/P&gt;
&lt;P&gt;No próximo post vou escrever especificamente sobre o Visual Studio Team System 2008 Database Edition. Por hora, recomendo o webcast de apenas 37 minutos disponível em &lt;A title=https://www.msdnbrasil.com.br/experience/vsts/Secure/Conteudo.aspx href="https://www.msdnbrasil.com.br/experience/vsts/Secure/Conteudo.aspx" mce_href="https://www.msdnbrasil.com.br/experience/vsts/Secure/Conteudo.aspx"&gt;https://www.msdnbrasil.com.br/experience/vsts/Secure/Conteudo.aspx&lt;/A&gt; (Módulo 04 - Sessão 2 - Manage and Deploy Database)&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8325727" width="1" height="1"&gt;</content><author><name>procha</name><uri>http://blogs.msdn.com/members/procha.aspx</uri></author><category term="SQL Server 2008" scheme="http://blogs.msdn.com/procha/archive/tags/SQL+Server+2008/default.aspx" /><category term="SQL Server 2005" scheme="http://blogs.msdn.com/procha/archive/tags/SQL+Server+2005/default.aspx" /><category term="SQL Server em portugu&amp;#234;s" scheme="http://blogs.msdn.com/procha/archive/tags/SQL+Server+em+portugu_26002300_234_3B00_s/default.aspx" /><category term="SQL Server" scheme="http://blogs.msdn.com/procha/archive/tags/SQL+Server/default.aspx" /><category term="DB Pro" scheme="http://blogs.msdn.com/procha/archive/tags/DB+Pro/default.aspx" /><category term="Ciclo de vida de desenvolvimento" scheme="http://blogs.msdn.com/procha/archive/tags/Ciclo+de+vida+de+desenvolvimento/default.aspx" /><category term="VSTS" scheme="http://blogs.msdn.com/procha/archive/tags/VSTS/default.aspx" /><category term="Desenvolvimento em Banco de Dados" scheme="http://blogs.msdn.com/procha/archive/tags/Desenvolvimento+em+Banco+de+Dados/default.aspx" /><category term="Visual Studio Team System 2008 Database Edition" scheme="http://blogs.msdn.com/procha/archive/tags/Visual+Studio+Team+System+2008+Database+Edition/default.aspx" /></entry><entry><title>Alta Disponibilidade com SQL Server</title><link rel="alternate" type="text/html" href="http://blogs.msdn.com/procha/archive/2008/03/07/alta-disponibilidade-com-sql-server.aspx" /><id>http://blogs.msdn.com/procha/archive/2008/03/07/alta-disponibilidade-com-sql-server.aspx</id><published>2008-03-07T22:24:59Z</published><updated>2008-03-07T22:24:59Z</updated><content type="html">&lt;p&gt;Alta disponibilidade &amp;#233; um assunto obrigat&amp;#243;rio quando falamos em servidores corporativos de banco de dados. Em qualquer segmento do mercado podemos citar exemplos de aplica&amp;#231;&amp;#245;es que n&amp;#227;o podem parar de funcionar: desde o controle de uma balan&amp;#231;a de caminh&amp;#245;es na estrada at&amp;#233; a emiss&amp;#227;o de passagens a&amp;#233;reas. Hospitais s&amp;#227;o um dos exemplos com o qual eu mais gosto de pensar quando falamos em miss&amp;#227;o cr&amp;#237;tica. &lt;/p&gt;  &lt;p&gt;Meu professor de guitarra dizia a alguns anos que eu parecia m&amp;#233;dico, pois, quando eu trabalhava com suporte e precisava fazer plant&amp;#227;o, ficava dispon&amp;#237;vel 24 horas por dia no per&amp;#237;odo de uma semana, que era o meu per&amp;#237;odo de plant&amp;#227;o em um m&amp;#234;s. Mas eu acho que, por maior que seja o preju&amp;#237;zo de um sistema parado, nenhum supera o preju&amp;#237;zo de uma vida perdida ou de um atendimento de emerg&amp;#234;ncia que n&amp;#227;o p&amp;#244;de ser iniciado. Ent&amp;#227;o quem faz miss&amp;#227;o cr&amp;#237;tica mesmo s&amp;#227;o os m&amp;#233;dicos e enfermeiros, n&amp;#227;o n&amp;#243;s, meros geeks da &amp;#225;rea de TI J&lt;/p&gt;  &lt;p&gt;Vamos voltar aos nossos preju&amp;#237;zos por causa de aplica&amp;#231;&amp;#245;es paradas. Os preju&amp;#237;zos podem ser em receita (entrada de pedidos, vendas), em aumento de custos (caminh&amp;#245;es parados, utiliza&amp;#231;&amp;#227;o de processos manuais ou de conting&amp;#234;ncia) e at&amp;#233; mesmo na imagem da empresa (atendimento a clientes, emiss&amp;#227;o de passagens, entrega de produtos), entre outros. O SQL Server oferece diversas alternativas para atingirmos n&amp;#237;veis non-stop de alta disponibilidade. &amp;#201; a abordagem que a Microsoft chama de Always On Technologies. No caso do SQL Server, seja com solu&amp;#231;&amp;#245;es como clusters geogr&amp;#225;ficos ou outras muito simples e baratas como o Database Mirroring, os n&amp;#237;veis alcan&amp;#231;ados de alta disponibilidade atendem as necessidades de neg&amp;#243;cio, independente do tamanho ou complexidade da aplica&amp;#231;&amp;#227;o. Neste post, vamos explorar algumas das alternativas de alta disponibilidade oferecidas pelo SQL Server 2005 e como elas foram melhoradas no SQL Server 2008. M&amp;#227;os a obra. &lt;/p&gt;  &lt;h1&gt;Antes de tudo, porque tantas op&amp;#231;&amp;#245;es?&lt;/h1&gt;  &lt;p&gt;Uma pergunta freq&amp;#252;ente &amp;#233;: porque existem tantas op&amp;#231;&amp;#245;es para resolver o mesmo problema? As diversas op&amp;#231;&amp;#245;es de alta disponibilidade oferecidas pelo SQL Server visam atender a qualquer cen&amp;#225;rio, n&amp;#227;o importa o tamanho da empresa. Seja um banco de dados de 100MB ou de 30TB, uma aplica&amp;#231;&amp;#227;o distribu&amp;#237;da contra uma centralizada, temos uma solu&amp;#231;&amp;#227;o mais apropriada para cada cen&amp;#225;rio. O que se deve fazer &amp;#233; olhar caso a caso e optar pela melhor op&amp;#231;&amp;#227;o. E, porque n&amp;#227;o, utilizar as op&amp;#231;&amp;#245;es de alta disponibilidade combinadas. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h1&gt;Database Mirroring&lt;/h1&gt;  &lt;p&gt;O Database Mirroring foi introduzido ao SQL Server 2005 como parte do Service Pack 1. Trata-se de uma tecnologia que permite atingir os maiores n&amp;#237;veis de alta disponibilidade de uma forma muito simples e barata. Ele permite espelhar um banco de dados em outro servidor, aplicando quaisquer altera&amp;#231;&amp;#245;es no banco de dados no servidor principal instantaneamente no servidor de espelho. &lt;/p&gt;  &lt;p&gt;Dependendo da forma como o Database Mirroring for configurado, o failover para o servidor de mirror pode ser autom&amp;#225;tico, sem necessidade de chaveamento manual na aplica&amp;#231;&amp;#227;o. Isto &amp;#233; feito atrav&amp;#233;s da utiliza&amp;#231;&amp;#227;o de um servidor chamado witness (testemunha) que monitora a disponibilidade do servidor principal e &amp;#8220;notifica&amp;#8221; as aplica&amp;#231;&amp;#245;es que se conectam a ele a chavearem para o servidor de mirror. (as aplica&amp;#231;&amp;#245;es procuram pelo witness atrav&amp;#233;s de um par&amp;#226;metro em sua connection string) Muito simples de configurar e manter, tem sido amplamente utilizado no mercado. &lt;/p&gt;  &lt;p&gt;Quanto a desempenho, pode-se configurar se as transa&amp;#231;&amp;#245;es ser&amp;#227;o enviadas em tempo real (de forma s&amp;#237;ncrona) ou com um pequeno atraso (de forma ass&amp;#237;ncrona). Isto permite balancear a carga de rede e de processamento. &lt;/p&gt;  &lt;p&gt;No SQL Server 2008, o Database Mirroring foi melhorado. Ele compacta os dados que s&amp;#227;o enviados entre os servidores, gerando uma carga menor em rede. Al&amp;#233;m disso, a prote&amp;#231;&amp;#227;o dos dados passa a ser feita por p&amp;#225;ginas (pages of data): se uma p&amp;#225;gina estiver corrompida, tanto no servidor principal quanto no mirror, o mecanismo do Database Mirroring toma o cuidado de recuperar a p&amp;#225;gina a partir do outro servidor. &lt;/p&gt;  &lt;p&gt;O que torna o Database Mirroring uma solu&amp;#231;&amp;#227;o barata, afinal de contas? V&amp;#225;rios fatores. Um dos principais &amp;#233; o fato de n&amp;#227;o precisar de hardware espec&amp;#237;fico, como um cluster, por exemplo, que exige um disco compartilhado e hardware para cluster. Outro ponto importante &amp;#233; que se o servidor onde fica o mirror n&amp;#227;o for utilizado para consultas de outras bases de dados (apenas em stand by), n&amp;#227;o &amp;#233; necess&amp;#225;rio pagar a licen&amp;#231;a do SQL Server que est&amp;#225; atuando como mirror. Esta configura&amp;#231;&amp;#227;o &amp;#233; chamada de cold backup. A partir do momento que a instancia de cold backup passa a ser utilizada, ainda que apenas para leitura, se faz necess&amp;#225;rio licenciar tamb&amp;#233;m este servidor. Por&amp;#233;m, no caso de um failover, o servidor de backup pode ficar no ar at&amp;#233; trinta dias no lugar do principal, sem que seja necess&amp;#225;rio pagar a licen&amp;#231;a do cold backup.&lt;/p&gt;  &lt;h1&gt;Log Shipping&lt;/h1&gt;  &lt;p&gt;O Log Shipping &amp;#233; uma tecnologia de alta disponibilidade que aplica logs transacionais em uma c&amp;#243;pia do banco de dados com certa periodicidade, garantindo uma c&amp;#243;pia atualizada do banco de dados na rede. Embora o tempo de atraso entre a aplica&amp;#231;&amp;#227;o destes logs no servidor secund&amp;#225;rio possa resultar em um banco de dados desatualizado no destino, pode-se utilizar a base secund&amp;#225;ria para leitura dos dados e recupera&amp;#231;&amp;#227;o caso ocorra um erro humano na base principal.&lt;/p&gt;  &lt;p&gt;O Log Shipping est&amp;#225; dispon&amp;#237;vel desde vers&amp;#245;es anteriores do SQL Server e tamb&amp;#233;m &amp;#233; utilizado amplamente. &lt;/p&gt;  &lt;h1&gt;Failover Clustering&lt;/h1&gt;  &lt;p&gt;Geralmente o Failover Clustering &amp;#233; a solu&amp;#231;&amp;#227;o mais comum quando falamos em alta disponibilidade. O SQL Server usufrui do servi&amp;#231;o de cluster do Windows Server para garantir alta disponibilidade em caso de falha de hardware. O servi&amp;#231;o de cluster do Windows Server (Microsoft Cluster Service) garante que servi&amp;#231;os hospedados em um servidor sejam movidos a outro em caso de falha de hardware, com queda m&amp;#237;nima no tempo de servi&amp;#231;o (pouco maior do que o Database Mirroring). Esta solu&amp;#231;&amp;#227;o requer hardware espec&amp;#237;fico, sendo esta a principal desvantagem. Os servidores que s&amp;#227;o membros do cluster acessam um mesmo sistema de discos, que &amp;#233; compartilhado entre todos os membros do cluster.&lt;/p&gt;  &lt;p&gt;O cluster &amp;#233; muito simples de se configurar, tendo todos os pr&amp;#233;-requisitos atendidos. Da parte do Windows Server, um simples assistente faz a configura&amp;#231;&amp;#227;o. No caso do SQL Server, durante a instala&amp;#231;&amp;#227;o voc&amp;#234; marca uma op&amp;#231;&amp;#227;o dizendo que ir&amp;#225; &amp;#8220;clusterizar&amp;#8221; recursos como o Database Engine ou o Analysis Services, escolhe os n&amp;#243;s (nodes) do cluster que far&amp;#227;o parte da instala&amp;#231;&amp;#227;o do SQL Server e o programa de instala&amp;#231;&amp;#227;o toma os devidos cuidados. Ao contr&amp;#225;rio do que muitas pessoas pensam, a vers&amp;#227;o Standard do SQL Server 2005 suporta a configura&amp;#231;&amp;#227;o de cluster de dois n&amp;#243;s (nodes).&lt;/p&gt;  &lt;p&gt;A principal novidade no SQL Server 2008 &amp;#233; o fato de n&amp;#227;o precisar de um drive l&amp;#243;gico para cada inst&amp;#226;ncia SQL no cluster: agora v&amp;#225;rias inst&amp;#226;ncias podem utilizar um mesmo drive l&amp;#243;gico (&amp;#8220;G:&amp;#8220;, por exemplo), o que dever&amp;#225; viabilizar mais a instala&amp;#231;&amp;#227;o de m&amp;#250;ltiplas inst&amp;#226;ncias SQL Server em um mesmo cluster. Al&amp;#233;m disto, agora ser&amp;#225; poss&amp;#237;vel suportar 16 n&amp;#243;s (nodes) em um cluster, mas este &amp;#233; na verdade um benef&amp;#237;cio do Windows Server 2008. &lt;/p&gt;  &lt;h1&gt;Geographically Dispersed Failover Clustering&lt;/h1&gt;  &lt;p&gt;Imagine um cluster separado fisicamente, com replica&amp;#231;&amp;#227;o de storage. Isto &amp;#233; o Geographically Dispersed Failover Clustering. A grande vantagem dele sobre o cluster comum &amp;#233; exatamente a caracter&amp;#237;stica de replica&amp;#231;&amp;#227;o do storage, que elimina um ponto de falha na solu&amp;#231;&amp;#227;o. Na eventual falha do sistema de discos de um dos n&amp;#243;s, todo o controle &amp;#233; cedido ao servidor secund&amp;#225;rio, que tem uma r&amp;#233;plica dos dados. &lt;/p&gt;  &lt;h1&gt;Peer-to-Peer Replication&lt;/h1&gt;  &lt;p&gt;Entre os v&amp;#225;rios modelos de replica&amp;#231;&amp;#227;o do SQL Server, talvez este seja o que melhor se aplica ao tema alta disponibilidade. A replica&amp;#231;&amp;#227;o Peer-To-Peer permite que os dados sejam replicados entre dois ou mais servidores, n&amp;#227;o importa onde as altera&amp;#231;&amp;#245;es ou inser&amp;#231;&amp;#245;es est&amp;#227;o sendo feitas. Para este cen&amp;#225;rio, no entanto, as aplica&amp;#231;&amp;#245;es precisam ser desenhadas de modo que sejam direcionadas a um dos servidores em espec&amp;#237;fico, j&amp;#225; que o SQL Server n&amp;#227;o faz resolu&amp;#231;&amp;#227;o de conflitos (para isto, veja merge replication). Esta solu&amp;#231;&amp;#227;o &amp;#233; especialmente apropriada quando falamos em servidores que est&amp;#227;o separados por dist&amp;#226;ncias maiores. &lt;/p&gt;  &lt;p&gt;At&amp;#233; o SQL Server 2005, o processo de replica&amp;#231;&amp;#227;o precisava ser interrompido caso houvesse a necessidade de adicionar um servidor a topologia de replica&amp;#231;&amp;#227;o. No SQL Server 2008, no entanto, este n&amp;#227;o &amp;#233; o caso: servidores podem ser adicionados &amp;#224; topologia de replica&amp;#231;&amp;#227;o sem parada da replica&amp;#231;&amp;#227;o.&lt;/p&gt;  &lt;h1&gt;Downtime Reduzido &lt;/h1&gt;  &lt;p&gt;Al&amp;#233;m das tecnologias citadas acima, v&amp;#225;rios recursos internos do SQL Server permitem uma maior disponibilidade do sistema. Alguns deles s&amp;#227;o:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Fast Database Recovery: &lt;/strong&gt;disponibiliza parcialmente os bancos de dados durante o processo de recovery (enquanto faz rollback de algumas transa&amp;#231;&amp;#245;es, por exemplo) , durante o failover em Database Mirroring e em processos de restore. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Backup and Restore: &lt;/strong&gt;o processo de backup e restore permite que voc&amp;#234; fa&amp;#231;a c&amp;#243;pias em v&amp;#225;rias unidades de fita, por exemplo, (tamb&amp;#233;m pode ser em disco) para ajudar em casos de perda ou de comprometimento da m&amp;#237;dia de backup. O SQL Server tamb&amp;#233;m gera checksums para poder fazer verifica&amp;#231;&amp;#245;es na fase de restore. No SQL Server 2008 a novidade &amp;#233; poder fazer backup comprimidos, que podem reduzir o n&amp;#250;mero de fitas necess&amp;#225;rias para o backup significativamente. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Checksum on Data Pages: &lt;/strong&gt;compara os valores escritos no disco aos valores lidos do checksum (aplicando-se um algoritmo de verifica&amp;#231;&amp;#227;o). Se n&amp;#227;o coincidirem, a p&amp;#225;gina &amp;#233; marcada como suspect e precisa ser restaurada.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Online Index Operations: &lt;/strong&gt;outro dia falei sobre isto em um cliente e ele disse: &amp;#8220;-O SQL Server realmente faz isso?&amp;#8221;. Faz sim!Desde o SQL Server 2005, &amp;#233; poss&amp;#237;vel fazer manuten&amp;#231;&amp;#227;o em &amp;#237;ndices sem afetar a disponibilidade.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Online Piecemeal and Page-Level Restore:&lt;/strong&gt; no SQL Server 2008, permite que se fa&amp;#231;a o restore dos filegroups por partes, deixando dispon&amp;#237;veis os dados j&amp;#225; restaurados. Tamb&amp;#233;m permite que se fa&amp;#231;a o restore de p&amp;#225;ginas corrompidas. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Partial Database Availability:&lt;/strong&gt; deixa um banco de dados dispon&amp;#237;vel mesmo se parte dele estiver comprometida (por falha em um disco, por exemplo)&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Snapshot Isolation: &lt;/strong&gt;garante que registros sejam lidos mesmo durante altera&amp;#231;&amp;#227;o dos dados, a partir da visualiza&amp;#231;&amp;#227;o de vers&amp;#245;es de uma linha. Aumenta a disponibilidade pelo fato de reduzir os tempos de lock substancialmente. Eu considero este um dos principais benef&amp;#237;cios do database engine do SQL Server 2005 em rela&amp;#231;&amp;#227;o a vers&amp;#245;es anteriores.&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Dynamic Configuration:&lt;/strong&gt; possibilidade de fazer upgrade de hardware sem parar o servi&amp;#231;o. Como um exemplo, adicione mem&amp;#243;ria em um servidor ligado (desde que o hardware d&amp;#234; suporte a isto) e disponibilize esta mem&amp;#243;ria para o SQL Server sem parar o servidor. No SQL Server 2008, a novidade &amp;#233; o suporte a adi&amp;#231;&amp;#227;o de processadores sem parar o servidor. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Perceba que alguns destes recursos est&amp;#227;o dispon&amp;#237;veis apenas na edi&amp;#231;&amp;#227;o Enterprise do SQL Server. Para uma tabela comparativa entre as diferentes edi&amp;#231;&amp;#245;es visite &lt;a href="http://www.microsoft.com/sql/prodinfo/features/compare-features.mspx"&gt;http://www.microsoft.com/sql/prodinfo/features/compare-features.mspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Outro fator importante que precisa ser lembrado &amp;#233; que o SQL Server oferece todos os recursos citados acima out-of-box. N&amp;#227;o &amp;#233; necess&amp;#225;rio pagar nada a mais para ter o Database Mirroring ou o Failover Cluster, por exemplo. &lt;/p&gt;  &lt;h1&gt;Conclus&amp;#227;o&lt;/h1&gt;  &lt;p&gt;O SQL Server oferece diversas solu&amp;#231;&amp;#245;es para atingir n&amp;#237;veis de alta disponibilidade. Embora sejam solu&amp;#231;&amp;#245;es individuais e auto-suficientes (n&amp;#227;o dependem necessariamente uma da outra), elas podem ser utilizadas em conjunto para atingir maiores n&amp;#237;veis de alta disponibilidade, como no cen&amp;#225;rio abaixo:&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="889" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="279"&gt;         &lt;ul&gt;           &lt;li&gt;&lt;strong&gt;Database Mirroing:&lt;/strong&gt; site prim&amp;#225;rio de disastre&lt;/li&gt;            &lt;li&gt;&lt;strong&gt;Log Shipping:&lt;/strong&gt; sites adicionais para disastre e recovery l&amp;#243;gico (altera&amp;#231;&amp;#245;es n&amp;#227;o desejadas)&lt;/li&gt;            &lt;li&gt;&lt;strong&gt;Replica&amp;#231;&amp;#227;o:&lt;/strong&gt; relat&amp;#243;rios e escalabilidade para leitura, com redund&amp;#226;ncia&lt;/li&gt;            &lt;li&gt;&lt;strong&gt;Clustering: &lt;/strong&gt;redund&amp;#226;ncia de servidor&lt;/li&gt;            &lt;li&gt;&lt;strong&gt;Backup&lt;/strong&gt;&lt;/li&gt;         &lt;/ul&gt;       &lt;/td&gt;        &lt;td valign="top" width="608"&gt;&lt;a href="http://blogs.msdn.com/blogfiles/procha/WindowsLiveWriter/AltaDisponibilidadecomSQLServer_E4F5/image_4.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="570" alt="image" src="http://blogs.msdn.com/blogfiles/procha/WindowsLiveWriter/AltaDisponibilidadecomSQLServer_E4F5/image_thumb_1.png" width="513" border="0" /&gt;&lt;/a&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;N&amp;#227;o importa o tamanho do seu neg&amp;#243;cio ou a complexidade da sua aplica&amp;#231;&amp;#227;o: O SQL Server &amp;#233; o servidor de banco de dados ideal para atingir alta disponibilidade com baixos custos. &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8105149" width="1" height="1"&gt;</content><author><name>procha</name><uri>http://blogs.msdn.com/members/procha.aspx</uri></author><category term="SQL Server 2008" scheme="http://blogs.msdn.com/procha/archive/tags/SQL+Server+2008/default.aspx" /><category term="SQL Server 2005" scheme="http://blogs.msdn.com/procha/archive/tags/SQL+Server+2005/default.aspx" /><category term="SQL Server em portugu&amp;#234;s" scheme="http://blogs.msdn.com/procha/archive/tags/SQL+Server+em+portugu_26002300_234_3B00_s/default.aspx" /><category term="SQL Server" scheme="http://blogs.msdn.com/procha/archive/tags/SQL+Server/default.aspx" /><category term="Gerenciamento" scheme="http://blogs.msdn.com/procha/archive/tags/Gerenciamento/default.aspx" /><category term="Alta disponibilidade" scheme="http://blogs.msdn.com/procha/archive/tags/Alta+disponibilidade/default.aspx" /><category term="Database Mirroring" scheme="http://blogs.msdn.com/procha/archive/tags/Database+Mirroring/default.aspx" /><category term="Failover Clustering" scheme="http://blogs.msdn.com/procha/archive/tags/Failover+Clustering/default.aspx" /><category term="SQL Server backup" scheme="http://blogs.msdn.com/procha/archive/tags/SQL+Server+backup/default.aspx" /><category term="Cluster" scheme="http://blogs.msdn.com/procha/archive/tags/Cluster/default.aspx" /><category term="Log Shipping" scheme="http://blogs.msdn.com/procha/archive/tags/Log+Shipping/default.aspx" /><category term="Peer-To-Peer Replication" scheme="http://blogs.msdn.com/procha/archive/tags/Peer-To-Peer+Replication/default.aspx" /></entry></feed>