Dica do Mês – Identificando as Top 10 querys mais pesadas e seus respectivos planos de execução


Olá, boa tarde, salve, salve….. tudo bem?

Por um instante até pensei que estava ouvindo aquela conhecida música “Alô, alô realengo aquele abraço……”, mas não era isso não, estou cá com meus botões pensando como começar mais este post, sinceramente esta faltando muita criatividade para tentar fazer algo diferente, mesmo assim, vou tentando quem sabe um dia eu consigo.

Seguindo em frente, falando sério, seja bem vindo a mais um post do meu blog dedicado a sessão “Dica do Mês“, que alias vem recebendo nos últimos dias diversos feedback sobre os atuais posts, bem como, sugestões para novos, mais uma vez obrigado pela participação.

Como a voz do povo é a voz de deus, e se o povo esta pedindo temos que tentar agradar, vou publicar na dica deste mês, um script que eu particularmente uso muito, mas muito mesmo, principalmente quando eu escuto a seguinte frase:  “Nossa como o servidor de banco de dados esta lento….” ou esta outra “O sistema esta lento, muito lento, não consigo fazer nada…..” ao ouvir uma destas frases sinceramente eu fico louco e feliz ao mesmo tempo(kkkkk), louco por muitas vezes o usuário, desenvolvedor, gestor enfim a pessoa que falou não tem noção do que esta dizendo, e feliz porque vou mergulhar de cabeça no lado interno do SQL Server, como eu costumo dizer para meus alunos na lado sobrio e quente de  um servidor ou instância SQL Server, conhecido por muitos como SQL Server Internals.

Alias se conhecer e trabalhar com este lado do SQL Server, posso dizer que não é coisa de outro mundo mas requer muito calma, cuidado e conhecimento, principalmente no que se relaciona as camadas do Database Engine, Storage Engine, Buffer Cache, Query Processor, Query Optimizer, entre outros.

Antigamente poderíamos dizer que esta seria uma tarefa não muito amigável, algo que mudou muito nos últimos anos com a avanço das novas versões do SQL Server e principalmente pela possibilidade de contato com os maiores profissionais do mundo relacionados a banco de dados e SQL Server, dentre os quais destaco: Paul S. Randal, Kalen Delaney, Kimberly L. Tripp, sem se esquecer dos nossos brasileiros Fabricio Catae, Fabiano Amorin, Luciano Moreira, peço desculpas aos outros não citados, mas todos sabem do meu respeito e admiração.

Continuando nossa viagem, e se você que neste momento acabou de se deparar com esta mesma situação que eu relatei anteriormente, por algum motivo de uma hora para outro seu servidor de banco de dados ou até mesmo um determinado sistema começou a apresentar uma possível lentidão, nossa é uma situação bastante difícil e em muitos momento complexa para se decidir em pouco tempo ou tomar alguma possível ação.

É justamente nestes momentos que devemos tentar estabelecer uma linha de raciocínio, uma baseline para darmos início a nossa frente de combate, procurando definir uma forma de análise, mapeando os possíveis riscos e impactos, impactos que normalmente você já conhece e terá que conviver com ele até encontrar a possível causa raiz deste cenário que esta se apresentando.

Causa raiz que por diversas situações ou condições esta se apresentando em seu servidor ou instância SQL Server oriunda da execução de uma ou mais querys consideradas, as quais podem estar gerando um custo de processamento altíssimo para o Database Engine ou Storage Engine em seus componentes que a transforma em uma possível query candidata a participar da lista de querys pesadas.

Você pode estar estranhando isso, mas é exatamente desta forma que o SQL Server nos permite identificar e categorizar nossas querys, onde através de uma análise da complexidade do seu plano de execução, em conjunto com indicadores internos como:

  • Execution Count;
  • Logical Reads;
  • Logical Writes; e
  • Total Elapsed.

Podemos dizer que esta ou outra query esta presente na lista de querys impactantes ao processamento do nosso servidor, ou até mesmo dizer que é uma query pesada e precisa ser analisada e revista toda sua lógica e complexidade de execução.

Há dica de hoje, vai justamente nos ajudar a obter esta lista das top 10 querys consideradas com a maior carga de processamento e permitir apresentar seu plano de execução. E ai isso não é legal, vale a verdade não é uma grande dica que poderá lhe ajudar muito, particularmente falando eu acho uma dica fantástica.

Vamos então conhecer a dica deste mês apresentada abaixo:

— Dica do Mês – Top 10 querys mais pesadas e seus respectivos planos de execução —

SELECT TOP 10

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) As ‘Query’,

qs.execution_count As ‘Execution Count’,

qs.total_logical_reads As ‘Total Logical Reads’,

qs.last_logical_reads As ‘Last Logical Reads’,

qs.total_logical_writes As ‘Total Logical Writes’,

qs.last_logical_writes As ‘Last Logical Writes’,

qs.total_worker_time As ‘Total Worker Time’,

qs.last_worker_time As ‘Last Worker Time’,

qs.total_elapsed_time / 1000000 As ‘Total Elapsed Time in seconds’,

qs.last_elapsed_time / 1000000 As ‘Last Elapsed Time in seconds’,

qs.last_execution_time As ‘Last Execution Time’,

qp.query_plan As ‘Query Execution 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

ORDER BY qs.total_logical_reads DESC

Dicadomesabril1
Figura 1 – Resultado da execução da dica do mês.

 


 

 

Note que os indicadores listados anteriormente são justamente colunas existentes na DMV sys.dm_exec_query_stats, sendo esta uma das principais dynamic management view introduzidas no SQL Server a partir da versão 2008, que nos permite obter todos estes dados referentes ao custo, tempo e esforço de processamento realizado pelo SQL Server. Para saber mais sobre esta DMV acesse: https://msdn.microsoft.com/en-us/library/ms189741.aspx

Para que esta mágica funcione também utilizamos uma outra importante e conhecida DMV sys.dm_exec_text, que possui a finalidade de possibilitar obter exatamente a instrução processada por cada query através do handle “identificador” contido na coluna sql_handle, como também, e o plano de execução desta mesma query com base no seu “identificador” armazenado na coluna plan_handle. Sendo esta dmv um élo de ligação entre a sys.dm_exec_query_stats e a sys.dm_exec_query_plan. Para saber mais sobre esta DMV acesse: https://msdn.microsoft.com/en-us/library/ms181929.aspx

Além disso, outro fator muito importante esta relacionado a capacidade de apresentar de forma gráfica o plano de execução pertencente a cada query, fazendo uso da DMV sys.dm_exec_query_plan, outra fundamental e excencial capacidade adicionada ao SQL Server 2008. Para saber mais sobre esta DMV acesse: https://msdn.microsoft.com/en-us/library/ms189747.aspx

 


Muito bem, chegamos ao final de mais uma dica do mês, tenho a certeza que você gostou deste post, mais uma vez agradeço sua visita, comentários, sugestões, enfim sua participação e interesse.

Caso você ainda não tenha acessado os posts anteriores desta sessão, não se preocupe utilize os links listados abaixo e bom divertimento:

Um grande, meu muito obrigado, nos encontramos no próximo mês com mais uma dica do mês.

Até lá.

Material de Apoio – Abril – 2016


Boa noite, boa noite, boa noite!!!!

Véspera de férias e aqui estamos nós se preparando para alguns dias de descanso e também não deixando de compartilhar com a comunidade um pouco mais sobre o Microsoft SQL Server seus segredos e mistérios. Alias esta ai um ótimo nome para um possível nova sessão que estou pensando em lançar no meu blog, sendo se esquecer é claro das atuais.

Falando de sessões atuais, hoje estou retornando com mais um post relacionado a minha biblioteca de scritps e códigos voltados para o SQL Server, como você já percebeu estou me referindo a sessão Material de Apoio que este ano ainda não recebeu uma merecida atenção, tendo seu último post publicado em Janeiro.

Caso você queira acessar este último post, utilize o link apresentado abaixo:
https://pedrogalvaojunior.wordpress.com/2016/01/18/material-de-apoio-janeiro-2016/

Neste post vou ser um pouco mais generoso e disponibilizar uma relação mais extensa e diversificada de arquivos, destaco alguns dos assuntos relacionados aos scripts de hoje:

  • BulkInsert com arquivos de formato .fmt;
  • Criptografia;
  • Controle Automática de Very Large Files;
  • Constrainst e Common Table Expressions;
  • Dynamic Management View – Sys.dm_os_memory_clerks;
  • Extended Stored Procedure – XP_FixedDrives;
  • Informações sobre Page Life Expectancy;
  • Informações sobre licença do uso do SQL Server
  • Funções – DateDiff, Convert, SubString;
  • System Stored Procedure – SP_FixedDrives;
  • Stored Procedure Não Documentada – SP_MSForEachDB; entre outros.

Como de costume gosto sempre de destacar que todos estes arquivos são fruto do meu trabalho realizado como DBA desde 2000 e principalmente da pesquisa e coleta de informações através da internet, onde grande parte do conhecimento aqui compartilhado também obtido através da dedicação e colaboração de seus autores grande profissionais nacionais e internacionais que atuam como profissionais reconhecidos e especialistas nas áreas de:

  • Modelagem de Dados;
  • Engenharia de Banco de Dados;
  • Engenharia de Softwares e Processos;
  • Banco de Dados;
  • Servidores;
  • Alta Disponibilidade;
  • Desenvolvimento;
  • Migração e Contingência de Dados.

Obseravação: Toda e qualquer informação, código, exemplo e lógica utilizada nestes scripts foi aplicada em um determinado cenário, situação ou necessidade, o que em muitos casos talvez não se aplica a sua necessidade mas pode ser útil como material de consulta ou aprendizado.

Além disso, todos os arquivos estão renomeados tendo ao final do seu nome a extensão .doc como forma de compatibilidade com a plataforma do WordPress.com, vale sempre ressaltar que após o seu download será necessário remover esta extensão mantendo a extensão .sql padrão para arquivos do script do SQL Server.

A seguir a relação de scripts:

1 – Exemplo – Avançado – Utilizando – Stored Procedure – sp_fixeddrives.sql

2 – Exemplo – Básico – Utilizando a Extended Procedure – XP_fixeddrives.sql

3 – Exemplo – Intermediário – BulkInsert com arquivo de formato.fmt.sql

4 – Exemplo – Obtendo informações – Utilizando sys.dm_os_memory_clerks.sql

5 – Exemplo – Obtendo informações – Page Life Expectancy.sql

6 – Exemplo – Informações – Server Memory.sql

7 – Exemplo – Intermediário – Cuidados – DATEDIFF, CONVERT, SUBSTRING e funções sobre colunas na cláusula WHERE e JOINs.sql

8 – Exemplo – Avançado Controle Automático de VLFs – Passo 1 – Setup.sql

9 – Exemplo – Avançado Controle Automático de VLFs – Passo 2 – Initial Config.sql

10 – Exemplo – Avançado Controle Automático de VLFs – Passo 3 -On Demand Check.sql

11 – Exemplo – Básico – Descobrindo se o Trigger é Insert, Update ou Delete.sql

12 – Exemplo – Utilizando – CTE Composta + CTE Recursiva.sql

13 – Exemplo – Criando – Check Constraint + User Function vinculada com Check Constraint.sql

14 – Exemplo – Utilizando – SP_MSForEachDB + Use Dinâmico.sql

15 – Exemplo – Utilizando – Stored Procedure – Exibir – Código Stored Procedure Criptografada.sql

16 – Exemplo – Utilizando – Stored Procedure para Descriptografia de Stored Procedure.sql

17 – Exemplo – Obtendo o Menor e o Maior Valor – Acrescentendo Valores Intermediários.sql

18 – Exemplo – Obtendo – Quantidade de Dias – Encerramento – Licença SQL Server.sql

 

Fique a vontade para compartilhar com seus contatos, não deixe de enviar seus comentários, críticas, dicas ou sugestões.

Mais uma vez obrigado por sua visita, por seu interesse e participação.

Um ótimo feriado, bom descanso, nos encontramos me breve.

Abraços.

#03 – Para que serve


Muito bom dia, senhoras e senhores!!!!

Mas que beleza, parece até coincidência mas o último para que serve também foi publicado em uma Sexta – Feira. Talvez você pode estar se perguntando, porque estou publicando o terceiro post deste sessão no mês de Abril.

Cadê o post do mês de Março? Ai eu vou dar um veja bem e dizer que acabei não conseguindo publicar no mês passado o post que estou escrevendo hoje, peço desculpas, mas a vida tem destas e outras situações que acabam mudando nossos planos.

No para que serve de hoje, vou publicar um script que utilizo bastante nas minhas aulas de segurança de banco de dados e recentimente utilizei em uma apresentação que realizei na Fatec de São Roque para um grupo de professores Mestres e Doutores especialistas em Banco de Dados e Engenharia de Softwares.

Antes de começar a falar deste post, se você quiser acessar os outros post desta nova sessão, fique a vontade utilize um dos links abaixo:

  1. https://pedrogalvaojunior.wordpress.com/2016/02/26/02-para-que-serve/
  2. https://pedrogalvaojunior.wordpress.com/2016/01/28/01-para-que-serve/

Bom divertimento, começa aqui o #03 – Para que serve!!!

Basicamente quando falamos de segurança de banco de dados, temos sempre em mente a preocupação e perguntas que nos fazem querer obter respostas de forma rápida, precisa e confiável. Vou destacar alguma destas perguntas que normalmente queremos saber:

  • Quem esta realizando o acesso?
  • O que esta sendo acesso?
  • Quais as permissões para um determinado objeto ou banco de dados?
  • Este usuário deve realmente ter esta permissão?
  • A senha do login foi definida de forma forte?
  • Quando um determinado login tentou realizar o último acesso?
  • Este login esta digitando a senha de forma correta?
  • A política de senhas esta sendo respeitada?

Enfim estas e outras diversas ou até mesmo milhares de dúvidas e perguntas são feitas quase que todos os dias, pois queremos sempre manter nosso ambiente seguro e confiável e quando falamos nisso estamos se referindo a área da Segurança da Informação, onde encontramos a tríade CIA (Confidentiality, Integrity and Availability) — Confidencialidade, Integridade e Disponibilidade. Há junção destes quatro elementos representa os principais atributos que, atualmente, orientam a análise, o planejamento e a implementação da segurança para um determinado grupo de informações que se deseja proteger. Outros atributos importantes são a irretratabilidade e a autenticidade.

Como o SQL Server é um produto que trabalho dentro das normas e padrões de tecnologia e segurança, entendo que seja importante destacar um pouco sobre estes elementos, para tentar elucidar e esclarecer a importância de cada um deles, gostaria de compartilhar com vocês um pouco do que conheço sobre estes conceitos:

Segurança da informação – Está relacionada com proteção de um conjunto de informações, no sentido de preservar o valor que possuem para um indivíduo ou uma organização. Atualmente o conceito de Segurança da Informação está padronizado pela norma ISO/IEC 17799:2005, influenciada pelo padrão inglês (British Standard) BS 7799. A série de normas ISO/IEC 27000 foram reservadas para tratar de padrões de Segurança da Informação, incluindo a complementação ao trabalho original do padrão inglês. A ISO/IEC 27002:2005 continua sendo considerada formalmente como 17799:2005 para fins históricos.

Confiabilidade: Característica que limita o acesso a informação tão somente às entidades legítimas, ou seja, àquelas autorizadas pelo proprietário da informação.

Integridade: Permite que a informação manipulada mantenha todas as características originais estabelecidas pelo proprietário da informação, incluindo controle de mudanças e garantia do seu ciclo de vida (nascimento,manutenção e destruição).

Disponibilidade: Assegura que a informação esteja sempre disponível para o uso legítimo, ou seja, por aqueles usuários autorizados pelo proprietário da informação.

Autenticidade: Garante que a informação é proveniente da fonte anunciada e que não foi alvo de mutações ao longo de um processo.

Irretratabilidade ou não repúdio: Garante a impossibilidade de negar a autoria em relação a uma transação anteriormente feita.

Vamos em frente, já conhecemos um pouco sobre estes conceitos que se relacionam com segurança da informação e também com o SQL Server em todos os seus níveis de permissão. Você pode estar querendo entender no que isso tem relação com o para que serve de número 03, posso lhe dizer com toda certeza que se você simplesmente acessar o seu SQL Server e começar a manipular os seus objetos e dados, vai conseguir ter toda noção do quanto cada um deste itens estão interligados, ainda mais quando falamos de Logins e Senhas que justamente o que vou compartilhar como recurso do #03 Para que serve.

 


 

 

Neste terceiro post desta sessão estaremos utilzando um Script apresentado abaixo, que demonstra a capacidade do SQL Server em armazenar e retornar informações sobre nossos Logins e Passwords. Onde, provavelmente estas informações poderão responder algumas das nossas principais preocupações relacionadas ao nossos servidores e bancos de dados.

Agora é a hora de apresentar o #03 – Para que serve:

SELECT l.name,

CAST(CASE sp.[state] WHEN N’D’ THEN 1 ELSE 0 END AS bit) AS DenyWindowsLogin,

CASE WHEN N’U’ = l.type THEN 0

WHEN N’G’ = l.type THEN 1

WHEN N’S’ = l.type THEN 2

WHEN N’C’ = l.type THEN 3

WHEN N’K’ = l.type THEN 4 END AS LoginType,

CAST(CASE WHEN (sp.[state] IS NULL) THEN 0 ELSE 1 END AS bit) AS HasAccess,

CAST(sl.is_policy_checked AS bit) AS PasswordPolicyEnforced,

CAST(sl.is_expiration_checked AS bit) AS PasswordExpirationEnabled,

l.create_date AS CreateDate,

l.modify_date AS DateLastModified,

LOGINPROPERTY(l.name, N’BadPasswordCount’) AS BadPasswordCount,

LOGINPROPERTY(l.name, N’BadPasswordTime’) AS BadPasswordTime,

LOGINPROPERTY(l.name, N’DaysUntilExpiration’) AS DaysUntilExpiration,

LOGINPROPERTY(l.name, N’IsExpired’) AS IsExpired,

LOGINPROPERTY(l.name, N’IsLocked’) AS IsLocked,

LOGINPROPERTY(l.name, N’IsMustChange’) AS IsMustChange,

LOGINPROPERTY(l.name, N’LockoutTime’) AS LockoutTime,

LOGINPROPERTY(l.name, N’PasswordLastSetTime’) AS PasswordLastSetTime,

l.is_disabled AS IsDisabled

FROM sys.server_principals AS l

LEFT OUTER JOIN sys.server_permissions AS sp

ON sp.grantee_principal_id = l.principal_id

AND sp.[type] = N’COSQ’ — Connect permissions

LEFT OUTER JOIN sys.sql_logins AS sl

ON sl.principal_id = l.principal_id

LEFT OUTER JOIN sys.credentials AS c

ON c.credential_id = l.credential_id

WHERE

l.[type] IN (‘U’, ‘G’, ‘S’, ‘C’, ‘K’)

AND l.principal_id NOT BETWEEN 101 AND 255 — ##MS% certificates

AND

( sp.[state] = N’D’ — DenyWindowsLogin

OR sp.[state] IS NULL — HasAccess

OR CAST(sl.is_policy_checked AS bit) = 0

OR CAST(sl.is_expiration_checked AS bit) = 0

OR l.create_date > GETDATE()-1

OR l.modify_date > GETDATE()-1

OR l.is_disabled > 0

OR LOGINPROPERTY(l.name, N’DaysUntilExpiration’)<= 5

OR LOGINPROPERTY(l.name, N’IsExpired’) > 0

OR LOGINPROPERTY(l.name, N’IsLocked‘) > 0

OR LOGINPROPERTY(l.name, N’IsMustChange‘) > 0

OR LOGINPROPERTY(l.name, N’BadPasswordCount‘) > 2

)

Vale ressaltar que este código pode ser utilizado a partir do Microsoft SQL Server 2008 ou versões superiores.


 

 

Você vai poder observar que algumas das mais importantes DMVs e Views existentes no SQL Server estão sendo utilizadas neste script como mecanismos para consulta e obtenção de informações dos nossos Logins e Password, dentre elas destaco:

Além disso, também estamos utilizando uma função de sistema chamada LoginProperty presente deste as primeiras versões do SQL Server, sendo esta função um dos principais elementos que compõem a estrutura deste script, responsável por permitir apresentar as propriedades que cada login possui dentro de um servidor SQL Server.

 


Muito bem, é isso pessoal, chegamos ao final de mais um Para que Serve.

E ai gostou do #03 – Para que serve, eu gostei, claro sou suspeito a falar, mas torço e espero que você tenha gostado, de preferência de todo post, mas isso não for possível, quem sabe pelo menos uma parte espero que tenha chamado a sua atenção.

Com isso chegamos ao final de mais um Para que Serve, agradeço sua participação e visita ao meu blog. Não deixe de contribuir com críticas, sugestões, comentários, opiniões, enfim contribua também interagindo cada vez mais proporcionando esta troca de conhecimento.

Um grande abraço, sucesso, nos encontramos em breve.

Tchau.

 

Microsoft SQL Server 2016 RC2 Feature Pack


A Microsoft disponibilizou para download o SQL Server 2016 RC2 Feature Pack. Disponível para download aqui, ele é um conjunto de pacotes autônomos que agregam valor adicional ao SQL Server 2016 RC2 (Release Candidate 2) sem custo extra.

O novo SQL Server 2016 RC2 Feature Pack inclui as últimas versões de:

  • Ferramentas e componentes para o Microsoft SQL Server 2016 RC2.
  • Provedores complementares para o Microsoft SQL Server 2016 RC2.

Observação: Há vários arquivos disponíveis neste Feature Pack. Após clicar no botão “Baixar“ na página de download, você deverá selecionar os arquivos que precisa.

Microsoft SQL Server 2016 RC2 Feature Pack

O Feature Pack é um conjunto de pacotes autônomos que agregam valor adicional ao SQL Server 2016 RC2 (Release Candidate 2) sem custo extra.

Arquivos no SQL Server 2016 RC2 Feature Pack – 32 bits:

  • x86\AttunityOracleCdcDesigner.msi
  • x86\AttunityOracleCdcService.msi
  • x86\MasterDataServicesExcelAddin.msi
  • x86\ReportBuilder3.msi
  • x86\SapBI.msi
  • x86\SQL_AS_ADOMD.msi
  • x86\SQL_AS_AMO.msi
  • x86\SQL_AS_OLEDB.msi
  • x86\SsisAzureFeaturePack_2016_x86.msi

Arquivos no SQL Server 2016 RC2 Feature Pack – 64 bits:

  • x64\AttunityOracleCdcDesigner.msi
  • x64\AttunityOracleCdcService.msi
  • x64\MasterDataServicesExcelAddin.msi
  • x64\rsSharePoint.msi
  • x64\SapBI.msi
  • x64\spPowerPivot.msi
  • x64\spPowerPivot16.msi
  • x64\SQL_AS_ADOMD.msi
  • x64\SQL_AS_AMO.msi
  • x64\SQL_AS_OLEDB.msi
  • x64\SsisAzureFeaturePack_2016_x64.msi

Evento de lançamento do SQL Server 2016 no Brasil

A Microsoft abriu recentemente as inscrições para o evento de lançamento do SQL Server 2016, que será realizado no próximo dia 7 de abril em São Paulo.

Saiba mais sobre o evento aqui.
Fontes e Direitos Autorais: Baboo.com

Microsoft disponibiliza o SQL Server 2016 RC2


A Microsoft disponibilizou hoje para download o SQL Server 2016 RC2 (Release Candidate 2), versão de testes mais recente do novo SQL Server.

Microsoft disponibiliza o SQL Server 2016 RC2

A Microsoft disponibilizou hoje para download o SQL Server 2016 RC2 (Release Candidate 2), versão de testes mais recente do novo SQL Server

Benefícios do SQL Server 2016

• O desempenho aprimorado in-memory fornece transações 30 vezes mais rápidas, consultas 100 vezes mais rápidas do que bancos de dados relacionais baseados em disco e análises operacionais em tempo real.

• A nova tecnologia Always Encrypted ajuda a proteger seus dados parados e em movimento, no local e na nuvem, com chaves mestras no aplicativo, sem alterações no aplicativo.

• A tecnologia Stretch Database mantém mais dados históricos de seus clientes ao seu alcance ao ampliar de forma transparente seus dados OLTP quentes e frios ao Microsoft Azure de maneira segura sem alterações no aplicativo.

• Análises avançadas internas fornecem a escalabilidade e os benefícios de desempenho de criar e executar seus algoritmos de análise avançados diretamente no principal banco de dados transacional do SQL Server.

• Insights comerciais por meio de visualizações sofisticadas em dispositivos móveis com aplicativos nativos para Windows, iOS e Android.

• Simplifica o gerenciamento de dados relacionais e não relacionais ao consultar ambos com T-SQL usando o PolyBase.

• Backups híbridos mais rápidos, alta disponibilidade e cenários de recuperação de desastres para armazenar em backup e restaurar seus bancos de dados locais no Microsoft Azure e colocar secundários do SQL Server AlwaysOn no Azure.

Faça o download do SQL Server 2016 RC2

O SQL Server 2016 RC2 está disponível para download no Centro de Avaliação TechNet como um arquivo ISO e como um arquivo CAB para plataforma 64 bits nos seguintes idiomas: chinês (simplificado), chinês (tradicional), inglês, francês, alemão, italiano, japonês, coreano, português (Brasil), russo e espanhol.

LEIA
Mozilla Firefox v43.0.4

Evento de lançamento do SQL Server 2016 no Brasil

A Microsoft abriu recentemente as inscrições para o evento de lançamento do SQL Server 2016, que será realizado no próximo dia 7 de abril em São Paulo.

Saiba mais sobre o evento aqui.

Fontes e Direitos Autorais: Baboo.com

Microsoft SQL Server 2014 Developer Edition agora é gratuito


A Microsoft anunciou no SQL Server Blog que o SQL Server 2014 Developer Edition agora é gratuito para os membros do programa Visual Studio Dev Essentials.

Microsoft SQL Server 2014 Developer Edition agora é gratuito

A Microsoft anunciou no SQL Server Blog que o SQL Server 2014 Developer Edition agora é gratuito para os membros do programa Visual Studio Dev Essentials

Microsoft SQL Server 2014 Developer Edition agora é gratuito

O SQL Server 2014 Developer Edition oferece todos os recursos e funcionalidades do SQL Server 2014 Enterprise Edition e permite que você crie praticamente qualquer tipo de aplicativo com base no SQL Server.

Quando o SQL Server 2016 Developer Edition for lançado nos próximos meses, ele também será disponibilizado gratuitamente.

Importante: O SQL Server 2014 Developer Edition não inclui junto uma licença do sistema operacional Windows. Versões de avaliação do Windows e do Windows Server que podem ser utilizadas gratuitamente por 90 e 180 dias estão disponíveis no Centro de Avaliação TechNet.

Programa Visual Studio Dev Essentials

Lançado em novembro passado, o programa Visual Studio Dev Essentials permite que os desenvolvedores obtenham tudo que precisam para criação de aplicações para diferentes plataformas.

O programa oferece acesso fácil a diferentes serviços e ferramentas da Microsoft e também inclui diversos benefícios.

LEIA
FixWin para Windows 10

O programa atualmente oferece:

Ferramentas de desenvolvimento
Editores, designers e depuradores para desenvolvimento para qualquer plataforma.

Softwares
Avaliações e downloads, de sistemas operacionais a aplicativos do Office.

Serviços de nuvem
Computação, análise, celular, Web, colaboração em equipe e mais.

Treinamento e suporte
Treinamento técnico e suporte à prioridade de nível mundial.

Como parte do seu compromisso para sempre melhorar o programa Visual Studio Dev Essentials, a Microsoft anunciou no início de fevereiro dois novos benefícios para os membros registrados:

– US$ 300 em Créditos Azure: Tenha acesso a US$ 25 por mês em créditos durante 12 meses para tirar proveito dos serviços do Azure para suas aplicações.

– Acesso aos treinamentos da Xamarin University: Comece a criar aplicativos nativos para iOS, Android e Windows Phone com os treinamentos sob demanda exclusivos da Xamarin University.

Saiba mais sobre o programa Visual Studio Dev Essentials clicando aqui.

Fontes e Direitos Autorais: Baboo.com

Dica do Mês – Default Trace To Audit Events – Backup and Restore


Hello everybody!!!

Tudo bem? Final de mês chegando e o que isso significa para você?

Se fosse aquele apresentador do programa do fim de noite do domingo poderia dizer, NADA, mas no meu blog todo final de mês é sempre muito importante e aguardado, é a hora de mais um post dedicado a sessão dica do mês ser publicado, alias se você ainda não conheço ou acessou os dois primeiros posts desta nova sessão não perca seu tempo, utilize um dos links abaixo e conheça mais sobre esta na área do meu blog dedicada especialmente em apresentar como um recurso ou script pode se tornar uma dica extremamente útil:

Vamos em frente, no post de hoje vou destacar um velho e conhecido assunto existente no Microsoft SQL Server e bastante difundido a partir da versão 2005, denominado Default Trace File (Arquivo de rastreamento/monitoramento padrão) em conjunto com os Audit Events (Eventos de Auditoria) introduzidos a partir da versão 2008, ambos os recursos combinados se tornando uma fantástica ferramenta para consulta e monitoramento das atividades, tarefas e processos em execução no Microsoft SQL Server.

Como de costume, vou apresentar um pouco sobre estes recursos de forma breve e resumida, tentando ilustrar sua importância:

  • Default Trace File: Surguiu da necessidade que os profissionais de banco de dados em suas atividades monitoramento tinham em colocar dados sobre o que estava sendo executado em seu servidor ou instância SQL Server de uma maneira mais “aberta”, ou seja, diferente do que acontecia na versão 2000 onde o monitoramento era realizado de uma forma conhecida como “caixa preta”, sem possibilitar algum tipoo de interação.A partir da versão 2005 este recurso foi aprimorado, se tornando uma grande ferramenta na coleta de dados sobre o comportamento do SQL Server. Com esta evolução muitas respostas para problemas de performance, deadlock e troubleshotting começaram a ser respondidas e entendidas de forma mais rápida, fácil e dinâmica. Em diversos momentos o Default Trace File, foi considerado uma ferramenta valiosa e moderna para os profissionais de Banco de DAdos – DBA.

    Oferece uma riqueza de informações, enquanto minimamente, impactando o sistema. O Default Trace File é um recurso amplamente divulgado do SQL Server 2005, mas com o passar do tempo ganhou fama e evolução nas demais versões do produto, por oferece aos administradores a capacidade de obter informações detalhadas sobre:

    • Auditoria de eventos;
    • Eventos de banco de dados;
    • Eventos de erros;
    • Eventos de texto completo;
    • Criação do objeto;
    • Exclusão de objeto; e eventos de alteração do objeto.

 

  • Audit Events: Introduzido a partir da versão 2008, o Audit Events tornou-se uma verdadeira solução de auditoria dentro do Microsoft SQL Server, considerada por muitos um complemento aos recursos e funcionalidades desempenhadas pelo Default Trace File. Composto por um longo conjunto de eventos que a cada nova versão do SQL Server é incrementado com outros os eventos de auditoria possibilitam coletar e catalogar de maneira mais detalhada e repleta de dados todo comportamento de um servidor, banco de dados e objetos existentes em um servidor ou instância SQL Server.Outro fator importante quando falamos dos eventos de auditoria esta relacionado com os pilares de segurança do SQL Server, possibilitando todo controle e monitoramento de acesso a objetos e dados direcionados ao SQL Server, possibilitando detectar possíveis tentativas de acesso não autorizado ou acessões maliciosas por partes de usuários com acesso legítimo.

Após este breve resumo sobre estes dois recursos, você pode estar se perguntando como ou quando podemos fazer uso deste tipo de funcionalidade? A resposta é bem simples, de diversas forma, dentre elas apresento algumas:

  • Captura de eventos e ocorrência de eventos;
  • Captura da lista e detalhes de eventos;
  • Informações sobre crescimento de um banco de dados;
  • Informações sobre erros e alertas disparados pelo SQL Server;
  • Informações sobre alertadas de ordenação de dados;
  • Quando um procedimento de Shrink foi realizado em um banco de dados ou arquivo de log;
  • Quando um determinado comando DBCC foi executado;
  • Quando um Backup de Banco de Dados ou Restore de Banco de Dados foi realizado; e
  • Pesquisa de informações sobre auto estatísticas ou eventos de estatísticas.

Enfim sobre muita coisa relacionada ao SQL Server é possível fazer uso de um Default Trace File em conjunto com o Audit Events, desta maneira na dica de hoje escolhi uma das maneiras mais comuns porém não menos importante para obter informações sobre os eventos relacionados a execução de Backup Database e Restore Database através do dois exemplos apresentados a seguir:

 


 

— Exemplo 1 – Obtendo informações sobre a ocorrência de Backup Database —

Declare @path NVARCHAR(260)

Select @path=path From sys.traces Where is_default = 1

 

SELECT DatabaseName, TextData,

             Duration, StartTime,

             EndTime, SPID,

             ApplicationName, LoginName

FROM sys.fn_trace_gettable(@path, DEFAULT)

WHERE EventClass IN (115)

and EventSubClass=1

ORDER BY StartTime DESC

Go

 

 

— Exemplo 2 – Obtendo informações sobre a ocorrência de Restore Database —

Declare @path NVARCHAR(260)

Select @path=path From sys.traces Where is_default = 1

 

SELECT DatabaseName, TextData,

             Duration, StartTime,

             EndTime, SPID,

             ApplicationName, LoginName

FROM sys.fn_trace_gettable(@path, DEFAULT)

WHERE EventClass IN (115)

and EventSubClass=2

ORDER BY StartTime DESC

 

Espero que você tenha observado que ambos os códigos de exemplo são bem similares, o que determina qual conjunto de informações será apresentada de acordo com o evento é a coluna EventSubClass, onde:

  • EventSubClass = 1 — Representa as informações sobre a sub-classe de eventos relacionada a ocorrência de Backup;
  • EventSubClass = 2 — Representa as informações sobre a sub-classe de eventos relacionada a ocorrência de Restore; e
  • EventSubClass = 3 — Representa as informações sobre a sub-classe de eventos relacionada a ocorrência de Backup Log.

Caso você queira saber mais sobre os eventos de auditoria relacionadas a Backup/Restore acesse:
https://msdn.microsoft.com/en-us/library/ms175015.aspx ou https://msdn.microsoft.com/en-us/library/ms175481.aspx para obter mais sobre a classe de eventos existente no SQL Server.

sys.fn_trace_gettable e sys.traces existentes nas atuais versões do SQL Server 2012 e 2014, segundo a documentação oficial da Microsoft ambas catalog views serão removidas nas futuras versões do produto.

 


 

É isso ai galera, chegamaos ao final de mais uma dica de mês. Com certeza uma dica bastante diferente que forma como o SQL Server é composto por diversos recursos aparentemente independentes e isolados mas que podem ser utilizados em conjunto formando uma grande ferramenta de trabalho.

Espero que você tenha gostado, nos encontramos no final do mês de Abril com mais uma dica do mês.

Um grande abraço, obrigado por sua visita.

Até mais.