A contratação de um SqlServer OLTP Specialist, Que experiência ou requisitos devo procurar? [fechadas]

StackOverflow https://stackoverflow.com/questions/415419

Pergunta

Eu estou correndo em problemas de desempenho Db com um projeto OTLP eu estou trabalhando. Outro desenvolvedor e eu chegamos ao fim do nosso conhecimento desempenho acumulado e procurar um indivíduo para se juntar à equipe para nos ajudar a acelerar a nossa aplicação.

Para alguns antecedentes temos alterações de esquema feito para desnormalizar pedaços de dados, otimizado cada consulta, correu vários conselheiros de ajuste de banco de dados para obter os nossos índices apenas para a direita, as opções do servidor atento de MSSQL.

Não precisamos de alguém para vir e nos dizer se junta pode ser lento e que deadlocking é, precisamos de alguém que sabe o que fazer depois de esgotar todas as etapas listadas acima.

Alguém tem alguma dica ou experiências de contratação de OLTP DBA para mostrar? Que tipo de perguntas podemos pedir o DBA durante o processo de entrevista?

Seu uma situação estranha para ser, nós sabemos que precisamos de alguém que sabe mais do que a equipe atual, mas não sabemos o que perguntar, porque não sabemos o que os próximos passos são. Isso faz sentido?

Foi útil?

Solução

Ok, isso me diz uma coisa:

Para alguns antecedentes temos alterações de esquema feito para desnormalizar pedaços de dados, otimizado cada consulta, correu vários conselheiros de ajuste de banco de dados para obter os nossos índices apenas para a direita, as opções do servidor atento de MSSQL.

Você já correspondeu ou superou o que 90% das pessoas que se chamam DBAs será capaz de fazer.

O problema é que um monte de DBAs não são realmente programadores, eles são mais do lado da administração do sistema de coisas. Você precisa de um programador de DBA que não só é realmente bom em TSQL, mas quem sabe a sua outra linguagem de programação (s) também.

Eu gasto uma parcela significativa do meu tempo em questões de ajuste de banco de dados como este, e a solução muitas vezes envolve reformulações significativas todo o caminho desde a extremidade traseira da frente para o esquema do banco. Você não pode resolver estes problemas de forma isolada, e sem o controle completo (e compreensão total) de toda a arquitetura, você nunca vai ter o desempenho que você precisa.

Você pode ser a melhor pessoa para o trabalho, e que poderia ser mais inteligente para você contratar alguém para tomar trabalho ocupado fora de sua placa para que você possa concentrar-se nos problemas de desempenho OLTP.

Outras dicas

Você tem que ser variam cuidado aqui, você pode acabar contratando um Guru DBA, tê-lo melhorar o desempenho do banco de dados de forma significativa e ainda ter problemas com seu aplicativo que estão enraizadas em sua arquitetura.

Algumas idéias:

  1. Tome a consulta mais complexa que você otimizado dá-lo ao DBA candidato com QA e obter ele / ela para otimizá-lo novamente. Tê-los descrever o que eles fizeram e como eles fizeram isso.

  2. Certifique-se essa pessoa entende hardware, em que poderá utilizar vários grupos de arquivos, arrays RAID, particionamento de dados, 64 vs 32 bit desempenho etc ...

  3. Procure alguém que também tem algum fundo da arquitetura de software.

  4. Pergunte-lhes algumas perguntas servidor mais difícil SQL por exemplo. Qual é a declaração SOBRE? São GUIDs boas chaves primárias e por isso, é a identidade int preferível?

De-sintonizar o seu DB voltar um pouco para antes de seu próprio otimização e dar a eles. Ver se eles podem ajustá-lo para executar tão bom ou melhor em comparação com as alterações feitas.

Pergunte por que eles escolheram essa técnica.

Peça referências e descobrir mais sobre os ambientes que eles vêm a partir do qual são mais susceptíveis de corresponder ao seu próprio.

Um bom DBA será capaz de lhe dizer na entrevista a um nível elevado quais as medidas que tomaria seguinte. Você deve prestar mais atenção aos processos de pensamento aqui, ao invés da solução para o problema. Quando o DBA tem dado algumas soluções, volte e teste-los e pedir-lhes por isso que o problema deve ser resolvido nessas formas.

Este método irá distinguir rapidamente os homens dos meninos, por assim dizer.

Como perto você está com o desempenho máximo do db? É muito fácil criar um problema OLTP que é insolúvel com esta tecnologia. Como Eric disse, o total arquitetura redesenho poderia estar em ordem. Mais memória RAM, basta adicionar mais memória RAM:)

Com certeza sem ver o banco de dados é difícil dizer o que poderia ser a melhor maneira de otimizar. Dado o que você tem feito, provavelmente você precisa contratar um designer de banco de dados - um com experiência na concepção e afinação bancos de dados na faixa de tamanho que você tem. Ao perguntar como eles iriam abordar o problema ver se o entrevistador iria olhar em primeiro lugar a consultas com fraco desempenho e executar profiler para ver o que está acontecendo e para identificá-los. A pessoa deve ser capaz de responder a perguntas específicas sobre parâmetro sniffing e como evitá-lo, quais são os métodos que podem ser usados ??para cursores Evitar, por que as estatísticas precisam ser atualizados, o que faz um saregable consulta. Há algumas coisas comuns que eu olharia no ajuste de desempenho. É a rede estourou (Às vezes não é o banco de dados), é a concepção global mal pensado, você está usando o código SQL que nos realiza gerais mal? Se todas as suas pesquisas permitem um curinga como o primeiro caractere, por exemplo, não é possível até mesmo levá-los a ser rápido. Se a sua junta estão em chaves naturais multi-coluna, eles são mais lentos do que deveriam ser. Você está armazenando mais do que um pedaço de informação em um campo causando lotes de manipulação para voltar dados para fora? Você está usando cursores? Você está usando funções? Você reutilização de código quando você não deveria estar? Você está sempre retornando a informação mínima necessária? Você está fechando conexões? Você está recebendo impasses? São as suas linhas de tabela muito grande? Você tem muitos registros em tabelas específicas (purga registros antigos ou colocá-los para um banco de dados de arquivo pode fazer uma enorme diferença)? Quanto do seu código é linha orientada e não conjunto orientado? Estes são exemplos dos tipos de coisas uma pessoa do banco de dados experiente olhar e, portanto, os tipos de coisas que eles devem falar na entrevista.

Alguns exemplos de código ruim (você sabe o que você já otimizada) pode lhe dar uma boa idéia de como a sua abordagem à forma como fariam sintonia. Você quer alguém que é metódico e tem profundidade de conhecimento de SQL.

Há alguns bons livros sobre ajuste de desempenho - Gostaria de sugerir recebendo-os e recebendo familar com eles antes de entrevistar

.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top