Для получения точного ответа разумный способ получить точное число строк в таблице в нормализованной базе данных - выполнить:
select count(*) from table;
Для таблицы без индексов база данных выполнит полное сканирование таблицы. Если вы проиндексировали ненулевой столбец, база данных может использовать (возможно, намного меньший) индекс для разрешения вашего запроса.
Если вам нужно более быстрое решение, вы должны отслеживать количество строк в таблице, не прибегая к подсчету самих строк. Например, вы можете сделать это самостоятельно в другой таблице (как часть вашего тщательно разработанного API или с помощью триггеров и т. Д.) Или создав * индексированное представление для этой цели.
Однако, если вам нужно только приблизительное приближение, и очень важно, чтобы вы быстро получили ответ, другие показали способы сделать это, используя словарь (Джон, Мартин)
* Отказ от ответственности: я фактически не использовал индексированные представления в SQL-сервере, я просто читаю документацию и предполагаю, что они могут делать то же самое, что и материализованное представление в Oracle.