sql >> Base de Datos >  >> RDS >> Sqlserver

Count (*) sin codificar vs tablas de sistema

No se garantiza que el valor almacenado en los metadatos sea correcto. DBCC UPDATEUSAGE se puede usar para corregir esto cuando sucede (menos probable desde SQL Server 2000)

Además, no es transaccionalmente consistente. Puede leer un valor de conteo actualizado por una transacción no confirmada.

Y es posible que estos valores también se actualicen manualmente.

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