要获得准确答案,在规范化数据库中获取表中确切行数的合理方法是执行:
select count(*) from table;
Run Code Online (Sandbox Code Playgroud)
在没有任何索引的表上,数据库将执行全表扫描.如果已索引非空列,则数据库可以使用(可能小得多)索引来解析查询.
如果您需要更快的解决方案,则必须跟踪表中的nr行,而不必依赖于对行本身进行计数.例如,您可以在另一个表中自己执行此操作(作为精心设计的API的一部分或使用触发器等)或为此目的创建*索引视图.
但是,如果你只需要一个aproximation,并且快速得到答案是至关重要的,那么其他人已经通过使用字典(约翰,马丁)展示了这样做的方法.
*免责声明:我实际上并没有在SQL服务器中使用索引视图,我只是阅读文档并假设它们可以像Oracle中的物化视图那样做.