一种快速计算SQLServer中每个表行数的方法

一种快速计算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,或观点,并把它与其他的查询组合。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部