Ouvi dizer que armazenar índices em um grupo de arquivos e unidade diferentes aumenta o desempenho em um banco de dados porque a unidade não precisa ir e voltar entre o índice e os dados aos quais o índice se refere. Eu também ouvi dizer que isso é um mito.
Quando é aconselhável armazenar índices não clusterizados em um grupo de arquivos e unidade separados? Que evidência de perfmon / profiler me levaria a chegar a essa conclusão? O hardware desempenha um papel na decisão (se um RAID / SAN é usado em uma única unidade)?
fonte
Certamente, é verdade que espalhar sua E / S simultânea entre unidades diferentes aumentará o desempenho - isso não é mito. É um mito que fazer isso duas vezes melhorará o desempenho novamente.
Se você MESMO , dividir sua matriz em duas partições e colocar índices em uma e tabelas em outra é uma perda de tempo.
fonte
Separar índices dos dados em grupos de arquivos separados = a melhoria do desempenho é altamente discutível. A melhoria de desempenho "pode" acontecer se você tiver o hardware subjacente para suportá-lo, mas apenas pelo fato de separá-los em diferentes grupos de arquivos não oferece um aumento de desempenho. E também não é fácil medir o aumento de desempenho por causa disso.
Ref: http://weblogs.sqlteam.com/dang/archive/2008/08/01/Are-you-a-DBA-Monkey.aspx
Você deve fazer a pergunta primeiro. Por que você tem que fazer isso?
Eu olhei para esta tarefa para apoiar a necessidade do número 5 na lista acima e parece uma boa proposta para mim, embora ainda não tenhamos adotado isso.
Observe que essa decisão NÃO é tão fácil de tomar e você precisa descobrir o que está tentando fazer e garantir que possui o hardware para suportar. Não faça alterações como essa, a menos que você tenha testado bem e veja um aumento significativo no desempenho, caso contrário, você também pode abandonar essa idéia. NÃO vale a pena se você está esperando um aumento de desempenho simplesmente separando os índices em grupos de arquivos separados.
fonte
Vou contar minha experiência pessoal em relação a este item. Os índices não agrupados em cluster devem ser armazenados em um grupo de arquivos separado quando a unidade de disco atual não for grande o suficiente para o espaço necessário :-). Você pode rir disso .. mas acontece.
Portanto, uma correção de emergência para nós, quando estávamos prestes a ficar sem espaço livre em uma unidade de dados, era criar um bom script para recriar todos os índices não agrupados on-line em um novo grupo de arquivos em uma unidade com espaço livre. Alguém poderia pensar que é fácil e rápido comprar um novo armazenamento ... mas não é assim, realmente.
Em relação ao desempenho, não vimos nada fora do comum após a mudança. Mas é uma grande caixa de armazenamento SAN, onde tudo é mantido em conjunto :-).
fonte
Em geral; dividir dados e índices em discos separados com desempenho semelhante pode aumentar o desempenho de operações substanciais de gravação nessa tabela ou em operações de leitura grandes que utilizam esse índice. Uma metodologia semelhante a algumas outras operações de E / S, como uma tabela particionada, espalhada por vários discos físicos.
No entanto, também é amplamente dependente do armazenamento . Por exemplo; se você possui um servidor com um bom ioDrive do Fushion (ou algo semelhante) e também possui discos giratórios individuais. Pode ser mais benéfico manter tudo no ioDrive (a menos que o espaço seja limitado). Também há outras coisas a serem levadas em consideração - configuração RAID, configuração de armazenamento em rede.
Faça alguma marcação de bancada em um servidor de teste com hardware semelhante ou (apenas se um servidor secundário não for uma opção) durante o horário não de pico com dados temporários. O link DBA-Monkey de Sankar acima é um bom alimento para reflexão.
fonte