Eu tenho um índice não clusterizado com 63 milhões de linhas de nível de folha. Atualmente, não possui colunas incluídas. Gostaria de adicionar uma coluna incluída enquanto o site estiver online. Isso afetará significativamente o desempenho se eu fizer isso por meio da GUI do SSMS?
Por que você faria qualquer coisa através da GUI do SSMS???
Tente fazer isso como um profissional, por um script. Sua melhor opção é criar o índice online com drop existente, alterando a definição para corresponder ao novo esquema desejado no processo:
Isso, obviamente, está sujeito às restrições usuais para operações ONLINE e causará a sobrecarga normal causada por uma operação de criação/reconstrução de índice ONLINE. Mas a boa notícia é que a operação será online, não bloqueará as consultas existentes e o índice antigo estará disponível para consultas enquanto o novo estiver sendo construído. Haverá um estágio de drenagem de consulta no final, quando todas as consultas serão bloqueadas enquanto os índices estão sendo trocados, mas essa deve ser uma operação muito rápida (desde que não haja transações de usuário de execução longa bloqueando a própria troca).
Realmente não importa se você fizer isso por meio da GUI ou por meio de um script. Acredito que levará em consideração as opções que já estão no índice, a menos que você especifique
ONLINE
off ou on.Não importa como você faça isso, isso definitivamente afetará o desempenho. Principalmente por meio de IO e crescimento de arquivo, mas ele criará uma nova versão do índice ao lado do antigo e descartará o antigo assim que estiver concluído. Isso vai tirar recursos de outras operações. Não bloqueará o acesso ao índice atual,
ONLINE = ON
mas afetará outras coisas no servidor.Lembre-se também de que
ONLINE
está disponível apenas nas versões Developer ou Enterprise do SQL Server.Atualizado: ONLINE também está disponível no DataCenter Edition