Server中统计每个表行数的快速方法金冠53777

作者:操作系统

大家都精通用聚合函数count(卡塔尔国能够总括表的行数。假使急需计算数据库每一个表各自的行数(DBA大概有这种供给卡塔尔国,用count(卡塔尔国函数就亟须为每一个表生成多少个动态SQL语句并推行,才干博取结果。曾经在网络络看看有一种很好的化解方法,忘记出处了,写下来分享一下。

该情势运用了sysindexes 系统表提供的rows字段。rows字段记录了目录的数据级的行数。解决办法的代码如下:复制代码 代码如下:select schema_name(t.schema_id) as [Schema], t.name as TableName,i.rows as [RowCount]

from sys.tables as t, sysindexes as i

where t.object_id = i.id and i.indid =1该办法连接了sys.tables视图,从当中寻找表名和schema_id,再通过schema_name函数获取表的结构名。筛选标准i.indid =1 只选集中索引或然堆,每一个表至稀有一个堆也许集中索引,从而确定保证为每种表重回一行。以下是在自身的AdventureWorks数据库中运作该查询重回的一些结出:复制代码 代码如下:Schema TableName RowCount——————– ——————– ———–Sales Store 701Production ProductPhoto 101Production ProductProductPhoto 504Sales StoreContact 753Person Address 19624Production ProductReview 4Production TransactionHistory 113443Person AddressType 6该措施的亮点有:

1.运转速度超快。2.由于不访谈客商表,不会在客户表上放置锁,不会听得多了就能够说的详细顾客表的性格。3.方可将该查询写成子查询、CTE或许视图,与任何查询结合使用。

本文由金冠53777-金冠娱乐53777-Welcome发布,转载请注明来源

关键词: