Contadores de desempenho do SQL Server

Contadores de desempenho do SQL Server

Eu tenho uma instância do SQL Server 2005 que está passando por alguns momentos de lentidão. Esselinkmostra os detalhes do perfmon. Como não analiso esse tipo de dados diariamente, fiquei pensando se há algum problema real com o sistema de E/S.

O servidor está usando uma SAN e os arquivos DB e Tempdb estão na mesma unidade (E:). Não é a melhor arquitetura, mas não tenho controle sobre o servidor. O servidor é usado para executar relatórios usando Cognos, portanto, é principalmente um banco de dados somente leitura.

Obrigado

Aqui está um código divertido que precisa ser corrigido.

select "tempSalesRpt_SubRgnDist"."Region" AS "Region",
   min("tempSalesRpt_SubRgnDist"."RegionName") AS "Region_Text"
from "SalesReporting"."dbo"."tempSalesRpt_SubRgnDist" "tempSalesRpt_SubRgnDist",
        (select "SecurityMaster"."Userid" AS "Userid", "SecurityMaster"."SoldTo" AS "SoldTo"
        from "SalesReporting"."dbo"."SecurityMaster" "SecurityMaster" 
        where "SecurityMaster"."Userid" = lower ('USTGACA')) "SecurityMaster4" 
where NOT "SecurityMaster4"."Userid" is null 
    and "tempSalesRpt_SubRgnDist"."SoldTo" ="SecurityMaster4"."SoldTo" 
    group by "tempSalesRpt_SubRgnDist"."Region" 
    order by 1 asc , 2 asc

A tabela securitymaster é acessada em todas as consultas e é a tabela que aumentou recentemente.

Eu diria que este código possui código não sargável, mas o plano de execução mostra que são usadas buscas de índice e pesquisas de chave.

Vejo que alguns novos índices podem ajudar, mas preciso ir mais longe.

Responder1

Com base nos dados fornecidos, você tem algo acontecendo. Suas filas de disco são de segundos por leitura e os contadores de segundos por gravação são muito maiores do que você deseja. Agora, o problema aqui é que isso não significa que seja um problema de disco, apenas que os discos estão sendo batidos. Você pode ter um problema de indexação ou de estatística, que está fazendo com que o SQL Server atinja os discos com mais força do que o necessário.

Comece observando os índices no banco de dados e veja se algum novo índice precisa ser criado. Isso aumentará o tamanho do seu banco de dados, mas você verá uma redução no tráfego no disco e uma diminuição no tempo de execução da consulta.

Você pode começar observando os planos de execução de suas consultas de longa duração, que informarão onde você precisa adicionar índices.

Responder2

Além da resposta de Denny, você tem cerca de 5 GB de memória livre em sua caixa - você configurou a memória do SQL corretamente?

Se você tiver um sistema de 32 bits, poderá endereçar mais memória ativando AWE:

http://technet.microsoft.com/en-us/library/ms190673(SQL.90).aspx

O SQL usará essa memória extra para armazenar em cache mais tabelas/índices do banco de dados (assumindo que seu banco de dados seja maior que sua memória livre).

informação relacionada