Tenho uma tabela que acredito dever a maior parte de seu tamanho a uma NVARCHAR(max)
coluna enorme. Não sei como testar de onde vem a maior parte de seu tamanho. Independentemente disso, tal tabela se beneficiaria da compactação de linhas? Ou NVARCHAR(max)
já tem comprimento variável de forma que a compactação de linhas não faça nada?
relate perguntas
-
SQL Server - Como as páginas de dados são armazenadas ao usar um índice clusterizado
-
Preciso de índices separados para cada tipo de consulta ou um índice de várias colunas funcionará?
-
Quando devo usar uma restrição exclusiva em vez de um índice exclusivo?
-
Quais são as principais causas de deadlocks e podem ser evitadas?
-
Como determinar se um Índice é necessário ou necessário
Não. Com a compactação de linha,
nvarchar(n)
você se beneficiará da compactação Unicode . Mas nãonvarchar(max)
.Como os dados são descompactados, você pode medir o tamanho do armazenamento com o comprimento dos dados:
Se a coluna grande for acessada com pouca frequência, às vezes você poderá melhorar o desempenho forçando todos os valores a sair da linha principal, com sp_tableoption , configuração
large value types out of row
.Se você acessar a
nvarchar(max)
coluna toda vez que acessar a linha, isso não ajudará. Mas se você selecionar as outras colunas com mais frequência, especialmente se estiver examinando a tabela inteira, empurrar anvarchar(max)
linha para fora pode ajudar.