Material de Apoio – Agosto 2017


Boa tarde pessoal!

Salve, salve amantes de banco de dados, Tudo bem?

Este é mais um post da sessão Material de Apoio, sendo o terceiro no decorrer de 2017 e de número 153 no total desta sessão.

Já passamos da metade de 2017, que loucura isso, como a rotina do dia a dia não nos deixa perceber o quanto o tempo na para de correr. Falando justamente da correria da nossas vida, a relação de arquivos compartilhadas neste post poderá justamente lhe ajudar a economizar muito do seu tempo.

O post de hoje

Para aqueles que já acompanham o meu blog a um certo tempo, os posts dedicados a sessão Material de Apoio, possuem o objetivo de compartilhar o conhecimento de recursos, funcionalidades e procedimentos que podemos realizar no Microsoft SQL Server.

Hoje não será diferente, estou trazendo alguns dos mais recentes scripts  catalogados nos últimos meses, que atualmente estão compondo a minha galeria de códigos formada ao longo dos anos de trabalho como DBA, e hoje principalmente como Professor de Banco de Dados.

Neste post você vai encontrar arquivos relacionados com os seguintes temas:

  • Cláusula Values;
  • Comando Distinct;
  • Comando Select;
  • Comando Top;
  • CTE Recursiva para geração de sequência de datas;
  • CTE Recursiva para geração de sequência numérica de CEPs;
  • Extended Events;
  • Função Format;
  • Função PARSE;
  • Funções de Ranking – Row_Number;
  • Monitoramento de senhas;
  • Operador Cross Apply;
  • Operador Outer Appy;
  • Recursos bloqueados;
  • SPDIDs de Conexões;
  • SPIDs de usuários; e
  • User Defined Function para cálculo de anos em colunas computadas.

Tenho a certeza que este conteúdo poderá lhe ajudar muito em seus atividades profissionais e acadêmicas, fique a vontade para copiar, editar, compartilhar e distribuir estes arquivos com seus contatos.

Material de Apoio

A seguir apresento a relação de scripts selecionados:

 

 

 

 

 

 

 

 

 

Por questões de compatibilidade com a plataforma WordPress.com, todos os arquivos estão renomeados com a extensão .doc ao final do seu respectivo nome, sendo assim, após o download torna-se necessário remover esta extensão, mantendo somente a extensão padrão .sql.

Nota: Todos os arquivos disponibilizados foram obtidos ou criados com autorização de seus autores, sendo estes, passíveis de direitos autorais.

Links

Caso você queira acessar os posts anteriores da sessão, não perca tempo utilize os links listados abaixo:

Agradecimento

Quero agradecer imensamente a sua visita, espero lhe encontrar muitas vezes no decorrer deste ano em meu blog.

Não deixe de acessar os outros posts das demais sessões, e o próximo post desta sessão será publicado no mês de Novembro, até lá continue curtindo sua vida e compartilhando suas experiência.

Um forte abraço.

SQL Server Management Studio 17.2 liberado para download


Você conhece o SQL Server Management Studio?

SQL Server Management Studio é um ambiente integrado para o gerenciamento de qualquer infra-estrutura SQL do SQL Server banco de dados SQL. SQL Server Management Studio fornece ferramentas para configurar, monitorar e administrar as instâncias de SQL. Use o SQL Server Management Studio para implantar, monitorar e atualizar os componentes de camada de dados usados por suas aplicações, bem como construir consultas e scripts.

Use o SQL Server Management Studio (SSMS) para consultar, projetar e gerenciar seus bancos de dados e data warehouses, onde quer que estejam – no computador local ou na nuvem.

SQL Server Management Studio é grátis!

Baixar o SQL Server Management Studio 17,2

Baixar o SQL Server Management Studio 17,2 atualizar pacote (atualizações 17 para 17,2)

A instalação de 17 SSMS não atualizar ou substituir as versões do SQL Server Management Studio 16.x ou anterior. SSMS 17 instalações lado a lado com as versões anteriores para que ambas as versões estão disponíveis para uso. Se um computador contiver instalações lado a lado de SQL Server Management Studio, verifique se que você começar a versão correta para suas necessidades específicas. A versão mais recente é rotulado como Microsoft SQL Server Management Studio 17e tem um novo ícone:

SSMS 17.x

Informações de versão

O número de versão: 17,2 o número de compilação para esta versão: 14.0.17177.0.

Novidades

SSMS 17,2 é a versão mais recente do SQL Server Management Studio. A geração de 17 do SQL Server Management Studio fornece suporte para quase todas as áreas de recurso no SQL Server 2008 através de SQL Server de 2017. Versão 17 também suporta SQL Analysis Service PaaS.

Versão 17,2 inclui:

    • Autenticação de vários fatores (AMF)
      • Autenticação de usuário múltiplo AD Azure para autenticação Universal com autenticação de vários fatores (UA com AMF)
      • Um novo campo de entrada de credencial do usuário foi adicionado para autenticação Universal com AMF para oferecer suporte à autenticação multi-usuário.
    • A caixa de diálogo de conexão agora suporta os seguintes métodos de 5 autenticação:
      • Autenticação do Windows
      • Autenticação do SQL Server
      • Active Directory – Universal, com o apoio do MFA
      • Active Directory – senha
      • Active Directory – integrado
    • Banco de dados de importação/exportação para assistente de DacFx agora pode usar autenticação Universal com AMF.
    • ADAL biblioteca gerenciada usada pela autenticação Azure AD Universal com AMF foi atualizada para versão 3.13.9.
    • Uma nova interface CLI suportando configuração de admin AD Azure para banco de dados SQL e SQL Data Warehouse.
    • Janela de saída possui entradas para consultas executadas durante a expansão de nós do pesquisador de objetos.
    • Habilitado o modo de exibição designer para bancos de dados SQL Azure
    • Mudaram-se as opções de script padrão para scripts de objetos de Object Explorer no SQL Server Management Studio:
      • Anteriormente, o padrão em uma instalação nova era ter o destino do script gerado a versão mais recente do SQL Server (atualmente SQL Server 2017).
      • No SSMS 17,2 foi adicionada uma nova opção: Configurações de Script Match a fonte. Quando definida como True, o script gerado destina-se a mesma versão, tipo do motor e do motor edition como servidor do objeto sendo roteirizado é de.
      • O valor de Configurações de Script Match a fonte é definido para True por padrão, para que novas instalações do SQL Server Management Studio automaticamente padrão serão sempre scripts de objetos para o mesmo destino que o servidor original.
      • Quando o valor de Configurações de Script Match a fonte é definido como False, as opções de destino script normal serão habilitadas e funcionam como fizeram anteriormente.
      • Além disso, todas as opções de script foram movidas para a sua própria seção – Opções de versão. Eles não estão mais sob Opções gerais de Scripting.
    • Adicionado suporte para nuvens nacional em “Restaurar a partir de URL”
    • QueryStoreUI relatórios agora suporta adicional métricas (número de linhas, DOP, CLR tempo etc.) do sys.query_store_runtime_stats.
    • IntelliSense agora é suportado por banco de dados SQL Azure.
    • Segurança: caixa de diálogo conexão será o padrão para não confiar em certificados de servidor e solicitando criptografia para conexões de banco de dados SQL Azure
    • Melhorias gerais em torno de suporte para o SQL Server no Linux:
      • Nó de correio do banco de dados está de volta
      • Abordadas algumas questões relacionadas com caminhos
      • Melhorias de estabilidade de Monitor de atividade
      • Caixa de diálogo Propriedades de Conexão exibe a plataforma correta
    • Relatório de servidor Dashboard desempenho agora disponível como um relatório padrão:
      • Pode se conectar ao SQL Server 2008 e versões mais recentes.
      • Subrelatório de índices ausentes usa Pontuação para ajudar a identificar índices mais útil.
      • Estatísticas de espera histórica sub relatam agora agregados esperas ser categoria. Ocioso e esperas de sono filtrados por padrão.
      • Novo histórico travas subrelatório.
    • Pesquisa de plano de execução nó permite buscar em Propriedades do plano. Facilmente procure qualquer propriedade de operador como nome da tabela. Para usar esta opção quando visualizar um plano:
      • Botão direito do mouse no plano e no menu de contexto clique na opção Localizar nó
      • Usar CTRL + F

Para obter uma lista completa de alterações, consulte SQL Server Management Studio – Changelog (SSMS).

Suporte para versões

    • Esta versão do SQL Server Management Studio funciona com todas as versões suportadas do SQL Server 2008 – 2017 de SQL Server e fornece o maior nível de suporte para trabalhar com as mais recentes características de nuvem no banco de dados SQL Azure e SQL Azure Data Warehouse.
    • Não há nenhum bloco explícito para SQL Server 2000 ou SQL Server 2005, mas alguns recursos podem não funcionar corretamente.
    • Além disso, o SSMS 17 pode ser instalado lado a lado com o SQL Server Management Studio 16.x ou SQL Server 2014 SSMS e versões anteriores.

Sistemas operacionais com suporte

Esta versão do SQL Server Management Studio suporta as seguintes plataformas de 64 bits quando usado com o mais recente disponível service pack:

    • 10 Windows (64 bits)
    • Windows 8.1 (64 bits)
    • Windows 8 (64 bits)
    • Windows 7 (SP1) (64-bit)
    • Windows Server 2016 *
    • Windows Server 2012 R2 (64 bits)
    • Windows Server 2012 (64 bits)
    • Windows Server 2008 R2 (64 bits) 

* O SSMS 17 baseia-se na shell do Visual Studio 2015 isolada, que foi lançado antes de 2016 de servidor Windows. Microsoft leva a sério o compatibilidade de aplicativo e garante que já enviados com aplicações continuam a correr sobre as versões mais recentes do Windows. Para minimizar problemas na execução do SQL Server Management Studio em 2016 de servidor Windows, certifique-se de que SSMS tem todas as últimas atualizações aplicadas. Se você tiver quaisquer problemas com o SQL Server Management Studio no Windows Server 2016, contate o suporte. A equipe de suporte determina se o problema for com o SQL Server Management Studio, Visual Studio, ou com compatibilidade do Windows. A equipe de suporte roteia a questão para a equipe apropriada para maiores investigações.

Idiomas disponíveis

Esta versão do SQL Server Management Studio pode ser instalado nos seguintes idiomas:+

SQL Server Management Studio 17,2:
chinês (República Popular da China) | Chinês (Taiwan) | Inglês (Estados Unidos) | Francês | Alemão | Italiano | Japonês | Korean | Português (Brasil) | Russas | Espanhol

SQL Server Management Studio 17,2 atualizar pacote (atualizações 17 para 17,2):
chinês (República Popular da China) | Chinês (Taiwan) | Inglês (Estados Unidos) | Francês | Alemão | Italiano | Japonês | Korean | Português (Brasil) | Russas | Espanhol

Download de versões anteriores

Versões anteriores do SQL Server Management Studio

Links adicionais

Fontes e Direitos Autorais: Microsoft – 07/08/2017 – https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms

Dica do Mês – Utilizando a Trace Flag 9292 para exibir objetos estatísticos úteis


 

Olá comunidade, boa tarde.

Tudo bem? Estamos se aproximando dos últimos dias de férias ou recesso para grande maioria dos professores e profissionais de educação espalhados por todo Brasil. E ai, já esta preparado para voltar a luta? Posso dizer tranquilamente que sim, eu estou pronto para voltar a conviver com meus alunos e amigos de trabalho.

Antes de começarmos a falar sobre o post de hoje, nada mais justo começar agradecendo como de costume a você está aqui neste momento acessando meu blog. Espero que possa ter encontrado o que precisa, bem como, esteja gostando do conteúdo publicado, fique a vontade para entrar em contato expressando suas opiniões e demais pensamentos.

Neste novo post da sessão Dica do Mês, vou apresentar um recurso que imagino ser conhecido por muitos ou principalmente pelos profissionais de banco de dados, estou me referindo as Trace Flag ou sinalizador de rastreamento em português.

Você já ouvir falar sobre isso ou já utilizou? Eu imagino que sim pois aqui no meu blog diversos posts e artigos foram publicado ao longo dos últimos anos sobre este tipo de recurso. Hoje mais especificamente vou destacar o uso da Trace Flag 9292, por acaso você já utilizou em algum momento esta trace flag?

Bom independente da sua reposta vamos conhecer um pouco mais sobre ela, sua forma de uso e como poderá nos ajudar a entender ainda mais o funcionamento das estatísticas e seus chamados objetos úteis para análise do plano de execução.

E ai esta curioso para saber um pouco sobre este recurso? Eu estou, sendo assim, vamos em frente, seja bem vindo ao post Dica do Mês – Utilizando a Trace Flag 9292 para exibir objetos estatísticos úteis.

Vamos em frente…..


Introdução

Todos sabemos que as estatísticas desempenham um papel muito importante dentro do SQL Server, como também, sabemos que as estatísticas são usadas pelo otimizador de consultas para gerar o plano de execução para cada consulta.
Então a questão é, podemos verificar qual objeto estatístico é útil para a execução da consulta? Sim, usando o Trace Flag do SQL Server 9292. Este é um do sinalizador de rastreamento que pode ser usado durante a solução de problemas.
Esse sinalizador de rastreamento é usado para obter o relatório sobre objetos de estatísticas considerados como “interessantes” ou “úteis” pelo otimizador de consulta durante a compilação ou recompilação de consulta.

Adicionada ao Microsoft SQL Server 2008 após a instalação do service pack 1 e mantida até as atuais versões, no momento em tomamos a decisão de utilizar a Trace Flag 9292, orientamos o SQL Server a apresentar todos os objetos estatísticos considerados úteis por parte do plano de execução para realizar o processamento e retorno dos dados.

O uso da Trace Flag 9292 dentro de uma sessão ou query específica, nos ajuda a entender e conhecer como as estatísticas e seus elementos podem mudar totalmente a maneira que o plano de execução é idealizado, armazenado e processado.

Através dela podemos obter um relatório sobre as estatíticas para cada objeto envolvido em nossa query, onde estes supostos objetos devem ser considerados úteis, ou melhor dizendo válidos e aplicáveis no decorrer do caminho realizado até a apresentação do resultado.

Esta é uma trace flag que pode ser usada durante a resolução de problemas, onde sua função é apresentar na guia de mensagens do Management Studio, um pequeno cabeçalho contendo informações estatísticas sobre cada componente útil e válido para formas os dados estatísticos de processamento da query. Este cabeçalho é conhecido como Stats header loaded.

Para ativar a trace flag utilize o comando DBCC TraceON (9292) ou DBCC TraceOFF (9292) para desativar, ou se preferir utilize a opção QueryTraceOn em sua respectiva query.

Agora que já conhecemos um pouco mais sobre os conceitos desta trace flag, chegou a hora de colocar as mãos no teclado e conhecer melhor o funcionamento da flag 9292 e de que forma ela poderá impactar o trabalho do Microsoft SQL Server, nos permitindo identificar os objetos úteis processados ou candidatos a processamento por parte do Query Processor em conjunto com Execution Plan.

Preparando o ambiente

Nosso ambiente será bastante simples, basicamente criaremos um banco de dados denominado DBTrace9292, constituído de uma tabela denominada TBTrace9292, para tal utilizaremos o Bloco de Código 1 que apresenta a criação dos respectivos objetos:

— Bloco de Código 1 —
— Criando o Banco de Dados DBTrace9292 —
Create Database DBTrace9292
Go

— Acessando —
Use DBTrace9292
Go

— Criando a Tabela TBTrace9292 —
Create Table TBTrace9292
(Codigo Int Identity(1,1) Primary Key,
Valores Int,
Descricao Varchar(100))
Go

Após a criação dos objetos básicos, nosso próximo passo será a criação de índice nonclustered para coluna Valores que nos permitirá fazer o uso de estatísticas de processamento para esta coluna durante o processo de inserção de dados, conforme apresenta o Bloco de Código 2 apresentado abaixo:

— Bloco de Código 2 —
— Criando o Índice NonClustered IND_TBTrace9292Valores —
Create NonClustered Index IND_TBTrace9292Valores on TBTrace9292(Valores)
Go

— Inserindo uma linha de registro na Tabela TBTrace9292 —
Insert Into TBTrace9292
Values(2000,’pedrogalvaojunior.wordpress.com’)
Go

— Inserindo 1.000 linhas de registros na Tabela TBTrace9292 —
Insert Into TBTrace9292
Values(4000,’pedrogalvaojunior.wordpress.com’)
Go 1000

Note que existir uma pequena mais importante diferença entre os dois Inserts, no primeiro estamos inserindo uma linha de registro na tabela TBTrace9292. No segundo criamos em tempo de execução um pequeno bloco de inserção de linhas, sendo este processado 1.000 vezes, inserindo então 1.000 linhas.

Seguindo em frente, o Bloco de Código 3 será utilizado para criarmos uma Stored Procedure denominada P_PesquisarValores como forma para buscar os respectivos registros armazenados na tabela TBTrace9292. A seguir apresento o Bloco de Código 3:

— Bloco de Código 3 –
— Criando a Stored Procedure P_PesquisarValores —
Create Procedure P_PesquisarValores @Valor int
As
Begin
Select Descricao from TBTrace9292
Where Valores = @Valor
OPTION (RECOMPILE)
End
Go

Se você for como eu, normalmente gosto de fazer uma análise de código antes de colocar em prática no meu ambiente, sendo assim, vamos lá. Analisando de forma superficial a Stored Procedure P_PesquisarValores a princípio não apresenta nada muito especial ou de grande complexidade em seu código, mas sim o uso de opção Recompile que justamente vai orientar o plano de execução a recompilar a  P_PesquisarValores no momento da sua execução, forçando assim que a cada execução um novo plano de execução seja criado em conjunto com uma nova análise estatística e seus demais elementos.

O próximo passo consiste na pesquisa de um dos valores armazenados na tabela TBTrace9292 através da execução e processamento da Stored Procedure P_PesquisarValores. Para este passo vamos utilizar o Bloco de Código 4 a seguir, antes de sua execução recomendo habilitar a apresentação do Plano de Execução Atual no SQL Server Management Studio através do botão Include Actual Execution Plan ou simplesmente através da tecla de atalho CTRL+M.

— Bloco de Código 4 —
— Habilitando as TraceFlags 9292 e 3604 —
DBCC TraceOn(9292,3604,-1)
Go

Dica: Utilize o comando DBCC TraceStatus WITH NO_INFOMSGS para verificar quais Trace Flags estão habilitadas em qual nível de escopo.

— Execuntando a Stored Procedure P_PesquisarValores —
Exec P_PesquisarValores 4000
Go

Pois bem, após a execução do Bloco de Código 4, o Microsoft SQL Server realizou o processamento da nossa Stored Procedure P_PesquisarValores realizando uma busca de todas as linhas de registros que possuem o valor 4.000, onde obrigatoriamente foram retornadas 1.000 linhas de registros.

Até ai nada de novo ou surpreende, o que justamente eu quero mostrar para vocês é o que o Management Studio apresenta na guia Messages após o processamento do Bloco de Código 4, conforme apresenta a Figura 1 abaixo:

Note que o cabeçalho retornado pela Trace Flag 9292 conhecido como Stats header loaded esta apresentando os objetos realmente utilizados para o processamento de nossa query, bem como, os objetos considerados úteis e necessários para criação, compilação e processamento do plano de execução envolvidos na execução, sendo eles:

  • Database: DBTrace9292;
  • Table: TBTrace9292,
  • Index: IND_TBTrace9292Valores, sendo este do tipo Nonclustered;
  • Column: Valores; e
  • EmptyTable: False, representa que a tabela possui linhas de registro.

Perfeito, perfeito, ai esta a prova que a Trace Flag 9292 nos permite identificar de forma simples, coerente e muito intuitiva todos os objetos envolvidos na execução de uma query, stored procedure ou demais elementos que permitem a criação de um plano de execução.

Desta forma, chegamos ao final de mais um post, tendo a sensação de dever cumprido, espero que você tenha gostado, como sempre o Microsoft SQL Server nos surpreende com a sua capacidade e potencialidade de recursos.


Referências

https://thomaslarock.com/2016/06/sql-server-Trace-flags/

https://pedrogalvaojunior.wordpress.com/2016/02/26/02-para-que-serve/

DBCC TRACEOFF (Transact-SQL)

DBCC TRACEON (Transact-SQL)

DBCC TRACESTATUS (Transact-SQL)

EXECUTE (Transact-SQL)

Query Hints (Transact-SQL)

Post Anteriores

https://pedrogalvaojunior.wordpress.com/2017/05/23/conhecendo-e-aplicando-o-uso-de-atualizacao-de-estatisticas-incrementais/

https://pedrogalvaojunior.wordpress.com/2017/04/13/dica-do-mes-microsoft-sql-server-identificando-as-transacoes-que-estao-utilizando-o-transact-log/

https://pedrogalvaojunior.wordpress.com/2017/03/01/dica-do-mes-microsoft-sql-server-2016-sp1-novo-argumento-use-hint-disponivel-para-query-hints/

https://pedrogalvaojunior.wordpress.com/2017/01/16/dica-do-mes-conhecendo-a-nova-dmf-sys-dm_exec_input_buffer-no-microsoft-sql-server-2016/

https://pedrogalvaojunior.wordpress.com/2016/11/28/dica-do-mes-sql-server-2016-sp1-comando-create-or-alter/

https://pedrogalvaojunior.wordpress.com/2016/10/24/dica-do-mes-sql-server-2016-obtendo-informacoes-sobre-o-cache-de-execucao-de-funcoes/

Conclusão

Muitas vezes temos dificuldade em entender como um determinado recurso ou funcionalidade esta sendo utilizada pelo Microsoft SQL Server, com também, de que maneira este elemento poderá impactar nosso ambiente.

Neste post foi possível apresentar como a Trace Flag 9292 nos permite identificar quais objetos estão sendo utilizando durante o processamento e execução de uma determinada query. Um recurso de fácil configuração tanto para ser ativado como também desativado a qualquer momento ou necessidade.

Recomendo que você realize diversos testes e validações antes de fazer qualquer tipo de uso de uma trace flag em seu ambiente de produção, isso também se aplica a Trace Flag 9292.

Agradecimentos

Mais uma vez obrigado por sua visita, agradeço sua atenção, fique a vontade para enviar suas críticas, sugestões, observações e comentários.

Um forte abraço, nos encontramos em breve com mais um post da sessão Dica do Mês.

Valeu….

Lançado: Preview público para SQL Server 2017 e pacote de gerenciamento de replicação (CTP4)


Microsoft anuncia o SQL Server 2017 Management Pack CTP4 bits com novas funcionalidades na versão (6.7.60.0).

Faça o download do preview público em:

Pacote de gerenciamento do Microsoft System Center (comunidade técnica Preview 4) para o SQL Server 2017

Pacote de gerenciamento do Microsoft System Center (Community Technology Preview 4) para replicação do SQL Server 2017

Novos recursos e correções para o SQL Server 2017 Windows e Linux MP (6.7.60.0)

  • Implementado sempre na monitorização em Windows e Linux
  • Fluxos de trabalho implementados de latência de disco
  • Adicionado nova “Falha no logon” alerta regra para evento SQL Server #18456
  • Adicionado suporte para as credenciais do AD no modo sem agente no Windows
  • Adicionado relatório de previsão de espaço DB
  • Corrigido problema: informação de localização de arquivo diferente do “sys. master_files” e “sysfiles” causa erro quando arquivos do grupo de disponibilidade de banco de dados secundário estão em caminho diferente
  • Corrigido problema: fluxos de trabalho não podem se conectar a uma instância quando apenas o protocolo de memória compartilhada está habilitado
  • Introduziu uma série de melhorias para o pacote de gerenciamento

Novos recursos e correções para janelas de replicação SQL Server 2017 MP (6.7.60.0)

  • Adicionado um número de monitores e regras de desempenho para criar o mesmo modelo de saúde, tal como apresentado no MPs de replicação do SQL Server 2008-2016
  • Melhorada e refatorado gestão pacote de módulos
  • Corrigido uma série de questões
Recurso/Workflow CTP1 (6.7.18.0) CTP2 (6.7.40.0) CTP3 (6.7.55.0) CTP4 (6.7.60.0)
Objetos de núcleo
Descoberta do mecanismo de DB W/L W/L W/L W/L
Descoberta de motor local DB (característica única do windows) Em Em Em
Instâncias de Cluster do SQL Em Em Em Em
A descoberta de DB W/L W/L W/L W/L
Descoberta de grupo de arquivos DB W/L W/L W/L W/L
Detecção de arquivos DB W/L W/L W/L W/L
Arquivo de Log DB descoberta W/L W/L W/L W/L
Descoberta de política DB W/L W/L W/L
Descoberta de grupo de arquivos FILESTREAM Em Em Em
Descoberta de grupo de arquivos de dados otimizados para memória W/L W/L W/L
Dados de memória otimizado de arquivos recipientes descoberta W/L W/L W/L
Pool de recursos de motor DB descoberta W/L W/L
Descoberta do agente SQL W/L W/L
Sempre na descoberta Em W/L
Características
Monitoramento sem agente W/L W/L W/L W/L
Misto de acompanhamento (característica única do windows) Em Em Em Em
Agente de monitoramento (característica única do windows) Em Em Em Em
Credenciais do SQL W/L W/L W/L W/L
Credenciais do AD Em Em Em Em
Suporte OLTP na memória W/L W/L W/L
Suporte a SQL Server Express Em Em Em Em
Módulo de MSSQL LogReader W/L W/L W/L
Suporta nomes longos (característica única do windows) Em Em Em Em
Assistente de multithreading W/L W/L W/L
Execução de tarefas W/L W/L
Suporte de estivador L L
Cenários de monitoramento
Estado de saúde de motor DB monitoramento W/L W/L W/L W/L
Monitoramento de desempenho de motor do DB W/L W/L W/L W/L
Serviço de mecanismo de DB pacote de monitoramento de conformidade W/L W/L W/L
Monitoramento de configuração DB W/L W/L W/L W/L
Desempenho de grupo de arquivos otimizado para memória de dados DB monitoramento W W W
Métricas de monitoramento da CPU e desempenho W W W
Envio de monitoramento de logs W W W
Monitoramento da integridade do WMI W/NA W/NA W/NA
Base do evento monitoramento (400 + regras de alerta) W/L W/L W/L
Coleta de métricas DB espaço monitoramento e desempenho W W W W
Coleta de métricas DB espaço monitoramento e desempenho para objetos Filestream W W W
Coleta de métricas DB espaço monitoramento e desempenho para objetos ἑκατόν W W W
Serviço iniciador Daemon de filtro de texto completo SQL monitoramento W W W
Monitoramento do SQL Agent W/L W/L
Sempre a monitorização W W/L

Gend Le

Concluído

W – suportado em Windows

L – suportado no Linux

W/L – com suporte em Windows e Linux

W/NA – com suporte no Windows, mas não aplicável para Linux

Todos os detalhes sobre a nova funcionalidade podem ser encontrados no guia de operações do que pode ser baixado junto com o pacote de gerenciamento. Funcionalidade completa estará disponível com o SQL Server 2017 GA. Esta versão CTP cobre apenas um subconjunto de regras e monitores. Vamos trabalhar no sentido de funcionalidade completa como nós liberamos novos CTPs.

Fontes e Direitos Autorais: SQL Server Release Services – SourabhAgarwal.
https://blogs.msdn.microsoft.com/sqlreleaseservices/released-public-preview-for-sql-server-2017-and-replication-management-pack-ctp4/

Microsoft anuncia o SQL Server 2012 Service Pack 4


A Microsoft anunciou no blog SQL Server Release Services que está planejando lançar o SQL Server 2012 Service Pack 4 ainda este ano.

O Service Pack 3 (ou SP3) foi lançado em novembro de 2015 e trouxe novidades como:

• Aprimoramentos de escalabilidade e desempenho para o mecanismo de armazenamento.

• Melhorias no desempenho da verificação de consistência.

• Dicas de consulta para fornecer controle granular enquanto estiver usando o Resource Governor.

• Adicionais recursos por meio de melhorias na DMV, Extended Events e planos de consulta de monitoramento.

• Melhorias no desempenho ao abrir e ler arquivos XEL usando leitor XEvent Linq.

Microsoft anuncia o SQL Server 2012 Service Pack 4

SQL Server 2012 Service Pack 4

De acordo com a Microsoft, o SQL Server 2012 Service Pack 4 será o último Service Pack para a versão 2012 do SQL Server e além de ser uma coleção de hotfixes, ele também trará mais de 20 melhorias com foco na performance, escalabilidade e diagnóstico com base no feedback de clientes e da comunidade.

Mais especificamente, o Service Pack 4 incluirá:

– Todas as correções e atualizações cumulativas para o SQL Server 2012.

– Melhorias na performance e escalabilidade.

– Recursos de monitoramento adicionais através de melhorias no DMV, Extended Events e Query Plans.

– Melhorias com base no feedback da comunidade.

– Melhorias introduzidas originalmente pelo SQL Server 2014 SP2 e SQL Server 2016 SP1.

A Microsoft confirmou que o SQL Server 2012 Service Pack 4 será lançado em setembro deste ano e um anúncio com mais informações sobre a atualização será publicado na época do lançamento.

Fontes e Direitos Autorais: SQL Server Release Services – SourabhAgarwal https://blogs.msdn.microsoft.com/sqlreleaseservices/announcing-sql-server-2012-service-pack-4/

#15 – Para que serve


Bom dia, bom dia, bom dia!

Oi gente, tudo bem? Você que esta acessando mais um post do meu blog, pode estar se perguntando. Cara como pode um pessoa ás 6:30hrs de uma quarta – feira esta acordado escrevendo mais um post.

A resposta será bem simples, isso se chama profissionalismo e respeito aos seus compromissos, e escrever algo para o meu blog é mais que um compromisso é um grande prazer, por isso estou aqui ás 6:32hrs da manhã terminando este parágrafo (kkkkk).

Dando continuidade, este é o novo post da sessão Para que serve, sendo o post de número 15, muito bom, lentamente esta sessão esta ganhando corpo e força com os meus seguidores.

Nos últimos dias pesquisei novidades, recursos, comandos, enfim algo que poderia trazer para vocês hoje e sinceramente falando tive bastante dificuldade para encontrar algum conteúdo que fosse ao mesmo tempo interessante porém simples, e por incrível que pareça acabei me lembrando de algo lançado já faz um tempinho na versão 2014 do Microsoft SQL Server.

Poxa vida, versão 2014 do SQL Server sendo que já estamos na versão 2017 prestes a ser lançada, então não sempre algo que foi lançado a algum tempo pode ser considerado novo muito menos totalmente conhecido, sempre temos alguma coisa nova para conhecer, aprender e descobrir com produtos e suas versões mais antigas e foi justamente pensando nisso que estou trabalhando no conteúdo para este post.

Seguindo como a costumeira apresentação, vou destacar neste post um dos recursos mais importantes adicionados ao SQL Server a partir da versão 2014 conhecido como Native Backup Encryption ou Backup Nativo Encriptado, talvez você nunca tenha ouvido falar sobre ele ou não tenha até o presente momento a necessidade de usar, mas tenha a certeza um é um recurso de fácil utilização.

Então chegou a hora de conhecer um pouco mais sobre esta funcionalidade, sua forma de uso, características, importância, limitações, entre outros.

Desta forma, seja bem vindo ao #15 – Para que serve – Native Backup Encryption.

Introdução

Quando pensamos nas possibilidades de perda de dados ou informações, normalmente um dos recursos mais conhecidos e utilizados por todos é o bom e velho backup, capacidade que ao longo dos anos também evoluiu muito e hoje pode ser feito de maneira muito simples, tanto para um pen-drive como diretamente para um repositório disponibilidade de maneira on-line não tão falada e prosperada Cloud Computing.

Mas se fazer o backup é algo simples, imagine então o processo de restauração deste conteúdo que também se torna cada vez mais ágil, rápida e fácil. Você já pensou nisso? Não adianta fazer o backup e pensar “estou seguro, fiz o backup do meu banco de dados, quando eu precisar basta restaurar”, parece ser algo que nunca vai acontecer, mas não é o que atualmente estamos vendo.

Pensando neste sentido seu eu que pergunto: “E se por acaso o seu backup foi roubado, sequestrado, enfim alguém mal intencionado acabou se apoderando dos seus dados?” Isso parece ser bastante assustador e perigoso, foi justamente pensando nisso que a partir da versão CTP2 do Microsoft SQL Server 2014, o time de engenheiros, desenvolvedores e especialistas da Microsoft decidiram adicionar de forma nativa a capacidade de criarmos backups diretamente em uma instância ou servidor SQL Server fazendo uso de criptografia de dados através dos já conhecidos algoritmos, por mais simples que isso possa parecer até a versão 2012 do Microsoft SQL Server não tínhamos esta funcionalidade disponibilidade no produto de forma nativa e totalmente suportada para nossos bancos de dados, tínhamos a necessidade de utilizar ferramentas de terceiros para aplicar este tipo de recurso.

Native Backup Encryption

Através desta nova funcionalidade ao executar um procedimento ou rotina de backup de banco de dados, o Microsoft SQL Server sabendo da escolha deste recurso além de criar um arquivo contendo todo conteúdo estabelecido para o banco de dados selecionado, também realizará para o mesmo arquivo que esta sendo criado a aplicação de uma camada de criptografia de dados, onde de uma maneira direta o conteúdo armazenado neste arquivo de backup estará totalmente criptografado.

Dentre as principais características existentes para esta funcionalidade, para que esta capacidade de adicionar uma camada de criptografia diretamente para todo o backup, torna-se necessário o uso de alguns recursos adicionais em nosso banco de dados para que seja possível criarmos backups criptografados, estou me referindo ao uso de certificados e chaves assimétricas em conjunto com os algoritmos suportados pelo SQL Server sendo eles:

  • AES 128;
  • AES 192;
  • AES 256; e 
  • Triple DES.

Utilizando o Native Backup Encryption

Como já destacado anteriormente, antes de criarmos um backup criptografado de nosso banco de dados, temos a necessidade de criamos um certificado de segurança para garantir que todo conteúdo existente esta sendo validado e possui um mecanismo de segurança.

Para começarmos, vamos realizar o primeiro passo que consiste na criação do nosso Banco de Dados chamado NativeBackupEncryption, em seguida criaremos nossa chave assimétrica e na sequência o certificado denominado CertNativeBackupEncryption. Vale ressaltar, que tanto o certificado como também a chave assimétrica serão obrigatoriamente armazenadas na banco de dados de sistema Master. Para isso utilizaremos o Bloco de Código 1 apresentado a seguir:

— Bloco de Código 1 —
Create Database NativeBackupEncryption
Go

Use Master
Go

Create Master Key Encryption By Password = ‘Backup@@01’
Go

Create Certificate CertNativeBackupEncryption
With Subject = ‘Certificado para Criptografia de Backup’;
Go

Perfeito o primeiro passo já foi realizado e podemos observar nas árvores de recursos do nosso banco de dados que tanto o certificado como principalmente a chave assimétrica estão criadas, conforme ilustra a Figura 1 apresentada abaixo:

Figura 1 – Certificado CertNativeBackupEncryption criado.

Nosso segundo passo também é um dos mais importantes, para conseguirmos aplicar a criptografia em nosso backup de dados, consiste basicamente no procedimento de backup da nossa chave assimétrica em conjunto com o backup do certificado CertNativeBackupEncryption, para que posteriormente seja possível realizar o backup criptografado.

Vale ressaltar que se este procedimento não venha a ser realizado o Microsoft SQL Server durante o processo de Backup Database emitirá um alerta informando a necessidade que este procedimento venha a ser realizado.

Vamos então executar o segundo passo através do Bloco de Código 2 apresentado na sequência:

— Bloco de Código 2 —

Backup Certificate CertNativeBackupEncryption
To File = ‘S:\MSSQL-2016\Backup\Backup-Certificate-CertNativeBackupEncryption.cert’
With Private Key
(
File = ‘S:\MSSQL-2016\Backup\Backup-Master-Key-File.key’,
Encryption By Password = ‘Backup@@01’
)
Go

Legal, legal, conseguimos realizar o backup da nosso Certificado e também do nossa Chave Assimétrica, observe que no procedimento de backup do certificado estamos informando o uso do nossa chave assimétrica na instrução With Private Key, passando como parâmetros os mesmos valores informados para o backup da chave.

A Figura 2 ilustra o local de armazenamento dos arquivos gerados após o backup da chave assimétrica e do certificado:

Figura 2 – Arquivos de backup da chave e certificados criados e armazenados.

Importante: Por questões de facilidade os arquivos de backup foram criados no mesmo local, mas pensando em segurança e boas práticas é altamente recomendável que cada arquivo de backup seja criado e armazenado em locais distintos por questões óbvias de segurança.

Agora que os backups de chave assimétrica e certificados foram realizados, vamos executar nosso último passo que consiste justamente na realização do Backup do nosso banco de dados NativeBackupEncryption aplicando as técnicas de compressão de dados para economia de espaço em disco e principalmente o uso da opção Encrytpion que nos permite escolher o algoritmo de criptografia e qual certificado a nível de servidor vamos utilizar, sendo assim, podemos executar o Bloco de Código 3 apresentado a seguir:

— Bloco de Código 3 —
Backup Database NativeBackupEncryption
To Disk = ‘S:\MSSQL-2016\Backup\Backup-NativeBackupEncryption.Bak’
With Compression,
Encryption
(Algorithm = AES_256,
Server Certificate = CertNativeBackupEncryption)
Go

Muito bem, como todo procedimento de backup, ao final da execução do comando Backup Database o Management Studio apresenta aquele tradicional conjunto de informações relacionadas ao nosso backup, algo que também não é diferente quando fazendo uso de um backup criptografado. A Figura 3 apresentado o arquivo de backup Backup-NativeBackupEncryption.Bak criado e armazenado após a conclusão da execução do comando Backup Database:

Figura 3 – Arquivo NativeBackupEncryption.Bak criado e armazenado em disco.

Estamos quase no final, continuando mais um pouco, vamos garantir e comprovar que realmente nosso backup foi criptografado. Você pode estar querendo ter a certeza que nosso backup esta criptografado, para realizarmos as conhecida prova dos nove, vamos fazer uso do tradicional comando Restore HeaderOnly, através do Bloco de Código 4 declarado abaixo:

— Bloco de Código 4 —

Restore HeaderOnly
From Disk = ‘S:\MSSQL-2016\Backup\Backup-NativeBackupEncryption.Bak’
Go

Para ilustrar o resultado obtido apos a execução do bloco de código 4, podemos observar os valores apresentados nas colunas: KeyAlgorithm, EncryptorThumbprint e EncryptorType, conforme apresenta a Figura 4.

Figura 4 – Informações referentes ao uso da criptografia no arquivo de backup.

Note que estão sendo apresentados para as respectivas colunas o algoritmo que utilizamos no procedimento de backup e seus respectivos encryptors, mecanismos utilizados para aplicar a criptografia.

Sensacional, conseguimos criar um backup com criptografia de seu conteúdo de forma nativa, sem ter a necessidade de utilizar ferramentas ou recursos de terceiros, fazendo uso total das funcionalidades e características existentes no Microsoft SQL Server. Mesmo assim, alguns pontos importantes devem ser destacados antes de concluirmos mais um post, a seguir destaco os benefícios e limitações do Native Backup Encryption.

Benefícios

  1. O uso deste tipo de recurso com certeza poderá trazer aos organizações e profissionais de banco de dados um grande benefício no que se relacionada as questões de segurança e armazenamento de dados após o processo de backup.
  2. Caso você esteja utilizando atualmente uma ferramenta de terceiros para backups criptografados, você pode comparar essa ferramenta com a funcionalidade e o desempenho de backups criptografados nativos e ver se isso preenche sua exigência.

Limitações

  1. O Native Backup Encryption não esta disponível nas edições Express e Web do Microsoft SQL Server.
  2. O processo de appending capacidade de abrir um arquivo de backup já existente e adicionar o novo conteúdo ao seu final não é suportado para backups criptografados.

Referências

https://blogs.technet.microsoft.com/dataplatforminsider/2013/10/17/sql-server-2014-ctp-2-now-available/

https://www.pythian.com/blog/sql-server-2014-ctp-2-native-backup-encryption/

https://docs.microsoft.com/en-us/sql/t-sql/statements/backup-transact-sql

https://docs.microsoft.com/en-us/sql/t-sql/statements/restore-statements-transact-sql

https://docs.microsoft.com/en-us/sql/t-sql/statements/create-certificate-transact-sql

https://docs.microsoft.com/en-us/sql/t-sql/statements/restore-statements-headeronly-transact-sql

Links

Caso você ainda não tenha acessado os posts anteriores desta sessão, fique tranquilo é fácil e rápido, basta selecionar um dos links apresentados a seguir:

https://pedrogalvaojunior.wordpress.com/2017/04/30/14-para-que-serve/

https://pedrogalvaojunior.wordpress.com/2017/03/25/13-para-que-serve/

https://pedrogalvaojunior.wordpress.com/2017/01/23/12-para-que-serve/

Conclusão

Durante muito tempo este foi um dos recursos mais esperados e aguardos pelos profissionais do Microsoft SQL Server, principalmente pela necessidade até então da aquisição de ferramentas de terceiros, o que gerava custos, bem como, para realizar um procedimento simples trabalhar com dois produtos distintos ao mesmo tempo, o que para alguns pode parecer dificultoso.

Neste post fizemos uso do algoritmo AES_256 considerado por muitos profissionais um dos mais seguros, mas vale a pena fazer uso e comparação dos demais para justamente identificar suas diferenças de comportamento ainda mais se levarmos em consideração diferenças no tempo de execução de um backup criptografado com outro algoritmo.

Mas esse desafio e análise vou deixar para você!!!

Agradecimentos

Antes de finalizar, são 8:54hrs da manhã, estou terminando o post, mas com um lindo dia me esperando para estudar e trabalhar, faça você isso também aproveite a sua vida, pois ela passa muito rápido.

Espero que este conteúdo possa lhe ajudar e ser útil em suas atividades profissionais e acadêmicas.

Um forte abraço, até o próximo post da sessão Para que serve…..

Valeu.

Short Scripts – Junho 2017


Boa noite galera, olá comunidade de banco de dados.

Tudo bem? Graças a deus mais um final de semana se aproximando, finalzinho de noite de quinta – feira, acredito que neste momento minha linda esposa esta curtindo mais um episódio de uma das suas séries favoritas, ou lendo mais um dos seus intermináveis livros (kkkkkk), isso não é um crítica, muito ao contrário, a leitura faz bem para a alma e principalmente para a mente, mas posso dizer que minha pequena Fernanda é uma degustadora insaciável de livros.

Mudando de assunto, este é o segundo post deste ano dedicado exclusivamente a sessão Short Scripts, sessão criada a alguns anos que  esta atraindo um número interessante de visitantes, principalmente de profissionais da área de banco de dados na busca por exemplos de códigos que possam solucionar ou elucidar na resolução de um determinado problema.

O post de hoje

Para este post, selecionei como de costume os principais scripts armazenados recentemente na minha biblioteca de códigos, que apresentam os seguintes assuntos:

  • Check Constraint;
  • Common Table Expression;
  • Índices;
  • Information_schema.columns;
  • Monitoramento de Processos;
  • Network Protocol;
  • Operador Outer Apply;
  • Requisição de Disco;
  • Sys.dm_server_registry;
  • Sys.dm_tcp_listener_states;
  • sys.dm_exec_query_plan;
  • sys.dm_exec_sql_text;
  • sys.dm_exec_query_stats;
  • sys.types;
  • sys.tables;
  • sys.dm_db_index_usage_stats;
  • Sys.Identity_Columns; e
  • User Defined Function.

Então mãos no teclado, a seguir apresento os códigos e exemplos selecionados para o Short Script – Junho 2017. Vale ressaltar que todos os scripts publicados nesta sessão são devidamente testados, mas isso não significa que você pode fazer uso dos mesmo em seu ambiente de produção, vale sim todo cuidado possível para evitar maiores problemas.

Fique a vontade para compartilhar, comentar e melhorar cada um destes códigos.

Short Scripts

— Short Script 1  – Utilizando Check Constraint para cálculo de datas —

Create Table Alunos
(Codigo Int)
Go

— Adicionando a coluna e constraint —
Alter Table Alunos
Add DataNascimento DateTime
Constraint CK_Alunos_DataNascimento Check (DateDiff(Year,DataNascimento, GetDate()) >=18)
Go

— Adicionando somente a constraint —
Alter Table Alunos
Add Constraint CK_Alunos_DataNascimento
Check (DateDiff(Year,DataNascimento, GetDate()) >=18)
Go

— Default – Estado —
Alter Table Alunos
Add Constraint [DF_Estado] Default ‘SP’ for Estado
Go

— Short Script 2  – Aplicando o uso de Common Table Expression para inserir registros com valores de um registro anterior —

DECLARE @Metas TABLE ( Data DATE, Meta INT );

INSERT INTO @Metas
( Data, Meta )
VALUES ( DATEFROMPARTS(2017, 03, 29), 50 ),
( DATEFROMPARTS(2017, 04, 11), 35 ),
( DATEFROMPARTS(2017, 04, 13), 50 );

DECLARE @Producao TABLE
(
Data DATE ,
Quantidade INT
);

INSERT INTO @Producao
( Data, Quantidade )
VALUES ( DATEFROMPARTS(2017, 04, 10), 49 ),
( DATEFROMPARTS(2017, 04, 11), 35 ),
( DATEFROMPARTS(2017, 04, 12), 36 ),
( DATEFROMPARTS(2017, 04, 13), 50 ),
( DATEFROMPARTS(2017, 04, 14), 50 );

WITH DadosProduzidos
AS ( SELECT P.Data ,
Quantidade = SUM(P.Quantidade)
FROM @Producao AS P
GROUP BY P.Data
)
SELECT D.Data ,
[Produzido] = D.Quantidade ,
Meta = ( SELECT TOP 1 M.Meta
FROM @Metas AS M
WHERE M.Data <= D.Data
ORDER BY M.Data DESC
)
FROM DadosProduzidos D;

— Short Script 3  – Identificando a relação de todos os índices existentes em um banco de dados —

SELECT DB_NAME(Database_ID) DBName,
SCHEMA_NAME(schema_id) AS SchemaName,
OBJECT_NAME(ius.OBJECT_ID) ObjName,
i.type_desc,
i.name,
user_seeks,
user_scans,
user_lookups,
user_updates
FROM sys.dm_db_index_usage_stats ius INNER JOIN sys.indexes i
ON i.index_id = ius.index_id
AND ius.OBJECT_ID = i.OBJECT_ID
INNER JOIN sys.tables t
ON t.OBJECT_ID = i.OBJECT_ID
GO

— Short Script 4 – Obtendo informações de network protocols e device através da sys.dm_server_registry —

SELECT MAX(CONVERT(VARCHAR(15),value_data)) As ‘Default Port’ FROM sys.dm_server_registry
WHERE registry_key LIKE ‘%MSSQLServer\SuperSocketNetLib\Tcp\%’
AND value_name LIKE N’%TcpPort%’
AND CONVERT(float,value_data) > 0
Go

SELECT MAX(CONVERT(VARCHAR(15),value_data)) As ‘Dynamic Port ‘ FROM sys.dm_server_registry
WHERE registry_key LIKE ‘%MSSQLServer\SuperSocketNetLib\Tcp\%’
AND value_name LIKE N’%TcpDynamicPort%’
AND CONVERT(float,value_data) > 0
Go

— Short Script 5 – Obtendo informações de network protocols e device através da sys.dm_tcp_listener_states —

SELECT port As ‘Default Port’ FROM sys.dm_tcp_listener_states
WHERE is_ipv4 = 1
AND [type] = 0
AND ip_address <> ‘127.0.0.1’
Go

— Short Script 6 – Criando uma User Defined Function com operador Outer Apply —

CREATE FUNCTION AttributesOfTable (@tableToSearch nvarchar(500))
returns table
return SELECT TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME
from information_schema.columns
where TABLE_NAME = @tableToSearch;
go

Declare @tableToSearch table (nome_tabela varchar(50));
INSERT into @tableToSearch values (‘Customer’), (‘Order’), (‘Papagaio’);

SELECT T1.nome_tabela as [nome da tabela],
T2.TABLE_SCHEMA as [nome do esquema],
T2.COLUMN_NAME as [nome da coluna]
from @tableToSearch as T1
outer apply dbo.AttributesOfTable(T1.nome_tabela) as T2;

— Short Script 7 – Utilizando a DMV sys.identity_columns para identificar o valor identity de uma determinada coluna —

SELECT sys.tables.name AS [Table Name],
sys.identity_columns.name AS [Column Name],sys.types.name as Type,
last_value AS [Last Value]
FROM sys.identity_columns
INNER JOIN sys.tables
ON sys.identity_columns.object_id = sys.tables.object_id
Inner join sys.types on sys.types.user_type_id = sys.identity_columns.user_type_id
ORDER BY last_value DESC

— Short Script 8 – Consultando informações sobre o SQL Server armazenadas no Registro do Windows —

— A. Display the SQL Server services —
SELECT registry_key, value_name, value_data
FROM sys.dm_server_registry
WHERE key_name LIKE N’%ControlSet%’
Go

— B. Display the SQL Server Agent registry key values —
SELECT registry_key, value_name, value_data
FROM sys.dm_server_registry
WHERE key_name LIKE N’%SQLAgent%’
Go

— C. Display the current version of the instance of SQL Server —
SELECT registry_key, value_name, value_data
FROM sys.dm_server_registry
WHERE value_name = N’CurrentVersion’
Go

— D. Display the parameters passed to the instance of SQL Server during startup —
SELECT registry_key, value_name, value_data
FROM sys.dm_server_registry
WHERE registry_key LIKE N’%Parameters’
Go

— E. Return network configuration information for the instance of SQL Server —
SELECT registry_key, value_name, value_data
FROM sys.dm_server_registry
WHERE keyname LIKE N’%SuperSocketNetLib%’
Go

— Short Script 9 – Identificando a relação de querys que apresentam o maior consumo de disco durante seu período de processamento – 

SELECT TOP 20 SUBSTRING(qt.text,
(qs.statement_start_offset/2)+1,
((CASE
qs.statement_end_offset
WHEN -1 THEN DATALENGTH(qt.text)
ELSE
qs.statement_end_offset
END –
qs.statement_start_offset)/2)+1),
qs.execution_count,

qs.total_logical_reads, qs.last_logical_reads,
qs.min_logical_reads,
qs.max_logical_reads,
qs.total_elapsed_time,
qs.last_elapsed_time,
qs.min_elapsed_time,
qs.max_elapsed_time,
qs.last_execution_time,
qp.query_plan
FROM sys.dm_exec_query_stats
qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) qt
CROSS APPLY
sys.dm_exec_query_plan(qs.plan_handle) qp
WHERE qt.encrypted=0
ORDER BY
qs.total_logical_reads DESC

Legal, mais uma relação de short scripts acaba de ser compartilhada, mesmo sendo denominados short entre aspas “pequenos”, posso garantir que todos estes exemplos são de grande importância e apresentam um valor e conhecimento do mais alto nível.


Chegamos ao final de mais um Short Scripts, espero que este material possa lhe ajudar, ilustrando o uso de alguns recursos e funcionalidades do Microsoft SQL Server.

Acredito que você tenha observado que estes códigos são bastante conhecidos em meu blog, todos estão relacionados aos posts dedicados ao Microsoft SQL Server publicados no decorrer dos últimos anos.

Boa parte deste material é fruto de um trabalho dedicado exclusivamente a colaboração com a comunidade, visando sempre encontrar algo que possa ser a solução de um determinado problema, bem como, a demonstração de como se pode fazer uso de um determinado recurso.

Links

Caso você queira acessar os últimos posts desta sessão, não perca tempo acesse os links listados abaixo:

Agradecimento

Agradeço sua visita, com certeza é imenso prazer saber que você teve interesse em acessar este post.

Nos encontramos novamente no mês de setembro, para o próximo post dedicado a sessão Short Scripts.

Um grande abraço, boa noite, bom descanso.

Valeu.