SQL Monitor

Lançada a versão final do SQL Monitor. Eu venho acompanhando o desenvolvimento e testando há algum tempo, até opinei em algumas features. 

Para quem não conhece o SQL Monitor é uma ferramenta de monitoramento para SQL Server com interface web. Recomendo a todos que façam o download do Trial.

Abaixo segue algumas das features encontradas:

  • Monitoramento móvel: usa interface web para monitorar o estado e desempenho;
  • Intuitivo: monitora cada nível de desempenho (global, máquina, cluster, SQL Server e banco de dados);
  • Alertas centralizado: os alertas de monitoramento centralizados em um único painel e com opção para serem enviados por email;
  • SSRS: disponibilizar o acompanhamento dos dados gerados através de SSRS.

Para conhecer veja o blog http://www.thefutureofmonitoring.com/blog/

Abraço, Rodrigo

Diferenças em tabelas

O SQL Server nos da um utilitário de linha de comando (a partir da versão 2005) chamado TableDiff.exe que tem por objetivo exibir as diferenças entre tabelas. Para maiores informações recomendo os links Utilitário tablediff (MSDN) e Comparando duas tabelas: tablediff (Blog do Alexandre Lopes).

Já partindo para um uso mais extenso recomendo a utilização do SQL Compare da Red Gate, esse é um utilitário desenvolvido que proporciona uma série de features tais como (vou listar apenas quatro dessas): 

  • Gerar scripts e aplicar scripts;
  • Comparar uma base dados, um device de backup, um snapshot ou até mesmo um diretório com scripts contidos;
  • Comparar os schemas, owner;
  • permitir colocar a clausula With Encription ao gerar as stored procedures no banco de dados destino.

De maneira simplificada o SQL Compare faz um mapeamento dos objetos e exibe graficamente, veja abaixo a tela inicial para um novo projeto.

A seguir a tela Owner Mapping.

A guia Options fornece diversas opções como a de definir que no destino os objetos que permitem sejam criptografados.

 

Ao executar a comparação teremos um mapeamento completo de objetos, já classificados pelas diferenças para facilitar a analise.

Com tantos recursos visualizar as diferenças não é uma tarefa que nos dará trabalho, basta marcar o objeto e um painel na parte inferior da tela irá abrir com as diferenças nos scripts.

Show Object Synchronization Script

Essa opção pode ser acessada com o botão direito do mouse sobre o painel de resultados. Um painel com os scripts para atualização irá ser exibido na tela, esses scripts podem ser sobre um ou mais objetos que estão sendo comparados.

Synchronization Wizard

Outra grande feature deste software é a opção de um Wizard que permite aplicar as atualizações de maneira simplificada.

Importante salientar que essa Wizard não faz nada que previamente tenhamos tido a opção de analisar, ainda assim é possível solicitar a geração dos scripts, ou sincronizar diretamente e ainda assim por segurança temos uma opção de fazer um backup antes de aplicar a sincronização.

Para finalizar, na minha opinião o SQL Compare é um produto completo, que além de facilitar com o uso de diversos Wizards, proporciona de maneira intuitiva e organizada as informações para analise.

Abraço, Rodrigo

 

Friends of Red Gate 2010

Na última semana eu recebi da Red Gate um pacote contendo:

  • Um livro The Book of Red Gate 2010;
  • Uma camiseta com o exclusivo logotipo do programa Friends of Red Gate.

O livro não só conta um pouco da história da empresa, mas trás consigo um valor agregado, uma lição de conceitos que algumas empresas deveriam aprender.

Certamente estou apreciando muito a leitura.

 

Uma das frases que prendeu muito a minha atenção foi:

“We count contribution, not hours…What you achive is more than how long it takes.”

 

Algumas empresas que buscam melhores resultados controlando apenas BSCs deveriam observar que entregar um projeto de TI, seja ele um novo software, ou um atendimento de suporte é muito mais do que apenas números, é um resultado que deve ser mensurado com a qualidade e a satisfação dos clientes e dos colaboradores.

 

Para finalizar o post quero agradecer pela honra de ser um Friend of Red Gate.

 

Abraço, Rodrigo.  

FREE eBook: .NET Performance Testing and Optimization – The Complete Guide

Pessoal!

Eu acabei de ler esse livro e recomendo.

Para fazer o download basta clicar aqui.

Abaixo segue a descrição:

In the complete guide to .NET Performance Testing and Optimization, Paul Glavich and Chris Farrell offer a comprehensive handbook to anybody looking to set up a .NET testing environment and get the best results out of it. The authors will also walk you through both memory and performance profiling and suggest steps you can take to get fast performance gains. Download your free copy now.

  • Chapter 01: Introduction – The What and the Why
  • Chapter 02: Understanding Performance Targets
  • Chapter 03: Performance and Load Test Metrics
  • Chapter 04: Implementing your Test Rig
  • Chapter 05: Creating Performance Tests
  • Chapter 06: Next Steps – Profiling
  • Chapter 07: Performance Profiling
  • Chapter 08: Memory Profiling
  • Chapter 09: The Performance Testing Process
  • Chapter 10: Common Areas for Performance Improvement
  • Chapter 11: Load Balancing
  • Chapter 12: Internet Information Server (IIS)
  • Chapter 13: HTTP Optimization

Abraço, Rodrigo

 

Usando Merge

Essa instrução permite que façamos mescla de dados entre duas tabelas, utilizando os comandos DML (insert, update e delete) como ação caso uma condição seja verdadeira,ou falsa.

Além de tudo a instrução Merge possui uma sintaxe muito simples, veja abaixo:

  • Merge: indica a tabela de destino
  • Using: indica a tabela de origem
  • When not matched then: em português, “quando a condição não combinar” (não precisa explicar não é?)
  • When matched then: em português, “quando a condição combinar”

Há pouco tempo atrás construí uma solução em um projeto, onde os representantes diariamente sincronizavam dados de pedidos em uma tabela chamada sinc.pedido e uma rotina diária era executada para mesclar esses dados há uma tabela chamada adm.pedido. Abaixo seguem o ER das tabelas do cenário.

Utilizando o SQL Data Generator da Red Gate eu incluí 100000 registros na tabela de sincronização. Assim ao criarmos a rotina de mescla teremos uma idéia do desempenho.

Abaixo segue o código utilizado para fazer o Merge dos dados, esse script levou 2 segundos para rodar no meu notebook no ambiente de teste que eu criei já no ambiente de produção a mesma quantidade de dados demora menos de 1 segundo para executar.

Merge adm.pedido 
    Destino
Using sinc.pedido 
    Origem
On 
    origem.cdpedido = Destino.cdpedido
When Not Matched then
    Insert values (Origem.cdpedido, Origem.dtpedido, Origem.cdcliente, Origem.cdvendedor, Origem.dspedido)
When matched then    
    Update set Destino.cdpedido = Origem.cdpedido;    

Para concluir, em versões passadas do SQL Server poderíamos utilizar um cursor para fazer a comparação da tabela e tomar as ações, ou até mesmo uma tabela temporária enfim existem diversas formas criativas de contornar a situação, porém o Merge nos da um desempenho melhor na maior parte dos casos e é muito fácil de programar.

Abraço, Rodrigo

SQL Data Generator

Um dos grandes erros no desenvolvimento é não simular o ambiente do cliente. O caso mais comum é quanto à otimização das tabelas ou desempenho dos relatórios.

Para resolver esses problemas, é interessante fazermos uma carga de massa de dados nas tabelas mais críticas. Um dos grandes auxílios que temos para esse trabalho é utilizar um software chamado SQL Data Generator.

Esse software permite dar carga de dados através de uma fonte de dados externa ou através de seu gerador de registros. O gerador de registros trabalha de forma muito criativa dentro da regra da tabela, por exemplo, em um campo identity ele simplesmente ignora a importação, já se tivermos um campo de foto do cliente ele irá incluir fotos de pessoas. Além de tudo isso esse software ainda permite criarmos nossas regras utilizando expressões regulares.

Abaixo vou exemplificar como esse software pode ser utilizado. Para baixar a versão Trial do software basta acessar esse link

Como a maior parte dos softwares produzidos pela Red Gate, esse é integrado ao Management Studio e pode ser chamado através do menu Tools.

 

Ao chamar o SQL Data Generator a primeira tela apresentada é a do Project Configuration, onde vamos passar os dados de conexão (servidor, usuário, senha e banco de dados).

 

Após confirmar os dados de login o software fará a leitura do catálogo de objetos do database e irá listar as tabelas, disponibilizando assim, a opção de selecionar as que devem ser populadas.

No exemplo abaixo, vou selecionar apenas uma tabela de cargos dos colaboradores, onde há duas colunas o ID e o nome do cargo.

 

No painel a esquerda chamado Tables to populate, será listada todas as tabelas do database e ao expandir uma tabela a sua estrutura será exibida.

Já no painel a direita será dividido em duas partes uma chamada de Table generate settings e outra de Preview of data to be generated.

  • Table generate settings, permite informar quantos registros devem ser gerados, além de flegar se a tabela terá seus registros excluídos da origem. Há também a possibilidade de indicar outra fonte de dados para a carga.

Nesse exemplo vou deixar à configuração padrão a fonte dos dados será gerado através do algoritmo do software, serão gerados 1000 registros e a tabela terá seus registros excluídos.

  • Preview of data to be generated, exibe uma prévia dos dados que irá ser inserido na tabela, no meu exemplo a primeira coluna da minha tabela virá marcada com um ícone de um database isso é porque essa coluna é Identity, porém a segunda coluna terá alguns registros gerados de forma aleatória, isso porque ele assume uma expressão regular para gerar os dados. Para alterar basta clicar sobre a coluna e na guia superior modificar a lógica de geração dos dados. 

O SQL Data Generator possui um range de possibilidades com dados pré-definidos, por exemplo: nomes de pessoas (completo, primeiro nome, segundo nome), valores (money), enfim basta selecionar o combo Generator e escolher o tipo de registro.

Nesse exemplo, das possibilidades exibidas a que mais adere a minha tabela é o item Categori que fica dentro de Business.

Para fazer a “mágica acontecer” basta clicar em Generate Data e o software irá gerar os mil registros na tabela.

 

Para concluir, esse software economiza muito tempo de carga de dados para testes, principalmente no quesito de otimização de consultas. Imagine desenvolver um grande relatório de milhões de linhas e facilmente colocar os registros na sua tabela para teste.

Espero que tenham apreciado a dica, bons testes.

Abraço, Rodrigo

 

 

 

SQL Search

 

Voltando de férias fiquei feliz em receber um e-mail da equipe da Red Gate avisando da liberação da primeira versão do SQL Search, falei deste plug-in no post do dia 07 de janeiro http://www.blog.crespidb.com.br/blogcrespi/post/2010/01/07/SQL-Search.aspx.

A nova versão superou minhas espectativas, realizei os mesmos testes que na versão beta e a performance esta melhor além da disposição do retorno que ficou mais clean.

O link para o produto é http://www.red-gate.com/products/SQL_search/index.htm, não deixem de baixar e utilizar esse plug-in.

Abraço, Rodrigo.