Desempenho de gravação em disco do SQL Server

1

Esta pergunta é de um desenvolvedor, por isso pode ser um conceito simples.

Temos um sqlservers dev e prod (2000) e suspeito que os tempos de gravação em disco no servidor Prod são bastante lentos. Eu fiz os seguintes testes t-sql

Teste 1: inserções de 10k, demora 2 s no Dev, 63 s no Prod

if object_id('testD') is not null drop table testD
create table testD  (i integer)           

declare @i int
set @i=1

while @i <= 10000
begin
   insert into testD (i) values (@i)
   set @i = @i+1
end

Teste 2: exclusões de 5k, sem tempo em nenhum servidor

delete from testD where i >= 5000

Teste 3: Loop Aninhado, 2 segundos no Dev, 5 seecs no Prod

select count(A.i + B.i)
from testD A
,    testD B

Esses testes são realizados fora de horas e eu sempre obtenho os mesmos resultados. Sou desenvolvedor, então meu único acesso aos servidores é através do SQLServer. Que conclusões, se houver, podem ser tiradas desses testes e que tipo de perguntas devo fazer à seção de suporte técnico?

    
por user16176 10.08.2009 / 10:31

3 respostas

2

Que tipo de subsistemas de disco cada um dos servidores possui? Sem saber muito mais sobre os servidores e o que está acontecendo no momento em que você realizou o teste, há realmente uma maneira de saber onde está o problema.

A princípio, parece que há um problema com o subsistema de disco, mas isso pode ser enganoso.

As CPUs podem estar ocupadas executando um backup compactado. Se o disco estiver em uma SAN e usar armazenamento compartilhado com um servidor de arquivos, o servidor de arquivos poderá passar por uma operação de desfragmentação noturna. O SQL Server pode estar reconstruindo todos os índices nesse banco de dados ou em outro banco de dados no servidor e essas operações estão tomando todos os recursos de disco.

Sem mais acesso ao SQL Server, você não conseguirá descobrir qual é o problema. Relate o problema à equipe de suporte e certifique-se de que eles realmente o acompanhem. Se a sua equipe de suporte for boa, eles já devem estar cientes do problema e trabalhar nele.

    
por 10.08.2009 / 10:54
1

Quanto mais está acontecendo no servidor de produção?

Em sua caixa de desenvolvimento, você provavelmente será o único usuário ativo, portanto, obtenha todo o recurso disponível para suas consultas, mas na caixa de produção pode haver várias consultas ativas em andamento no seu banco de dados e / ou possíveis outros bancos de dados. esse servidor, portanto, há contenção para a largura de banda de E / S.

    
por 10.08.2009 / 10:43
0

Eu mencionei ter um olhar mais atento ao disco ou ao subdiretório e à fragmentação dos arquivos mdf e ldf.

Por outro lado, pode ser que a fragmentação de índice do sql-server esteja atrasando o desempenho ou as estatísticas são totalmente diferentes no fato de ter apenas algumas linhas em seu dev-db versus uma contagem de linhas muito maior na predição. db. tente transferir as estatísticas do seu prod-server para o seu dev-server para obter os mesmos planos de execução.

Por último, mas não menos importante, dê uma olhada no nível de backup (como é chamado): se estiver 'cheio', tudo vai para o log de transações (* .ldf), se for 'simples', nada é escrito no transactionlog. Então eu aposto que seu sistema de desenvolvimento está configurado com o modo simples e seu sistema prod dirige o modo completo.

Eventualmente, se você tiver um Management Studio (Query-Analyzer) no seu pc local acessando os servidores pela rede. pode ser que você tenha uma melhor banda, por exemplo 1 GBit para o seu dev-server e apenas 100MBit para o seu prod-server.

Não olhe onde está a luz, a verdade está no escuro ...

Paz

Gelo

    
por 28.10.2009 / 23:28