数码资讯
一种快速计算SQLServer中每个表行数的方法
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
我们都知道,表中的行数可以通过聚合函数计数计数()。如果你需要计算行数每桌(DBA可能有这样的要求),我们必须生成每个表的动态SQL语句并执行它计数()函数,所以我们可以得到的结果。我见过一个很好的解决互联网之前,忘了出处,写下来和大家分享它。
该方法利用系统表sysindexes提供的行字段。行字段记录的索引的数据的行数。为解决代码如下:
复制代码代码如下所示:
选择schema_name(t.schema_id){ }为图式,T. Name为表名,i.rows为{行}
从sys.tables T,还是一样的我
在t.object_id = i.id和i.indid < = 1
该方法将sys.tables查看,发现桌上的名字和schema_id,并获取该表的架构名称通过schema_name功能。过滤条件i.indid <= 1只选择聚集索引或堆,每桌都至少有一堆或聚集索引,从而保证一行返回的每个表。以下是我在AdventureWorks数据库运行查询的结果。
复制代码代码如下所示:
模式表的行数
----……---- ----—
销售店701
生产productphoto 101
生产productproductphoto 504
销售storecontact 753
个人地址19614
生产productreview 4
生产交易记录113443
6人addresstype
这种方法的优点如下:
1。跑步的速度很快。
2。因为没有访问用户表,所以不会将锁放在用户表上,并且不会影响用户表的性能。
三.你可以写查询作为子查询,CTE,或观点,并把它与其他的查询组合。
该方法利用系统表sysindexes提供的行字段。行字段记录的索引的数据的行数。为解决代码如下:
复制代码代码如下所示:
选择schema_name(t.schema_id){ }为图式,T. Name为表名,i.rows为{行}
从sys.tables T,还是一样的我
在t.object_id = i.id和i.indid < = 1
该方法将sys.tables查看,发现桌上的名字和schema_id,并获取该表的架构名称通过schema_name功能。过滤条件i.indid <= 1只选择聚集索引或堆,每桌都至少有一堆或聚集索引,从而保证一行返回的每个表。以下是我在AdventureWorks数据库运行查询的结果。
复制代码代码如下所示:
模式表的行数
----……---- ----—
销售店701
生产productphoto 101
生产productproductphoto 504
销售storecontact 753
个人地址19614
生产productreview 4
生产交易记录113443
6人addresstype
这种方法的优点如下:
1。跑步的速度很快。
2。因为没有访问用户表,所以不会将锁放在用户表上,并且不会影响用户表的性能。
三.你可以写查询作为子查询,CTE,或观点,并把它与其他的查询组合。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。