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.

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top