Nada más rápido que el recuento (1) de la Tabla A para encontrar recuentos de filas?
-
04-10-2019 - |
Pregunta
¿Hay alguna cosa de la que podemos llegar más rápido el no. de filas de una tabla en lugar de utilizar la cuenta (1). Además hay dos casos:
a) cuando queremos obtener el no. de filas de una tabla.
b) cuando sólo queremos saber si hay al menos una fila-.
Gracias de antemano.
Solución
a) Usted puede obtener los recuentos de filas de la tabla de las tablas del sistema, 1 ejemplo es según Uri Dimant de entrada de blog aquí .
b) Yo siempre uso existe:
IF EXISTS(SELECT * FROM YourTable)
Otros consejos
b) cuando sólo queremos tot saber si hay al menos una fila.
SELECT TOP 1 myField
FROM myTable [WHERE .....]
Para saber el recuento de todas las filas de la tabla sin analizarlos se puede usar
select SUM(row_count) AS row_count
from sys.dm_db_partition_stats
where object_id = object_id('dbo.tblName')
and index_id < 2
No estoy seguro de si hay advertencias con ese enfoque. (Es de suponer que o bien podría incluir el recuento de registros no comprometidos o no incluir cambios realizados dentro de su transacción actual)
b) Linq-to-SQL genera
EXISTS (SELECT NULL FROM Table....)
a) No.
b) Se puede utilizar la función exists
, que sólo comprueba si hay un resultado y en realidad no obtener el resultado.
No es este enfoque, utilizando sysobjects y sysindexes:
Contar filas de todas las tablas a la vez
Ha funcionado bien para mí en el pasado.