No SQL Server 2000, se você deseja identificar páginas corrompidas, a opção do banco de dados TORN_PAGE_DETECTION deve ser definida como TRUE.
Porém, no SQL 2005 e posteriores, uma nova configuração PAGE_VERIFY substituiu a antiga TORN_PAGE_DETECTION, que permite escolher entre dois tipos diferentes de verificação de página: TORN_PAGE_DETECTION e CHECKSUM.
Agora vem a pergunta qual definir - TORN_PAGE_DETECTION ou CHECKSUM?
TORN_PAGE_DETECTION - grava um bit para cada 512 bytes em uma página, permitindo detectar quando uma página não foi gravada com sucesso no disco. O problema é que ele não informa se os dados armazenados nesses 512 bytes estão realmente corretos ou não, devido ao fato de que alguns bytes podem ter sido gravados incorretamente.
CHECKSUM - calculará uma soma de verificação da página quando uma página for escrita e quando uma página for lida, assumindo que ela tenha soma de verificação.
O SQL Server calcula a soma de verificação com base no padrão de bits da página, armazena-a no cabeçalho da página e emite uma E / S para gravar a página. Quando o SQL Server lê a página, recalcula a soma de verificação usando a mesma lógica e a compara com o valor disponível no cabeçalho da página. Se o valor da soma de verificação corresponder, será assumido que a página não foi corrompida durante o ciclo de gravação / leitura.
Como o custo de computação da soma de verificação é incorrido em cada página de leitura e gravação, ela pode aumentar a sobrecarga da CPU e, possivelmente, afetar a taxa de transferência de sua carga de trabalho. Outro aspecto a ter em mente é que a soma de verificação não é exclusiva para um padrão de bits específico na página. Duas páginas podem mapear para o mesmo valor de soma de verificação. Portanto, existe a possibilidade remota de que a corrupção da página não seja detectada.
Referência: soma de verificação no SQL2005
Para responder especificamente às suas perguntas:
Acredito que o Checksum foi introduzido no SQL2005 e que a atualização ou restauração de um banco de dados de uma versão anterior manteria seu método de verificação de página anterior. ou seja, não houve atualização implícita.
Sim, o CHECKSUM foi introduzido no SQL Server 2005 e é o PADRÃO . Ao atualizar de 2000 para 2005, é necessário alterar explicitamente a opção de verificação de página do banco de dados para usar CHECKSUM.
Se você restaurar o banco de dados já criado no sql 2005 para outro servidor executando o sql 2005, não será necessário configurá-lo. Ele persistirá para o que você definiu como opção de verificação da página.
Não consegui pesquisar quando a Detecção de página rasgada chegou
De: http://support.microsoft.com/kb/230785
Versões do SQL Server anteriores à 7.0
As versões do SQL Server anteriores à 7.0 não forneciam paridade de log ou recursos de detecção de bits rasgados. De fato, essas versões podem gravar a mesma página de log várias vezes até que os registros preencham a página de log de 2 KB. Isso pode expor transações que foram confirmadas com êxito. Se a página de log estiver sendo reescrita durante uma falha, um setor com a transação confirmada pode não ser reescrito corretamente.
Portanto, TORN_PAGE_DETECTION existe desde o SQL Server 7.0. Mesmo assim, o padrão era que não estava ativado (mesmo link) .
Nota A detecção de página rasgada não está habilitada por padrão no SQL Server 7.0. Veja sp_dboption para saber como habilitar a detecção em seu sistema.
Portanto, se o banco de dados fosse desenvolvido em uma instância 7.0 e posteriormente atualizado, ele teria atualizado a opção PAGE VERIFY existente de NONE (como @ThomasStringer observou em sua resposta).
Edição: 24/09/2013 Para melhorar a resposta:
Referindo-me às minhas anotações internas do SQL Server do SQLSkills, descobri que, usando um despejo de página, é possível verificar se a detecção de bits rasgados - TORN_PAGE_DETECTION ou CHECKSUM foi ativada ou não:
use database_name -- change here for your database !!
checkpoint
go
dbcc traceon (3604) -- send output to screen
go
dbcc page (dbaalert, 1,1,0)
dbcc traceoff (3604) -- turn off the trace flag
go
m_tornBits : mantém a soma de verificação da página ou os bits que foram deslocados pelos bits de proteção de página rasgada - dependendo de qual forma de proteção de página está ativada para o banco de dados.
Nota : Não tenho versões mais antigas do servidor sql em execução. Abaixo está confirmado a partir do sql server 2000 e superior . Se você tem um 7.0 ou 6.5 rodando, também pode confirmá-lo :-)
