Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Contagem não codificada (*) vs tabelas do sistema


O valor armazenado nos metadados não é garantido como correto. DBCC UPDATEUSAGE pode ser usado para corrigir isso quando isso acontecer (menos provável desde o SQL Server 2000)

Também não é transacionalmente consistente. Você pode ler um valor de contagem atualizado por uma transação não confirmada.

E é possível que esses valores sejam atualizados manualmente também.
CREATE TABLE dbo.YourTable(X INT)

UPDATE STATISTICS dbo.YourTable WITH ROWCOUNT = 1000000

SELECT     sum(p.rows) eRowCount
FROM       sys.partitions p
WHERE      P.object_id =object_id('dbo.YourTable') AND p.index_id < 2