SQL Server 2014 Service Pack 2

Galera,

Foi liberado hoje o Service Pack 2 do SQL Server 2014.

O download já está disponível através do link abaixo.

Quem quiser pode conferir as principais alterações incluídas no Service Pack 2:

anúncio do SQL Server 2014 SP2 foi feito hoje no blog oficial do SQL Server.

Anúncios

Trabalhando com dados geográficos no SQL Server

Por mais que não seja muito comum a utilização de dados geográficos dentro do SQL Server o tipo de dados GEOGRAPHY está disponível desde a versão 2008 no SQL Server.

Para quem ainda não utilizou este recurso vou mostrar um rápido exemplo desde a criação da tabela, inserção de dados e a utilização de uma função específica para calcular a distância entre dois pontos em linha reta.

Vamos primeiramente criar a tabela.

Observem que estamos criando um campo coords do tipo GEOGRAPHY aonde irão ficar armazenadas as coordenadas propriamente ditas. O campo place será uma coluna computada utilizando a função STAsText() para retornar as coordenadas armazenadas em coords em um formato legível.


CREATE TABLE [pocGeography] (
id BIGINT IDENTITY,
name VARCHAR(1000),
coords GEOGRAPHY,
place AS coords.STAsText() );

Agora vamos para a inserção dos dados. Notem a utilização da função Point() que representa um ponto a partir das coordenadas [Latitude, Longitude] fornecidas e da função STGeomFromText() que transforma as coordenadas legíveis em um formato apto para armazenamento em um tipo de dados geográfico no SQL Server.


INSERT INTO [dbo].[pocGeography] ([name],[coords])
VALUES ('Sapiranga', geography::STGeomFromText('POINT(29.6353861 051.0069556)', 4326));
INSERT INTO [dbo].[pocGeography] ([name],[coords])
VALUES ('Porto Alegre', geography::STGeomFromText('POINT(30.0348417 051.2386778)', 4326));

Agora vamos utilizar a função STDistance() para calcular a distância entre dois pontos em linha reta.


DECLARE @src GEOGRAPHY;
DECLARE @dst GEOGRAPHY;
SET @src = (select coords from [dbo].[pocGeography] where id=2)
SET @dst = (select coords from [dbo].[pocGeography] where id=1)
--SELECT @src.STDistance(@dst)/1609.344 --Miles
SELECT @src.STDistance(@dst)/1000 --Kilometers

Resultado:

Screen Shot 2016-06-18 at 4.44.00 AM

Existem muitas outras funções, métodos e funcionalidades para trabalharmos com dados geográficos no SQL Server. Se quiserem conferir alguns métodos existentes deem uma olhada na documentação da MSDN no link abaixo:

https://msdn.microsoft.com/en-us/library/bb933802.aspx

É isso galera! Espero que tenham gostado!

Referências:

SQL Server 2016 eBook

Fala galera!

Para quem quiser dar uma olhada nas novidades e novos recursos da versão 2016 do SQL Server recomendo baixarem o eBook de introdução da versão 2016 do SQL Server disponível desde o dia 03 de Junho na sua versão final.

Baixem agora o eBook de introdução do SQL Server 2016!

Post do blog da MSDN sobre o eBook de introdução ao SQL Server 2016

Download do eBook de introdução do SQL Server 2016

SQL Server s2 Linux

Já fez a certificação para Linux? Ainda não?

Poisé. Durante o ano de 2017 veremos pela primeira vez o SQL Server em um sistema operacional Linux.

No segundo link abaixo você pode se inscrever para ficar informado sobre as novidades do SQL Server para Linux.

Anúncio do SQL Server para Linux

Página oficial do SQL Server para Linux

Screen Shot 2016-06-18 at 2.32.57 AM.png

Verificando databases com Log Shipping desativado

Já precisou conferir se todas as databases estavam com Log Shipping configurado?

Teve que entrar nas propriedades de cada database e conferir?

Então baixe o script abaixo da galeria da TechNet agora!

Download Script – Databases sem Log Shipping

O script irá retornar apenas as databases que estão com o recurso de Log Shipping desativado. Ele será ótimo se você precisar conferir se esqueceu de ativar o recurso em alguma database ou até mesmo em rotinas de verificação do ambiente.

 

Faça hoje o download do SQL Server Developer Edition!

Já faz um bom tempo (quase 3 meses), mas sempre é bom lembrar.

Pra quem não sabe desde 31 de Março deste ano a edição Developer do SQL Server é free a partir da versão 2014 para os membros do programa Visual Studio Dev Essentials.

Lembrando que a edição Developer deve ser utilizada apenas em ambientes de desenvolvimento e teste e nunca em ambientes de produção.

Não perde tempo! Baixe agora a edição Developer do SQL Server para fazer aqueles testes e laboratórios!

Post do anúncio no blog da TechNet

Link para download do SQL Server 2014 Developer Edition with Service Pack 1

Como remover um plano de execução específico do cache do SQL Server

Tudo está indo bem, o seu servidor de SQL está com baixa utilização de CPU, PLE alto, poucos índices fragmentados e as estatísticas atualizadas, quando de repente a utilização de CPU sobe para 100% e você nota que existem várias sessões de uma mesma aplicação executando a mesma consulta, que até então nunca tinha apresentado problema, demorando demais para retornar o resultado e estão bombardeando o SQL Server.

Screen Shot 2016-06-17 at 11.53.55 PM

Respire fundo. Muita calma. Há uma saída.

Primeiramente você precisa do conteúdo do campo sql_handle ou plan_handle da consulta que está com problemas para remover o seu plano de execução do cache.

Para capturar o sql_handle ou plan_handle da consulta você pode utilizar apenas uma DMV e uma DMFsys.dm_exec_query_statssys.dm_exec_sql_text. Você pode filtrar utilizando um trecho da consulta que você sabe que está com problemas e/ou até mesmo ordenar por um dos campos de total de utilização de CPU ou de tempo de duração, conforme exemplo abaixo:


SELECT TOP 10
execution_count,
total_elapsed_time / 1000 as totalDurationms,
total_worker_time / 1000 as totalCPUms,
total_logical_reads,
total_physical_reads,
t.text,
sql_handle,
plan_handle
FROM sys.dm_exec_query_stats s
CROSS APPLY sys.dm_exec_sql_text(s.sql_handle) as t
WHERE t.text LIKE '%linq%'
ORDER BY total_elapsed_time DESC

Screen Shot 2016-06-17 at 11.52.10 PM

Copie o conteúdo do campo plan_handle ou sql_handle da consulta exata que está com problemas.

Insira o conteúdo copiado dentro dos parênteses do comando DBCC FREEPROCCACHE, conforme exemplo abaixo:


DBCC FREEPROCCACHE (0x0600060020527003B0928B53CC01000001000000000000000000000000000000000000000000000000000000)

Screen Shot 2016-06-18 at 12.24.18 AM

Pronto! O plano de execução da sua consulta foi removido com sucesso do cache do SQL Server e provavelmente o seu servidor irá diminuir a alta utilização de recursos e voltar a responder normalmente. Depois deste susto procure melhorar o desempenho da sua consulta e entender o que fez com que o plano de execução tenha sofrido alteração.

Observações:

  1. Utilize este procedimento como uma solução de contorno e não como uma solução definitiva para o problema. Procure melhorar o desempenho da consulta e entender o que está fazendo com que o plano de execução sofra alteração ou tenha um desempenho ruim.
  2. Nunca utilize o comando DBCC FREEPROCCACHE sem nenhum conteúdo dentro dos parênteses, principalmente em ambientes de produção, pois isto irá remover TODOS os planos de execução do cache.

 

É isso galera! Espero que tenham gostado. Até a próxima!