我的一位同事向我展示了以下视图:
CREATE VIEW [SPR].[TablesCount]
AS
SELECT s.name cSchema,
t.name cTable,
sum(p.rows) eRowCount
FROM sys.tables t
INNER JOIN sys.schemas s
ON s.schema_id = t.schema_id
INNER JOIN SYS.partitions p
ON p.object_id = t.object_id
WHERE p.index_id < 2
GROUP BY s.name,
t.name
执行速度比常规快得多
select count(*) from table
为什么这个?不应该优化数据库引擎以始终遵循最短路径吗?系统表视图解决方案的缺点是什么?