s.indexes与sysindexes区别
以后可能就不再使用,而是以sys.为主
故查询一个表有多少行时可用:
select count(*) from TableName
VS
select rows from sys.partitions where object_id = object_id('TableName') and index_id = 1
针对百万级的表进行返回表的记录数时,两种写法的速度差距还是显而易见的。
1、count(*)函数需要进行一次完整的索引/表扫描,才能返回表的记录总数。这样会及其影响数据库的性能。
2、而sys.partitions 视图包含了数据库中所有表和索引的每个分区在表中对应的每一行,即使所有表和索引并未显式分区,也至少在这个视图中包含一个分区。
sys.partitions (Transact-SQL)