Tengo dos tablas y quiero el número total de filas en cada una. La consulta real es más compleja, ya que habrá ... cláusulas para cada recuentosql sum of counts
¿Cómo hago lo siguiente en t-sql (ninguno de los cuales funciona)?
select count(*) from table1 + count(*) from table2
o
select sum(count(*) from table1,count(*) from table2)
Hice una prueba rápida en mi base de datos con 3 formas de conteo de registros por columna de clave principal: 'SELECT COUNT (*) FROM table; SELECT COUNT (pk_col) FROM tabla; SELECCIONAR COUNT (1) FROM tabla; '. Los 3 devuelven los mismos resultados y tienen el mismo plan de consulta. He probado dos tablas sobre 15 millones de registros uno y más de 50 millones de segundo uno). Entonces, probablemente, cualquier forma de columna 'COUNT' by PK no hace la diferencia en MS SQL. Sin embargo, hace la diferencia para el recuento de registros por columnas que aceptan nulos, lo que también probé, en ese caso 'COUNT (*)' afecta el rendimiento (en mi prueba). –
:) De hecho, quería decir que pocas columnas que no están indexadas y usar el conteo selecto (*) deberían ralentizar el tiempo de acceso. No sé por qué no hace la diferencia a tu lado. Pero fue mi experiencia pasada elegir esa columna que está indexada. – Pankaj
@Grzrgorz - para columnas que aceptan nulos, 'COUNT ()' da una * respuesta * diferente - no es una cuestión de rendimiento, es una cuestión de cuál respuesta es la correcta en ese caso. –