SQL Server Saturday Night – 2ª edição

No dia 16/01/2009 irá acontecer a segunda edição do SQL Server Saturday Night.

17:55 – 18:00 >> Abertura do Evento

18:00 – 18:50 >> “Titulo: Integrando dados do SQL Server 2008 no Sharepoint 2007″ – Marcelo Sincic

18:50 – 19:40 >> “O que voce queria saber sobre Filestream mas não sabia aonde encontrar” – Vitor Fava/Alexandre Lopes

19:40 – 20:30 >> “Preveja o Futuro com os Add-ins de Data Mining do Office 2007” – Thiago Zavaschi

20:30 – 21:20 >> “SQL Server Powershell Extensions”  – Laerte Jr

21:20 – 22:10 :> Tema a ser definido – Roberto Fonseca

22:10 – 23:00 >> “Acesso a dados com LINQ”  – Agnaldo Diogo dos Santos

Para participar basta acessar esse link e fazer o registro.

Abraços, Rodrigo

Performance Data Warehouse

O Performance Data Warehouse que também é conhecido como Performance Studio é um recurso implementado no SQL Server 2008 que permite a coleta de informações para estudo e análise de performance.

Esse novo recurso é baseado em uma feature chamada de Data Collector e está sobre dois pilares:

  • SSIS (SQL Server Integration Services)
  • SQL Server Agent

Toda a coleta de dados feita é armazenada em um database previamente configurado, e a coleta pode ser feita através dos tipos de coletores abaixo:

  • T-SQL Query
  • SQL Trace
  • Performance Counter
  • Query Activity

O Data Collector gera dinamicamente os resultados gravando em tabelas de output, quando os resultados forem gerados a partir de query devemos ter o cuidado de não incluir na consulta campos com nomes como snapshot_time, snapshot_id ou database_name, isso porque são nomes reservados do Data Collector.

Outra consideração é campos do tipo XML, Text, Image, nText não serão incluídos no retorno e não serão coletados.

As DMVs para consultar o Query Activity Collector são:

    • Sys.dm_exec_requests
    • Sys.dm_exec_sessions
    • Sys.dm_exec_query_stats

Para utilizarmos esse recurso precisamos seguir os passos que eu vou descrever abaixo:

    • Habilitar o Data Collection
    • Configurar o banco de dados que gravará a coleta
    • E analisar os dados
    • Vejamos isso na pratica é muito fácil.

Configurando o Data Collector

No Manegement Studio, abra o Object Explorer e expanda a guia Management, lá haverá um item chamado Data Collection, para habilitar basta clicar com o botão direito e clicar na opção Enable Data Collection

clip_image002

Acesse o Data Collection novamente com o botão direito do mouse e clique na opção Configure Management Data Warehouse, isso abrirá um wizard, basta avançar na tela de Welcome e na próxima tela marcar Create or upgrade a management data warehouse e clique em avançar.

clip_image004

Na próxima tela iremos definir os dados de gravação da coleta, no caso o database. Para isso clique em New, isso fará com que abra a tela de New Database crie um banco de dados chamado coleta, clique em OK, e voltaremos ao Wizard do Data Collection e é só avançar para continuarmos.

clip_image006

Map Logins and Users é onde selecionaremos os usuários e os logins que serão usados para coleta. Nesse caso selecione o usuário que corresponde ao SQL Server Service e a role mdw_admin. Após configurar essa etapa basta avançar e concluir.

clip_image008

Configurando o Management Data Warehouse

Agora que temos o Data Collector configurado, vamos configurar o Management Data Warehouse, clique com o botão direito sobre o item Data Collection e selecione a opção Configure Management Data Warehouse, selecione Set up data collection e clique em avançar.

clip_image010

Na próxima tela, vamos deixar as opções padrão e avançar, ao fazer isso, abrira a tela de autenticação do SQL Server confirme as credenciais e clique em finalizar.

Agendando a coleta

As coletas não precisam ser feitas sempre? Ou precisam? Essa pergunta é respondida apenas com estudo de caso da situação, algumas vezes, na maior parte dos casos vamos coletar apenas em períodos em que uma determinada situação ocorre.

Para realizarmos o agendamento de um item, como exemplo a utilização de disco, vamos expandir o item System Data Collection Sets e clicar sobre Disk Usage com o botão direito e selecionar propriedades.

clip_image011

clip_image013

Na tela de propriedades, sobre a opção Data collection and upload temos o Schedule, clique em New. Isso abrirá a tela de New Job Schedule e é só preencher o nome e o período do agendamento. Veja a imagem abaixo, o agendamento foi feito para acontecer todas as segundas-feiras , quartas-feiras, sextas-feiras e sábados às 13 horas.

clip_image015

Importante lembrar que o agendamento só irá funcionar se o serviço do SQL Server Agent for inicializado.

Relatório

Ok, temos um coletor de informações que esta programado para acontecer em determinado período, mas e como vamos visualizar essas informações?

Simples, na opção Data Collection clicamos com o botão direito do mouse e sobre o item Reports, abrirá o item Management Data Warehouse e nessa opção encontraremos o item Disk Usage Summary.

clip_image017

clip_image019

Espero que esse post tenha sido proveitoso a todos.

Abraço, Rodrigo

Feature Pack do CTP de novembro do SQL Server 2008 R2

Para quem quiser testar o CTP de novembro do SQL Server 2008 R2, é só clicar aqui e fazer download dos pacotes.

O Texto abaixo foi tirado do site da Microsoft.


Visão GeralO Feature Pack do CTP de novembro do SQL Server 2008 R2 é uma coleção de pacotes autônomos que agregam valor adicional ao SQL Server 2008 R2. Ele inclui as versões mais recentes de:

  • Componentes redistribuíveis para SQL Server 2008 R2.
  • Provedores complementares para SQL Server 2008 R2.

Observação: alguns componentes do Feature Pack do Community Technology Preview de novembro do Microsoft® SQL Server® 2008 R2 do SQL Server® têm determinados recursos habilitados para a Internet, inclusive o Programa de Aperfeiçoamento da Experiência do Usuário e o componente Relatório de Erro e Uso, habilitados por padrão para nos ajudar a identificar e resolver problemas que você talvez possa encontrar ao usar o SQL Server®. Para obter mais informações e instruções sobre como desabilitar esses recursos, consulte a Declaração de Privacidade do SQL Server®

Observação: alguns componentes do Feature Pack do Community Technology Preview de novembro do Microsoft® SQL Server® 2008 R2 do SQL Server® têm dois métodos diferentes para concluir o processo de instalação:

  • instalação obrigatória – uma interface do usuário interativa orientará você em meio ao processo de instalação e obtenção de todas as informações e do consentimento exigido para concluir a instalação. Isso inclui a exibição, o reconhecimento e o arquivamento dos termos de licença do SQL Server aplicáveis.
  • instalação autônoma – trata-se de um processo de instalação em linha de comando DOS que não tem uma interface de usuário interativa para orientar você em meio ao processo de instalação. Nesse caso, será obrigatória a inserção de um parâmetro durante a instalação que indique a aceitação dos termos de licença. Os termos de licença podem ser baixados nesse site para a revisão


Bons testes.
Abraço, Rodrigo

SQL Server Saturday Night

Dia 19/12 acontecerá o SQL Server Saturday Night este evento é FREE e ONLINE.

Serão 5 horas de palestras sobre SQL Server veja a agenda do evento é imperdível.

– SQL Server 2008 R2: Saiba o que vem por ai… (Daniel Camillo) – 17:15 as 18:00 horas
– Powershell & Transact-SQL (Laerte Jr) – 18:00 as 18:50 horas
– Profiler e Perfmon – (Vladimir Magalhães) – 18:50 as 19:40 horas
– Alta Disponibilidade: Mirroriing  (Vitor Fava) – 19:40 às 20:30 horas
– Performance & Tuning –  (Rodrigo Crespi) – 20:30 horas as 21:20 horas
– Database Snapshots (Alexandre Lopes) – 21:20 às 22:10 horas
– SQL Server 2008 R2 (Thiago Zavaschi) – 22:10 às 23:00 horas

O link para inscrição SQL Server Saturday Night.

Compartilhe com seus colegas e amigos essa oportunidade. Contamos com a presença de vocês!

Abraço, Rodrigo,

Cross Apply

O Cross Apply não é novidade do SQL Server 2008, foi introduzido no SQL Server 2005, mas como recebi diversos pedidos de explicações sobre sua funcionalidade resolvi escrever um post.

Porém, para explicar o Cross Apply primeiro vou explicar o que faz o Cross Join para facilitar o entendimento. Este filtro permite obter todos os registros de todas as tabelas fazendo o produto cartesiano. Esse tipo junção permite que o número total de registros seja a multiplicação do total de registros das tabelas envolvidas.

Vamos ao exemplo prático:

 

Criação das tabelas

Criação das tabelas

Ilustração 2 - Inclusão de dados

Ilustração 2 – Inclusão de dados

Ilustração 3 - Cross Join

Ilustração 3 – Cross Join

 

Ilustração 4 - Contando linhas

Ilustração 4 – Contando linhas

E o Cross Apply?

O Cross Apply funciona quando o Cross Join não funciona, ou seja, ele identifica a tabela que esta chamando a subquery, até mesmo permite passar os campos da primeira query como um parâmetro para um UDF.

Vamos supor que no Cross Join seja necessário aplicar um Where na subquery passando o cdtb1 para o campo cdtb2 isso retornaria um erro, já que o Cross Join não reconhece a estrutura acima.

 

Ilustração 5 - Cross Join

Ilustração 5 – Cross Join

Como estou utilizando o Management Studio do SQL Server 2008 ele já identificou que o grupo de objetos tb1.* não pertence a subquery e o retorno desta consulta é um erro.

Ilustração 6 - Cross Apply

Ilustração 6 – Cross Apply

Já na consulta a cima, o Management Studio identificou o tb1.* como parte da consulta, criando assim o Join e o retorno desejado.