星期一, 10月 10, 2022

[SQL] 查詢 Table 資料筆數

常看見社群上提到使用 count() 來查詢 Table 資料筆數,該篇紀錄查詢資料筆數的兩種方式,以 AdventureWorks2019 的 Person Table 當成查詢目標紀錄

SSMS 上操作

Person Table => 滑鼠右鍵 => 儲存體 => 資料列計數


Person Table => 統計資訊 => 任一統計資訊 (該範例以 PK 為主) => 滑鼠右鍵 => 統計資訊詳細資料


單一 Table 沒有切割任何 parition

使用 sys.partition 來查詢資料筆數,而在 sys.dm_db_partition_stats 內有該備註說明
If a heap or index is not partitioned, it is made up of one partition (with partition number = 1); therefore, only one row is returned for that heap or index. The sys.partitions catalog view can be queried for metadata about each partition of all the tables and indexes in a database.
SELECT
    T.[name] AS 資料表名稱,
    P.rows AS 資料筆數
FROM sys.tables AS T  
	JOIN sys.partitions AS P ON T.[object_id] = P.[object_id]
WHERE P.index_id IN (0,1) -- 0:代表 Heap、1 代表 Clustered Index
    AND T.[name] = 'Person' 
ORDER BY 資料筆數 DESC

沒有留言:

張貼留言