Red Gate – Overview – SQL Data Compare

Nos artigos anteriores vimos o SQL Prompt que permite aquelas funcionalidades de autocompletar, snippets e formatação de script. Também vimos o SQL Compare, que permite comparar a estrutura de dois bancos de dados. Agora veremos o SQL Data Compare, que permite a comparação dos dados de dois bancos de dados.

Esta ferramenta é bem semelhante ao SQL Compare, as vezes até me confundia qual ferramenta eu estava utilizando:

Na aba tables & views, é possível definir as tabelas ou views a serem comparadas, as chaves primárias ou unicas utilizadas para as comparações (ou até mesmo definir critérios customizados para comparação sem chaves), filtrar quais registros serão comparados por uma clasula WHERE, o até mesmo dizer quais as colunas a serem comparadas:

Nas abas Object Mapping e Owner Mapping, você pode definir quais tabelas/schemas serão comparados com quais outras tabelas/schemas:

E por último, definir alguns critérios mais específicos para comparação, como considerar collation e acentos:

Em seguida, prosseguir com o “Compare Now”:

Dependendo da quantidade de registros, é interessante salvar o projeto para que se der algum problema seja possível executar novamente a comparação sem configurar o SQL Data Compare. Também é altamente recomendável definir filtros para a comparação das tabelas (Clausula WHERE da aba Table & Views) e ter memória RAM disponível.

Como resultado da comparação, é possível verificar quais registros somente existem em um dos bancos de dados, quais são idênticos e quais são diferentes. Também informar quais os registros que serão sincronizados:

Lembrando que, no script para sincronização, os registros que estão diferentes serão atualizados segundo o Source, assim os registros que só existe no Target serão excluídos (se não desmarcados) e os registros que só existem Source serão inseridos no Target.

Utilizando o Synchronization Wizard (ferramenta semelhante à que temos no SQL Compare), poderemos gerar o script para sincronização do banco de dados Target com os dados do Source, de forma bem simples:

Com esta ferramenta, terminamos o Overview sobre as ferramentas que considero essenciais do Red Gate para o dia-a-dia dos desenvolvedores e DBAs que trabalham com SQL Server.

Atenção, desenvolvedores:
Uma solução mais simples para quem já possui o Visual Studio 2008 Team System ou o Visual Studio 2010 Premium ou Ultimate, é optar pela ferramenta Data Compare do Visual Studio:
https://sqlfromhell.wordpress.com/2011/01/27/visual-studio-2010-data-compare/

Mais informações:
http://www.red-gate.com/products/sql-development/sql-data-compare

Red Gate – Overview – SQL Compare

Uma ferramenta muito útil para comparar dois bancos de dados em ambientes diferentes (ex.: ambiente de desenvolvimento e produção) e sincronizar a estrutura destes é o SQL Compare.

O primeiro passo para a utilização desta ferramenta é definir os bancos de dados a serem comparados:

Lembrando que no caso de uma sincronização, o banco de dados da área direita receberá as alteração de acordo com a estrutura do banco de dados da área esquerda.

Um dos vários diferenciais desta ferramenta, que considero extremamente interessante, é a possibilidade de comparar estruturalmente até mesmo arquivos de backup:

Na tab Owner Mapping é possível definir quais os schemas do banco de dados serão comparados (muito útil em algumas arquiteturas).

E a tab Options, onde são definidos os critérios de comparação:

Depois de configurar como se dará a comparação, clique sobre “Compare Now” (também é interessante ‘Salvar’ o projeto para reutilizá-lo e não ter que refazer toda a configuração novamente).

Por experiência própria, se no seu cenário há mais do que 1000 tabelas, recomendo executar esta ferramenta em equipamento que possua mais do que 2GB de memória RAM.

Comparação concluída:

Agora temos o seguinte dashboard, onde temos (1) os objetos comparados, (2) detalhamento dos objetos comparados, (3) os filtros dos objetos comparados.

No caso do banco de dados sofrer alguma alteração e ser necessário refazer a comparação, clique sobre o botão “Refresh”.

Para gerar o script para sincronização, é necessário primeiro marcar quais os objetos que serão sincronizados:

Cuidado no caso dos objetos que só existem no banco de dados da área direita, pois se marcados para sincronização, estes poderão ser excluídos.

Em seguida, clicar sobre o botão “Synchronization Wizard”:

Agora, será possível optar por sincronizar com o SQL Compare ou gerar o script de sincronização:

No próximo passo, temos os objetos que possuem alguma dependência com os objetos a serem sincronizados:

Por fim, o script que, conforme selecionado no primeiro passo, será executado ou será aberto no SQL Server Management Studio:

Atenção, desenvolvedores:
Uma solução mais simples para quem já possui o Visual Studio 2008 Team System ou o Visual Studio 2010 Premium ou Ultimate, é optar pela ferramenta Schema Compare do Visual Studio:
https://sqlfromhell.wordpress.com/2011/01/27/visual-studio-2010-schema-compare

Esta ferramenta esta presente tanto no pacote SQL Developer Bundle, quanto no pacote SQL Toolbelt, ou mesmo vendida separadamente.

Mais informações:
http://www.red-gate.com/products/sql-development/sql-compare

Red Gate – Overview – SQL Prompt 5

O SQL Prompt é uma das ferramentas mais úteis da Red Gate para o dia-a-dia do DBA e desenvolvedores que trabalham com o SQL Server. Mas por que eu digo isso?

Primeiro, digitando uma simples letra, ele já relaciona todos comandos, tabelas, schemas, bancos de dados e snippets relacionados a esta letra:

Possibilidade de utilizar de snippets:

(ex.: ssf + TAB, você já tem o comando “SELECT * FROM” pronto na tela) 

Informações sobre as tabelas (detalhamento dos campos e script de criação da tabela):

Auxilio para identificar colunas das tabelas e até mesmo campos recomendados para os JOINs:

Comandos para formatação e validação dos scripts:

Ferramenta para você criar seus próprios snippets:

Também, recursos para customizar o funcionamento da ferramenta, tais como customização do estilo de formatação, padrões de nomenclatura, alias automáticos, entrou outros:

E dependendo da situação, até mesmo a opção de desabilitar a ferramenta:

Dica: Quando utilizar o SQL Prompt, se recomenda desabilitar o intelliSense do SSMS, para evitar conflitos:

Esta ferramenta esta presente tanto no pacote SQL Developer Bundle:
http://www.red-gate.com/products/sql-development/sql-developer-bundle

e no pacote SQL Toolbelt:
http://www.red-gate.com/products/sql-development/sql-toolbelt

Também é vendida separadamente por um valor bem acessível:
http://www.red-gate.com/products/sql-development/sql-prompt

Se esta ferramenta esta muito além do seu poder aquisitivo, então, continue a utilizar o IntelliSense do SQL Server Management Studio (SSMS) e no caso de formatação dos scripts SQL, existe uma ferramenta online free neste sentido, mas não tão boa quanto o SQL Prompt:
https://sqlfromhell.wordpress.com/2009/06/08/ferramenta-on-line-para-organizar-o-sql/

Mais informações:
http://www.red-gate.com/products/sql-development/sql-prompt/

Red Gate – Overview

Acredito que é praticamente impossível existir um DBA de SQL Server que nunca tenha ouvido falar dos produtos da Red Gate Software. Mas vamos a um overview de alguns produtos que considero interessantes, e nos próximos artigos, vou demonstrar o funcionamento destas ferramentas.

SQL Prompt Pro:
Oferece recursos como o intellisense de T-SQL, snippets, formatação do script, entre outras funcionalidades. Totalmente integrado com o SQL Server Management Studio e possui algumas funções também integradas com o Visual Studio.

O que é intellisense e snippets? Intellisense é aquele “autocomplete” que quando você escreve “SELECT * FROM” e já aparecem os nomes das tabelas do banco de dados para você selecionar. Snippets é aquele recurso que permite configurar atalhos para alguns comandos, exemplo, escrever “sl” e já aparecer “SELECT”.

SQL Compare Pro (também para Oracle):
Basicamente permite comparar a estrutura de dois bancos de dados e gerar um script para sincronizar a estrutura deles, além de outras operações mais complexas.

A função básica desta ferramenta é semelhante ao Schema Compare do Visual Studio, mas com muito mais possibilidades e recursos (comparação de arquivos de backup, snapshot, scripts).

SQL Data Compare Pro (também para Oracle):
Permite comparar a massa de dados de dois bancos de dados, e gerar o script para sincronizar esta massa de dados, também oferecendo recursos para outras operações mais complexas.

A função básica desta ferramenta é semelhante ao Data Compare do Visual Studio, mas com muito mais possibilidades e recursos.

Considerações finais

Também há várias outras ferramentas para SQL Server, como o SQL Source Control (controle de versão de documentos e script para SQL Server), SQL Monitor (monitor de desempenho e alertas) e SQL Doc (documentação do banco de dados), e outras para Visual Studio, Oracle e Exchange.

Mais informações:
http://www.red-gate.com/