Como definir a alocação mínima de recursos do SQL Server para um banco de dados?

2

Durante a semana passada de feriado de Natal, quando o site em que trabalhei estava com tráfego muito baixo, vimos várias exceções de Solicitação esgotada (uma em cada dia > > 12/26, 12/28, 12/29, e 12/30) em várias páginas que exigem autenticação do usuário. Raramente vimos exceções de Solicitação esgotada antes desta semana muito baixa de tráfego.

Acreditamos que os tempos limite se devam ao fato de o banco de dados que está sendo usado "girar para baixo" no SQL Server e demorar mais para acionar quando uma solicitação chegou.

Existem 2 bancos de dados no SQL Server (SQL Server 2005), um especificamente para esse aplicativo e outro para o site voltado para o público e para autenticação; Assim, no caso em que os usuários não estavam logados no aplicativo (que definitivamente poderia ter sido por várias horas de cada vez durante a semana de Natal), o banco de dados do aplicativo provavelmente não recebeu solicitações. Pensamos que, nesse ponto, o SQL Server realocou recursos para o outro banco de dados e, em seguida, quando chegou uma solicitação, foi necessário tempo extra para acelerar o banco de dados do aplicativo e ocorreu o tempo limite.

Existe uma maneira de dizer ao SQL Server para fornecer uma quantidade mínima de recursos a um banco de dados o tempo todo?

    
por Jeff Widmer 08.01.2010 / 16:30

4 respostas

1

Verifique se a propriedade "Auto-Close" do banco de dados está definida como FALSE.

Se isso estiver ativado, durante períodos de baixo tráfego, basicamente, o db fica offline. A primeira consulta tenta voltar a colocá-lo on-line, mas dependendo do tamanho, isso pode demorar um pouco.

EDIT: Se não for esse o caso, então algumas outras coisas para verificar:

  • O seu servidor SQL tenta executar verificações de vírus intensivas de IO ou algo assim durante períodos de baixa atividade? Em caso afirmativo, certifique-se de excluir suas pastas SQL.
  • Quaisquer outras partes do seu aplicativo que possam ser responsáveis aqui? Por exemplo, se você estiver usando o IIS com um aplicativo Web .Net, redefinir o pool de aplicativos forçaria as páginas a recompilarem na próxima vez em que forem chamadas.

Além disso, a única coisa em que consigo pensar (a falta de atualização para o SQL 2008 Enterprise Edition com o Resource Governer) é otimizar sua consulta para que ela tenha um desempenho ideal, mesmo quando as tabelas não estiverem armazenadas em cache.

Todas as recomendações de ajuste de desempenho normal naturalmente se aplicam, incluindo a indexação adequada (de preferência cobrindo os índices), etc.

    
por 12.10.2010 / 00:39
0

No SQL 2008, usando o Administrador de Recursos :

  • The ability to classify incoming connections and route their workloads to a specific group.
  • The ability to monitor resource usage for each workload in a group.
  • The ability to pool resources and set pool-specific limits on CPU usage and memory allocation. This prevents or minimizes the probability of run-away queries.
  • The ability to associate grouped workloads with a specific pool of resources.
  • The ability to identify and set priorities for workloads.
    
por 08.01.2010 / 17:36
0

No SSMS (Management Studio), clique com o botão direito do mouse no nome do servidor no Pesquisador de Objetos para obter as Propriedades do Servidor. Selecione Memória na seção Selecionar uma página. Lá você define a memória mínima e máxima para disponibilizar para o SQL Server. Separe o suficiente para os itens relacionados ao sistema operacional (normalmente uso 4 GB) e, em seguida, disponibilize o restante para o SQL Server. Ao girar e girar, suponho que você se refira ao armazenamento em cache (procedimento e buffer), o que pode ser um problema.

Espero que isso ajude.

    
por 08.01.2010 / 18:41
0

We believe the timeouts were due to the database that it uses being "spun down" on the SQL Server and taking longer to spin up when a request came in.

Quais diagnósticos você realizou para chegar a essa conclusão? Verifique se você está resolvendo o problema certo ao implementar uma solução.

    
por 08.01.2010 / 18:56