Clique no banner para conhecer e adquirir o meu treinamento de Bancos de Dados no Azure

Timeout ao executar Queries via Linked Server no SQL Server

Visualizações: 4.876 views
Tempo de Leitura: 2 minutos

Olá Pessoal,
Bom dia.

Hoje venho trazer mais um post rápido de um problema que encontrei enquanto tentava executar um script XMLA para processamento de Cubos Microsoft (isso ocorre com queries T-SQL também), onde a conexão atingia o tempo limite (10 minutos) e era encerrada pelo servidor com a seguinte mensagem:
A solicitação XML for Analysis expirou antes de ser concluída (The XML for Analysis request timed out before it was completed)

Minha primeira reação foi analisar as propriedades do LinkedServer para aumentar o timeout, mas os 2 parâmetros já estavam marcados como 0, ou seja, sem timeout. Correto?

LinkedServer - Timeout

Errado! Consultando o manual da Microsoft, podemos observar a seguinte definição para esses dois parâmetros:

Connection Timeout
Time-out value in seconds for connecting to a linked server.
If 0, use the sp_configure default remote query timeout Option value.

Query Timeout
Time-out value in seconds for queries against a linked server.
If 0, use the sp_configure default query wait Option value.

Ou seja, caso esses parâmetros sejam definidos como 0 (zero), o timeout das consultas via Linked Server NÃO é infinito, e sim o valor dos parâmetros que estão configurados no sp_configure, conforme o print abaixo:

LinkedServer - Timeout 2

Sendo assim, se você tiver algum problema de timeout como o que eu comentei nesse post ao executar queries pesadas via LinkedServer (para processamento de scripts XMLA são necessários), você deve alterar os parâmetros de timeout do Linked Server (ou então alterar os parâmetros equivalentes no sp_configure, mas isso poderia gerar efeitos colaterais em todos os Linked Servers que usam os valores padrão e até mesmo em queries que são executadas no banco. Não recomendo)

Aumentando esse limite para 1h:
LinkedServer - Timeout 3

Agora o cubo que eu estava tentando processar via script XMLA ao invés de processar pelo próprio Analysis Services manualmente (agora posso automatizar o processamento do mesmo via T-SQL e Job no SQL Agent) está atualizando perfeitamente!

É isso aí.
Até a próxima.