程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> MSSQL >> SQL Server中統計每一個表行數的疾速辦法

SQL Server中統計每一個表行數的疾速辦法

編輯:MSSQL

SQL Server中統計每一個表行數的疾速辦法。本站提示廣大學習愛好者:(SQL Server中統計每一個表行數的疾速辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是SQL Server中統計每一個表行數的疾速辦法正文


我們都曉得用聚合函數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                     701
Production              ProductPhoto          101
Production              ProductProductPhoto  504
Sales                      StoreContact          753
Person                    Address                 19614
Production              ProductReview         4
Production              TransactionHistory   113443
Person                   AddressType            6

該辦法的長處有:

1.運轉速度異常快。
2.因為不拜訪用戶表,不會在用戶表上放置鎖,不會影響用戶表的機能。
3.可以將該查詢寫成子查詢、CTE或許視圖,與其它查詢聯合應用。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved