SQL001 SQL Serverでレコード件数を調べる方法

1,count関数
件数が膨大なテーブルに対して実行した場合、結果が返ってくるまでに時間がかかります。

SELECT
count(*) as [行数]
FROM
[テーブル名]

2,sp_spaceused
システム ストアド プロシージャのsp_spaceusedを使ってレコード数を取得できます。
EXEC sp_spaceused [テーブル名]

3,sys.partitions
システム カタログ ビューを使用して、データベース内の全テーブルの行の概数を取得できます。

SELECT
obj.name as [テーブル名]
,sum(par.rows) as [行の概数]
FROM
sys.objects as obj
INNER JOIN
sys.partitions as par
ON obj.object_id = par.object_id
WHERE
obj.type = 'U'
and par.index_id < 2
GROUP BY
obj.name
ORDER BY
obj.name

テーブルがパーティション分割されている場合、パーティションごとの行の概数も取得できます。

SELECT
obj.name as [テーブル名]
,par.partition_number as [パーティション番号]
,par.rows as [行の概数]
FROM
sys.objects as obj
INNER JOIN
sys.partitions as par
ON obj.object_id = par.object_id
WHERE
obj.type = 'U'
and par.index_id < 2
ORDER BY
obj.name
,par.partition_number

4,sys.sysindexes
使用して行数を取得もできますが、sys.sysindexesは将来サポートされなくなるようです。
SELECT
obj.name as [テーブル名]
,ind.rows as [行数]
FROM
sys.objects as obj
INNER JOIN
sys.sysindexes as ind
ON obj.object_id = ind.id
WHERE
obj.type = 'U'
and ind.indid < 2
ORDER BY
obj.name

posted @   LearnNewThings  阅读(190)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示