SQL SERVER DATA TOOLS – INTEGRATION SERVICES

Olá pessoal!

Neste post vou falar um pouco sobre SQL Server Data Tools no SQL Server 2012.

A partir da versão do SQL Server 2012 não encontramos mais o SQL Server Business Intelligence Development Studio para desenvolvimento de projetos SSIS, SSAS e SSRS. Nesta nova versão passaremos a utilizar o SQL Server Data Tools.

Nas versões anteriores o desenvolvimento era realizado nas seguinte forma:

  • Enterprise Manager – DTS – Data Transformation Services
    SQL Server 7.0 e 2000
  • Visual Studio
    SQL Server 2005, 2008, 2008 R2

No decorrer deste post vamos utilizar os serguintes componentes:

*** No final do post consta um vídeo demonstrando o funcionamento.

Vamos para atividade:

  • Abrir SQL Server Data Tools:
    1
  • Clicar em  FIle > New > Project;
    1
  • Criar projeto;
    1 – Integration Services Project
    2 – Nome do projeto
    3 – Local onde será salvo o projeto
    4 – Nome da solução
    5 – Clicar em Ok
    1
  • Projeto após a criação;Com o projeto criado podemos observar cinco áreas muito importantes .
    – SSIS Toolbox
    – Área de Design
    – Connection Managers
    – Variables
    – Solution Explorer1

Cenário: Vamos importar dos dados de uma arquivo texto, validar a existência dos dados, registros que existem no banco de dados serão atualizados e registros que não constam na base de dados serão incluídos.

  • Primeiro componente que iremos utilizar será o Data Flow Task;
    Neste componente colocaremos todo o nosso fluxo de integração. Arraste o componente Data Flow Task para área de Design.Os componentes utilizado podem ser renomeados conforme a necessidade da sua aplicação. Nesta demonstração não vou renomear nenhum componente para que fique fácil identificar o componente que vou estar utilizando.

    *** observe que quando estamos na área de Control Flow temos alguns componentes específicos desta área de Control Flow no SSIS Toolbox. Quando passarmos para área de Data Flow aparecerão outros componentes.

    1

  • Dê um duplo clique sobre o componente Data Flow Task para ir para área de Design do componente;*** Observe no SSIS Toolbox os componentes.

    1

  •  Dê um duplo sobre Source Assistant;
    1
  • Selecione 1- Flat File , 2- New e clique em Ok;
    1
  • Selecione o arquivo, formato e delimitador;
    1
  • Clique em Column  para visualizar as colunas e clique em Ok;
    1
  • Dê um duplo clique novamente em Source Assistant;
    1
  • Selecione 1 – SQL Server, 2 – New e clique em 3 – Ok;
    1
  • Informe a instância, tipo de autenticação, selecione o banco de dados;
    1
  • Teste a conexão e clique em Ok;
    1
  • Na área de Design aparecerá co componente OLE DB Source;Observe que o componente está sinalizando erro.

    1

  • Dê um duplo clique sobre o componente OLE DB Source e selecione a tabela;
    1
  • Verifique as colunas e clique em Ok;
    1
  • A sinalização de erro não aparece mais;
    1
  • Após as configurações das origens dos dados, podemos observar as conexões configuradas.
    1
  • Vamos adicionar dois componentes Sort;
    1
  • Selecione os componentes Flat File Ole DB. Um por vez e ligue o fluxo Azul (sucesso) com o componente Sort.
    1
    1
  • 1
  • Dê um duplo clique sobre os componentes Sort  e selecione a coluna ID e clique em Ok;
    1

    1
  • Após a configuração do Sort;
    1
  • Incluir o componente de Merge Join;
    1
  • Selecionar o Fluxo do Sort 1 e ligar ao Merge Join;Aparecerá a janela Input Output Selection.1
  • Selecione Merge Join Left Input e clique em Ok;
    1
  • Ligue o outro componente Sort ao Merge Join;
    1
  • Dê um duplo clique no componente Merge Join, realize as configurações abaixo e clique em Ok;1
  • Adicione o componente Conditional Split e ligue o componente Merge Join ao Conditional Split;
    1
  • Vamos verificar as inclusões e atualizações;
    Condições: se o retorno da coluna ID_DB for nulo, indica que é um novo registro e se id for diferente de nulo será uma atualização.
    1
  • Próxima etapa será criar uma variável do tipo objetos para receber as informações dos dados que devem ser atualizados;Na aba de variáveis clique no ícone para inclusão.1 

    Informações para criação da variável:
    1

  • Com o retorno do componente de condição o que for inclusão vamos utilizar o Destination Assistant.Dê um duplo clique sobre Destination Assistant;
    1

    Selecionar a conexão já criada e clique em Ok;
    1
  • Será criado na área de Design  OLE DB Destination;
    1

  • Ligue o Conditional Split ao OLE DB Destination, selecione o output “NOVO” (registros novos) e clique em Ok;
    1
  • Selecione a tabela de destino;
    1
  • Verifique o mapeamento das colunas e clique em Ok;
    1
  • Após a configuração a área de Design  tem que estar da seguinte forma:
    1
  • Agora a próxima etapa será tratar as atualizações. Vamos adicionar um Recordset Destination;
    1
  • Ligue o Conditional Split ao Recordset Destination, selecione o output  “Atualizacao”  e clique em Ok;
    1
  • Após a associação dos componentes;
    1
  • Dê um duplo clique sobre o Recordset Destination, selecione a variável que criamos anteriormente;
    1 

    Selecione as colunas que vamos utilizar nas atualizações e clique em Ok;1

  • Após as configurações;
    1
  • Retorne a aba de Control Flow  e adicione o componente Script Task;
    1
  • Ligue o Data Flow Task ao Script Task, dê um duplo clique sobre o Script Task, selecione a linguagem C#, informe a variável que carregamos  lá no Recordset Destination e clique em Edit Script;
    1
  • Ao clicar em Edit Script abrirá o Visual Studio para que seja feito o desenvolvimento em C#;
    1
  • No C# podemos utilizar os Namespaces  do framework .NET.  Neste exemplo estarei usando o namespace System.Data.SQLClient para realizar as atualizações e o namespace Oleddb.Data.Oledb para ler a variável com os dados.Poderia utilizar a mesma conexão já configurada na Package e um único namespace para fazer tudo, mas é ideia é mostrar que podemos utilizar outros componentes.

    1

  • Abaixo script capturando as informações da variável e atualizando os registros no banco de dados;
    Salve o desenvolvimento e feche o Visual Studio e clique em Ok para fechar o Script Task.
    1
  • Área de Design estará da seguinte forma;
    1

Abaixo vídeo demonstrando o funcionamento:

Até mais!!!

Anúncios

SQL SERVER PROFILER – EXECUTANDO TRACE COM FILTRO

Neste post vou mostrar um pouco como utilizar o SQL Server Profiler com filtros.

Muitas vezes precisamos monitorar as execuções de um determinado banco de dados e até mesmo de algum objeto específico. Podemos utilizar o SQL Server Profiler para capturar as informações de um banco de dados específico filtrando por objeto, tempos de execuções, leituras, escritas, cpu, etc.

Para este exemplo iremos trabalhar como seguinte cenário: precisamos monitorar a execução de uma View  chamada vJobCandidateEducation que está em execução no banco de dados AdventureWorks2012.

  • Abrir o SQL Server Profiler;
    1
  • Conectar na instância;
    1
  • Para este exemplo utilizarei o template padrão;
    1
  • Selecionar Event Selection;
    1
  • Desmarcar as opções dos grupos Security Audit, Sessions e TSQL>SQL:BatchStarting;
    1
  • Selecionar Show all columns;
    1
  • Buscar o ID do banco de dados;
    1
  • Selecionar Database ID;
    1
  • Clicar em Columns Filters;
    1
  • Selecionar DatabaseID e informar ID do bando de dados no filtro;
    1
  • Selecionar TextData, informar no nome do objeto entre “%” no filtro e clicar em Ok;
    1
  • Clicar em Run;
    1
  • SQL Server Profiler em execução.
    1

Em uma New Query  vamos ter três execuções de Views, porém só aparecerá no trace a execução da View que colocamos no filtro.

1

SQL Server Profiler após a captura da execução:

1

Até mais!!!

REALIZANDO CONSULTA EM ARQUIVO DO SQL SERVER PROFILER (.TRC) COM A FUNÇÃO FN_TRACE_GETTABLE()

Neste post demonstrarei como realizar consulta em arquivos gerados pelo SQL Server Profiler.

Muitas vezes coletamos as informações que estão em execução no SQL Server através da ferramenta SQL Server Profiler, porém quando necessitamos realizar filtros e ordenamentos na console no do SQL Server Profiler encontramos algumas limitações.

Vale lembrar que podemos gerar um trace armazenando em uma tabela, o que também oferece o recurso de filtros e ordenações dos dados coletados. Mas vamos supor que um cliente está com problema em seu banco de dados e lhe envia um trace. Se for analisar diretamente na console do SQL Server Profiler passará um grande trabalho até analisar todas as informações.

Segue uma dica de como consultar informações contidas em um arquivo gerado pelo SQL Server Profiler (TRC).

Abaixo arquivo de trace (SQL Server Profiler):
1

Para consultar as informações no arquivo de trace do SQL Server Profiler podemos utilizar a função fn_Trace_Gettable().

Abaixo segue exemplo de como ler as informações contidas no arquivo de trace:
1

Até mais!!!

ALTERANDO OWNER DO BANCO DE DADOS

Neste post demonstrarei como alterar o owner do banco de dados.

Podemos realizar esta operação no modo gráfico ou por comando.

Alteração por comando:

  1. Verificar o owner;

    Por código podemos verificar de duas formas:
    Query na sys.databases ou sp_helpdb.
    1

  2. Executar a store procedure sp_changedbowner para alteração;
    1
  3. Verificando após a alteração;
    1

 

Modo gráfico:

  1. Clicar com botão direito sobre o banco de dados e selecionar propriedades;
    1
  2. Acessar as propriedades do banco de dados;
    1
  3. Selecionar Files e alterar o owner;
    1

Até mais!!!

CAPTURANDO PROCESSAMENTO DO SQL SERVER MINUTO A MINUTO COM SYS.DM_OS_RING_BUFFERS

Neste post demonstrarei como capturar o processamento do SQL Server minuto a minuto utilizando a SYS.DM_OS_RING_BUFFERS.

Observação: esta view retorna os últimos 256 minutos.

Scripts: http://sdrv.ms/15jYBU9

Versão para SQL 2008, 2008 R2 e 2012

 

1

Versão para SQL 2005:

1

 

 

Até mais!!!