Conheça a SQL Server Table Hints

Olá Pessoal!

Recentemente concluí um artigo a respeito das Table Hints do SQL Server e novamente foi publicado no DevMedia, portal responsável pela conceituada SQL Magazine e outros conteúdos online.

O foco é no funcionamento das Table Hints, recurso que substitui o comportamento padrão do otimizador de consultas do SQL Server durante a execução das instruções de manipulação de dados.

Esse artigo está divido em 2 partes, veja abaixo.

Para ver o conteúdo da 1º parte acesse:

http://www.devmedia.com.br/conheca-a-sql-server-table-hints/32479

Para ver o conteúdo da 2º parte acesse:

http://www.devmedia.com.br/tipos-de-sql-server-table-hints/32489

Até a próxima!

SQL Server

Anúncios

Corrigindo erros de conexão após diminuir os valores da propriedade ‘Maximum Number of Concurrent Connections’ no SQL Server

Olá Pessoal!

Publiquei hoje um novo artigo na Wiki do TechNet da Microsoft e vou compartilhar com vocês.

A situação abordada no artigo corresponde a um problema que passei enquanto testava o comportamento do SQL Server após alterar as propriedades do Maximum Number of Concurrent Connections para valores baixos.

Segue o link para a Wiki do TechNet: http://social.technet.microsoft.com/wiki/pt-br/contents/articles/29489.corrigindo-erros-de-conexao-apos-diminuir-os-valores-da-propriedade-maximum-number-of-concurrent-connections-no-sql-server.aspx

Artigo publicado:

Introdução

No SQL Server existe uma propriedade ao nível de servidor chamada Maximum Number of Concurrent Connections, essa configuração especifica o número máximo de conexões de usuários concorrentes a uma instância do SQL Server. O número atual de conexões de usuários permitida depende da versão do SQL Server, assim como, os limites da aplicação ou hardware.

O valor padrão para essa propriedade é zero e normalmente esse valor não será alterado, pois significa que não existem “limites” (na verdade o valor máximo é de 32.767) para a quantidade de conexões de usuários concorrentes.

Problema

Tive o interesse de observar o comportamento da propriedade Maximum Number of Concurrent Connections com valores pequenos e acabei me deparando com uma situação inesperada ao alterar o valor configurado para 1.

print 1

Após aplicar as alterações e reiniciar o serviço do SQL Server, começaram os problemas para se conectar a instância. Consegui observar em diversas tentativas de conexão três cenários com mensagens de erro diferentes retornadas ao tentar se conectar.

O primeiro cenário o erro apresentado é o de número 233 descrevendo que não é possível estabelecer a conexão devido à falha no processo de logon. O interessante é que essa mensagem cita em um dos trechos o limite máximo de conexões permitidas como uma das possíveis causas dos problemas.

print 2

O segundo é o erro de número 64 que informa que a conexão foi estabelecida, mas também com erro no logon.

print 3

O terceiro e último também é o erro de número 64, mas dessa vez foi possível estabelecer a conexão no Object Explorer.

print 4

Apesar dessa conexão no Object Explorer, qualquer operação via interface não é possível e novos erros são retornados, como a mensagem abaixo.

print 5

Resolução

Primeiro passo a ser feito para a solução é tentar a conexão DAC (Conexão de Administrador Dedicada) pelo Management Studio, colocando a instrução ‘ADMIN:’ antes do nome da conexão. Caso seja possível abrir uma sessão, na sequência execute as instruções abaixo para resolver o problema.

sp_configure ‘show advanced options’, 1
Go
Reconfigure
Go

sp_configure ‘user connections’, 0 –ou outro valor desejado
Go
Reconfigure
Go

Nem sempre é tão simples, a solução via Management Studio pode não funcionar, como podemos ver abaixo.

print 6

Sendo assim, vamos optar por utilizar o utilitário SqlCmd para fazer a conexão.

Abra o Command Prompt e faça os seguintes passos.

1º – Execute o comando:

sqlcmd.exe -E -S nome_servidor (Ex: .\SERVER2012)

Legenda:
-E (Uso da autenticação do Windows)
-S (Nome da conexão)

2º – Após conectar com sucesso na instância, execute as instruções TSQL linha a linha:

sp_configure ‘show advanced options’, 1
Go
Reconfigure
Go

sp_configure ‘user connections’, 0 — ou outro valor desejado
Go
Reconfigure
Go

3º – Reinicie o serviço do SQL Server, tente a conexão novamente e provavelmente o problema terá sido resolvido.

print 7

Conclusão

Após passar por esse contratempo durante os testes na propriedade Maximum Number of Concurrent Connections, foi possível contornar através de umas das técnicas acima. Essa é uma propriedade avançada e normalmente apenas cenários de grande concorrência de conexões que necessitará de alteração no valor padrão. Para mais informações veja nas recomendações no site da Microsoft.

Obs: Os passos efetuados acima foram simulados em ambientes SQL Server 2014 e 2012 com sucesso.

Até a próxima!

SQL Server

SQL Server Scheduling

Olá Pessoal!

Com certeza 2014 foi um ano extraordinário em todos os sentidos e para iniciar 2015 com o pé direito, venho apresentar a minha nova publicação no site do DevMedia (Responsável pela SQL Magazine).

Dessa vez, o assunto abordado é sobre o funcionamento interno do Sistema Operacional do SQL Server, com foco em uma das suas funções principais, o Scheduling.

Segue o link para acessá-lo: http://www.devmedia.com.br/como-funciona-o-sql-server-scheduling/31972

SQL Server

Até a próxima e um bom ano novo para todos!!

Paralelismo do SQL Server com o CXPACKET

Olá Pessoal!

Hoje novamente foi ao ar um novo artigo meu pelo site do DevMedia, que é responsável pela conceituada SQL Magazine e outras revistas na área de TI.

A publicação é sobre o Paralelismo do SQL Server com o CXPACKET. Neste artigo você verá uma abordagem esclarecedora sobre o CxPacket, todas as dúvidas serão sanadas a respeito deste comum Wait Type e entenderemos o comportamento do paralelismo no ambiente SQL Server.

Segue o link para acessá-lo: Paralelismo do SQL Server com CXPACKET

SQL Server

Até a próxima!