Primeiros passos com BigData–MVPShowCast 2013

Fala galera, em 2013 fui convidado à participar do MVPShowCast para falar sobre BigData. Veja o post falando sobre isso. Sim, está faltando a apresentação na trilha de BI. Aconteceram alguns problemas na época e não pude fazer a apresentação. Para quem não pode acompanhar no dia, segue o vídeo e os slides utilizados para […]

The post Primeiros passos com BigData–MVPShowCast 2013 appeared first on Think Think SQL.

mas bah! SQLSat #284: Porto Alegre! Vai ser tri a fude!

Buenas galera, para quem não sabe no dia 26 de Abril vai acontecer em Porto Alegre mais uma edição do SQL Saturday! Depois de 283 edições ao redor do mundo o evento finalmente é grande o bastante para ter a primeira edição em solo Rio Grandense! E como não poderia deixar de ser eu vou […]

SQLSat #284 Porto Alegre

Como muitos já devem saber em Abril teremos mais um SQLSat no Brasil, dessa vez em Porto Alegre. Acho que o evento dispensa apresentações, mas se você não sabe muito sobre os SQLSats recomendo que visite o site: http://www.sqlsaturday.com/.
Eu submeti uma sessão que felizmente foi aprovada, então vou falar um pouco sobre paralelismo:
Título: Entendendo o paralelismo no SQL Server
Descrição: Um assunto recorrente em discussões sobre SQL Server é o uso do paralelismo, e sempre fica a pergunta, é bom ou ruim? Nessa sessão vamos ver detalhes do paralelismo no SQL Server, configurações que influenciam seu uso (MAXDOP = 1?), entender o famoso wait type CXPACKET e analisar diversas consultas paralelas. Ao fim da sessão você vai poder olhar para o paralelismo com um olhar crítico e realista!
O que estou achando mais fantástico nesse SQLSat é a quantidade de palestrantes diferentes, número maior que o de Brasília (talvez o pessoal tenha ficado com receio da “desorganização do organizador” do evento em BSB, não sei). Evento que até o momento se mostra imperdível, e tenho certeza que será assim até o fim!
Ficou curioso? Então veja todas as palestras: http://www.sqlsaturday.com/284/schedule.aspx
Abraços
sr. Nimbus Serviços em Tecnologia - www.srnimbus.com.br

Nem só de Index Seeks vive um bom Execution Plan

Tipicamente quando tentamos otimizar um query tentamos garantir que os indices existentes nas nossas tabelas são utilizados de uma forma eficaz para tornar a nossa consulta o mais eficiente possível. Nesse sentido procuramos garantir que nos nossos planos de execução aparecem os operadores Index Scans e, preferencialmente, Index Seeks.

Mas será que um Index Seek é sinal de que o nosso query está completamente otimizado?

Vamos ver um exemplo:

Após a criação desta simples tabela vamos prencher com alguns dados:

Agora que temos um indice criado e os dados na nossa tabela vamos fazer uma simples consulta e analisar o plano de execução:

Podemos verificar que é realizado um Index Seek para obter os dados que pretendemos. Será que isto é suficiente para garantir a eficiência da nosa consulta? Se olharmos para as estatisticas de IO podemos verificar que foram necessárias 97 data pages para obter  os 1024 registos pretendidos.

Vamos experimentar um índice ligeiramente diferente:
Neste caso continuamos a obter o nosso Index Seek mas com uma pequena diferença:

Mesmo optando por um índice de maiores dimensões podemos verificar que os nosso resultados são obtidos com apenas 5 leituras lógicas.

Esta diferença advem do facto de no primeiro caso ser realizado um Partial Seek, ou seja, é realizado um seek no primeiro campo do índíce mas os restantes dados são obtidos através de um scan de todos os registos que resultaram do seek na primeira coluna. Ora, neste exemplo, é notório que simplesmente encontrar um index seek não é sinónimo de eficiência máxima da nossa consulta.



Como descobrir a página física dos registros de uma tabela com apenas um SELECT

Olá Pessoal, Continuando os cursos do Paul Randal na PluralSight, muitas ideias de posts vão surgindo e com o tempo permitindo, colocarei aqui no Blog. Hoje vou falar de duas funções não documentadas que nunca tinha ouvido falar: %%PHYSLOC%% e fn_PhysLocCracker. Criei uma tabela e populei com mil registros para a realização dos testes: CREATE TABLE TesteLocalizacaoRegistros( [...]

2014, um MVP de SQL Server a menos, mudanças e novidades

Bom Dia Pessoal, Após mais de um ano sem blogar resolvi dar as caras e escrever alguma coisa por aqui. Dizem que o ano só começa na primeira segunda-feira após o carnaval, pois, mesmo quinta e sexta ainda tem muitos … Continuar lendo

SQL Saturday #284 – Agenda publicada

Olá pessoal, Enfim a agenda do SQL Saturday #284 – Porto Alegre está publicada. Podemos dizer que criamos uma agenda repleta de grandes palestras e de também grandes profissionais. Serão ao todo 15 palestras sobre Database Administration, Database Development e Business Intelligence, onde teremos a presença de palestrantes muito conceituados no cenario brasileiro. Estarão presentes […]

SQLdiag – Parte 3 – Configurando o SQLdiag (Script’s customizados).


Fala galera tudo tranquilo? Espero que sim! Estou saindo de férias e ficarei alguns dias sem postar coisas novas por aqui, mas, para sair em "grande estilo" estou publicando mais um post da série sobre o SQLdiag! Enjoy!

 Hoje vou demonstrar como fazer com que o utilitário colete também resultados de scripts disparados de tempos em tempos contra a instância do SQL Server que deseja monitorar.

 Primeiramente, baixem a ferramenta Diag Manager no CodePlex


 Ao abrirem a ferramenta, naveguem até a aba do SQL Server 2008 e na direita em Custom Diagnostics, deixem apenas selecionado SQL 2008 Perf Stats e nas demais opções deixem conforme a imagem abaixo:


 Depois, cliquem em Save, e especifiquem um caminho para que o programa salve o arquivo XML:

Na parte em que o programa questiona a versão, selecionem qualquer uma das duas e clique em OK:
 
 
 Abra o XML que foi gerado no Notepad e procurem pelo trecho:
 
type="TSQL_Script"

 Vejam que interessante:

  <CustomTask enabled="true" groupname="SQL 2008 Perf Stats" taskname="SQL 2008 Perf Stats Script" type="TSQL_Script" point="Startup" wait="No" cmd="SQL_2008_Perf_Stats.sql" pollinginterval="0" />

 Temos uma task personalizada dentro do XML chamando o script SQL_2008_Perf_Stats.sql. Quero rodar um script de minha autoria, é possível? Claro! Vamos criar um script simples que vai ter o seguinte código:

SET NOCOUNTON

WHILE 0<1

BEGIN

SELECT 'start time:', GETDATE();
EXEC sp_helpdb
WAITFOR DELAY'00:00:05'

END;

 Vamos chamar este script de helpdb_sample.sql. Agora copiem o script para dentro do diretório default do utilitário SQLDiag, depois copiem para um outro diretório o mesmo XML que já começamos a customizar no segundo post da série sobre o SQLdiag (http://sqlmagu.blogspot.com.br/2014/01/sqldiag-parte-2-configurando-o-sqldiag.html), chamado SQLDiag_custom.XML, abram o XML copiado e localizem a tag:
<CustomDiagnostics>
  
 Agora, abaixo dela adicionem o seguinte trecho de código:

  <CustomTask enabled="true" groupname="HelpDB Sample Script" taskname=" HelpDB Sample Script" type="TSQL_Script" point="Startup" wait="No" cmd="helpdb_sample.sql" pollinginterval="0" />

 O que está em amarelo são nomes de nossa preferência, o nome em verde deve ser exatamente igual ao do script no diretório default do SQLdiag, do contrário não irá funcionar. Salvem as alterações no XML e colem ele de volta no diretório do SQLdiag, aceitem a substituição dos arquivos.

 It’s show time! Abra um prompt de comando com privilégios administrativos, naveguem até o diretório do utilitário e rodem o serviço da seguinte forma: sqldiag /I SQLDiag_custom.XML, como na imagem abaixo:


 Se aparecer a mensagem dizendo que já existem arquivos na pasta SQLDIAG, apenas concordem em sobrescrever os mesmos com a tecla “Y” e depois pressionem Enter. Com o SQLdiag no ar, reparem o que surgiu dentro da pasta SQLDIAG:
 

 Vejam só, existe um OUT file com o mesmo nome do nosso script de exemplo. Abram o arquivo e reparem no conteúdo:
 

 Isso mesmo! Agora nossa coleta usando o SQLdiag além de coletar dados do Performance Monitor, também coleta resultados de scripts! Por hora é só pessoal, espero que tenham gostado e não percam o próximo post! Irei demonstrar como fazer com que o SQLdiag seja um serviço instalado no Windows que roda periodicamente de acordo com os horários que nós definirmos! Até lá!

 Fonte:
http://www.virtualpass.com.br/

Short Script – Março – 2014

Salve, galera!!! Mais uma vez começando e como de costume vou complicar com vocês, mas alguns Short Scripts, específicos para o Microsoft SQL Server 2008, R2 e 2012. Na relação de hoje, vocês vão poder encontrar Scripts sobre: - History Auto Page Repair; - Long Running SQL/CLR Tasks; - Process Address Space Info; - Information about […]

SQL Saturday #284 – Agenda

Está publicada a agenda para o SQL Saturday #284. Para aqueles que ainda não conhecem o SQL Saturday é um evento organizado em conjunto com o PASS que ocorre todos os sábados em diversas cidades ao redor do mundo. O evento de número 284 ocorrerá dia 26/abr/2014 na cidade de Porto Alegre. Esta é uma […]
Go to Top