SQL Server查看库、表占用空间大小

 

 


转自:https://blog.csdn.net/yenange/article/details/50493580

查询数据文件与日志文件占用情况,查看数据大小,查看库大小

1. 查看数据文件占用(权限要求较大)

DBCC showfilestats

2. 查看日志文件占用

dbcc sqlperf(logspace) 

复制代码
USE master
go
--简易版
SELECT Name, physical_name, Size/128.0 AS [Size(MB)], FILEPROPERTY(Name,'SpaceUsed')/128.0 AS [SpaceUsed(MB)], STR(FILEPROPERTY(Name,'SpaceUsed')*1.0/Size*100,6,3) AS [SpaceUsed(%)] FROM master.sys.database_files
复制代码
复制代码
--详细版
SELECT a.name [文件名称] ,cast(a.[size]*1.0/128 as decimal(12,1)) AS [文件设置大小(MB)] , CAST( fileproperty(s.name,'SpaceUsed')/(8*16.0) AS DECIMAL(12,1)) AS [文件所占空间(MB)] , CAST( (fileproperty(s.name,'SpaceUsed')/(8*16.0))/(s.size/(8*16.0))*100.0 AS DECIMAL(12,1)) AS [所占空间率%] , CASE WHEN A.growth =0 THEN '文件大小固定,不会增长' ELSE '文件将自动增长' end [增长模式] ,CASE WHEN A.growth > 0 AND is_percent_growth = 0 THEN '增量为固定大小' WHEN A.growth > 0 AND is_percent_growth = 1 THEN '增量将用整数百分比表示' ELSE '文件大小固定,不会增长' END AS [增量模式] , CASE WHEN A.growth > 0 AND is_percent_growth = 0 THEN cast(cast(a.growth*1.0/128as decimal(12,0)) AS VARCHAR)+'MB' WHEN A.growth > 0 AND is_percent_growth = 1 THEN cast(cast(a.growth AS decimal(12,0)) AS VARCHAR)+'%' ELSE '文件大小固定,不会增长' end AS [增长值(%或MB)] , a.physical_name AS [文件所在目录] ,a.type_desc AS [文件类型] FROM sys.database_files a INNER JOIN sys.sysfiles AS s ON a.[file_id]=s.fileid LEFT JOIN sys.dm_db_file_space_usage b ON a.[file_id]=b.[file_id] ORDER BY a.[type]
复制代码

 

转自:https://www.cnblogs.com/nikyxxx/archive/2012/10/08/2715423.html

sql server查看所有表大小、所占空间

基于T-SQL

复制代码
SELECT 
   db_name() as DbName, t.NAME AS TableName, s.Name AS SchemaName, p.rows AS RowCounts, SUM(a.total_pages) * 8 AS TotalSpaceKB, CAST(ROUND(((SUM(a.total_pages) * 8) / 1024.00), 2) AS NUMERIC(36, 2)) AS 总共占用空间MB, SUM(a.used_pages) * 8 AS UsedSpaceKB, CAST(ROUND(((SUM(a.used_pages) * 8) / 1024.00), 2) AS NUMERIC(36, 2)) AS UsedSpaceMB, (SUM(a.total_pages) - SUM(a.used_pages)) * 8 AS UnusedSpaceKB, CAST(ROUND(((SUM(a.total_pages) - SUM(a.used_pages)) * 8) / 1024.00, 2) AS NUMERIC(36, 2)) AS UnusedSpaceMB FROM sys.tables t INNER JOIN sys.indexes i ON t.OBJECT_ID = i.object_id INNER JOIN sys.partitions p ON i.object_id = p.OBJECT_ID AND i.index_id = p.index_id INNER JOIN sys.allocation_units a ON p.partition_id = a.container_id LEFT OUTER JOIN sys.schemas s ON t.schema_id = s.schema_id WHERE t.NAME NOT LIKE 'dt%' AND t.is_ms_shipped = 0 AND i.OBJECT_ID > 0 GROUP BY t.Name, s.Name, p.Rows ORDER BY 总共占用空间MB desc
复制代码

 

基于存储过程(exec sp_spaceused)

--主要原理: 
exec sp_spaceused '表名' --取得表占用空間 
exec sp_spaceused ''--數據庫所有空間 

复制代码
复制代码
create table #Data(name varchar(100),row varchar(100),reserved varchar(100),data varchar(100),index_size varchar(100),unused varchar(100)) 
 
declare @name varchar(100) 
declare cur cursor  for 
    select name from sysobjects where xtype='u' order by name 
open cur 
fetch next from cur into @name 
while @@fetch_status=0 
begin 
    insert into #data 
    exec sp_spaceused   @name 
    print @name 
 
    fetch next from cur into @name 
end 
close cur 
deallocate cur 
 
create table #DataNew(name varchar(100),row int,reserved int,data int,index_size int,unused int) 
 
insert into #dataNew 
select name,convert(int,row) as row,convert(int,replace(reserved,'KB','')) as reserved,convert(int,replace(data,'KB','')) as data, 
convert(int,replace(index_size,'KB','')) as index_size,convert(int,replace(unused,'KB','')) as unused from #data  
 
select * from #dataNew order by data desc    
复制代码
复制代码

 

 

查看索引大小

复制代码
--查看索引大小
如果您想要表的每个索引的大小,请使用以下两个查询中的一个:

SELECT
    i.name                  AS IndexName,
    SUM(s.used_page_count) * 8   AS IndexSizeKB
FROM sys.dm_db_partition_stats  AS s 
JOIN sys.indexes                AS i
ON s.[object_id] = i.[object_id] AND s.index_id = i.index_id
WHERE s.[object_id] = object_id('dbo.TableName')
GROUP BY i.name
ORDER BY i.name

---第2种方法 SELECT i.name AS IndexName, SUM(page_count * 8) AS IndexSizeKB FROM sys.dm_db_index_physical_stats( db_id(), object_id('dbo.TableName'), NULL, NULL, 'DETAILED') AS s JOIN sys.indexes AS i ON s.[object_id] = i.[object_id] AND s.index_id = i.index_id GROUP BY i.name ORDER BY i.name 结果通常略有不同,但在1%之内。
复制代码

 

 查看堆表及数据量超过10W行的

复制代码
select * from (
SELECT tables.NAME, 
       (SELECT rows 
        FROM   sys.partitions 
        WHERE  object_id = tables.object_id 
               AND index_id = 0 -- 0 is for heap 
               -- 1 is for clustered index 
                And rows >=100000
       )AS numberofrows 
FROM   db_tank.sys.tables tables 
WHERE  Objectproperty(tables.object_id, N'TableHasClustIndex') = 0
)t where numberofrows is not null
复制代码

 

 

查看表数据行数

但这种办法不是实时的,是sql server定时做的统计操作,执行下面代码可进一步精确

DBCC UpdateUSAGE(DatabaseName,[TABLENAME])WITH ROW_COUNTS 

复制代码
SELECT   a.name, b.rows
FROM      sysobjects AS a INNER JOIN
                 sysindexes AS b ON a.id = b.id
WHERE   (a.type = 'u') AND (b.indid IN (0, 1))
ORDER BY b.rows DESC

posted @ 2025-01-16 16:16 LoveCoder 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 本人从事电商ERP软件开发有10余年了,先介绍一下手头的这套电商ERP源码核心功能 该套电商ERP系统类似聚水潭、万里牛这种,是B/S结构的电商ERP系统,该系统核心功能包括电商ERP常见的比如: 1、仓储管理 说明:该功能主要是提供给店主管理自己仓库的库存的,子功能包括比如上架、下架、出库,并且这 阅读全文
posted @ 2024-11-19 14:14 LoveCoder 阅读(72) 评论(0) 推荐(0) 编辑
摘要: 被这个问题卡住了最少一个下午的时间。。。。不过就当熟悉k8s的命令了吧。。。只能这么安慰自己了 最近在捣鼓k8s部署.net core的后端(我是在windows上部署docker desktop来做测试的),在拉取我阿里云镜像仓库的私有镜像,搞来搞去搞了好久都没用 dock pull regist 阅读全文
posted @ 2024-11-13 15:30 LoveCoder 阅读(880) 评论(0) 推荐(0) 编辑
摘要: 场景介绍:在淘宝卖虚拟产品的的店铺,在买家下单后需要将虚拟产品发送给买家,一般通过千牛消息发送对买家和对卖家是最好的选择,对买家而言查看方便,对卖家而言通过千牛发送后有证据证明自己已经发货。 所以很多小伙伴在开发的时候就需要发送千牛消息,但是实际上淘宝开放平台并没有开放千牛消息发送接口的,市面上,一 阅读全文
posted @ 2024-10-31 11:36 LoveCoder 阅读(225) 评论(1) 推荐(0) 编辑
摘要: 最近发现服务器上某个web站点老是CPU很高,该站点部署在IIS上,我IIS上有多个站点,每个站点一个进程池,每个进程池取名都是根据站点来取的,所以很容易看出哪个站点吃掉的CPU,该站点已运行十几年,是基于.net 4.8 framework 编写的web站点(十几年的老项目重构的话就不用提,新项目 阅读全文
posted @ 2024-09-04 16:53 LoveCoder 阅读(1473) 评论(5) 推荐(16) 编辑
摘要: create proc [dbo].[proc_insert] (@tablename varchar(256)) as begin set nocount on declare @sqlstr varchar(4000) declare @sqlstr1 varchar(4000) declare 阅读全文
posted @ 2024-08-17 14:29 LoveCoder 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 先来看看这个接口的请求参数 num_iid:是指需要修改的淘宝商品的数字id,一般是通过接口拉取店铺的商品列表取得的,这个参数是必填的 sku_id:是指淘宝商品的销售属性唯一id,如果是更新某个销售属性的库存数量就得填写,比如你一件衣服,它有红色和黄色的两个颜色的销售属性,那么你可以单独更新红色的 阅读全文
posted @ 2024-08-08 09:28 LoveCoder 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 淘宝开放平台上货接口,需要上传宝贝信息到淘宝开放平台的开发者需要调用到 alibaba.item.publish.submit 接口进行上传,该接口的入参可以通过 alibaba.item.publish.props.get 进行获取后修改。 阅读全文
posted @ 2024-08-08 09:12 LoveCoder 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 系统里面用到C#模拟Http请求,上线到服务器后,发现日志中大量出现“由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作” 或“通常每个套接字地址(协议/网络地址/端口)只允许使用一次” 运行 netstat -ano 发现有大量的Tcp链接,怀疑可能是服务器各种请求太多了导致的 服务器是wi 阅读全文
posted @ 2024-06-03 11:34 LoveCoder 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 从事电商软件开发的小伙伴,在日常开发任务中,经常会遇到一个需求,就是将淘宝店铺的订单,同步到自己的内部订单管理系统OMS中,进行淘宝打单发货操作。我介绍下如何将订单同步下来,供各位参考。(注意:所有电商平台目前能同步订单的接口要么就不让申请,要么就申请门槛和维护资质的成本很高,具体有需要的小伙伴可以 阅读全文
posted @ 2024-05-28 09:58 LoveCoder 阅读(909) 评论(2) 推荐(0) 编辑
点击右上角即可分享
微信分享提示