sql表内存占用情况

it2025-04-05  14

 

 

sql表内存占用情况

 

IF OBJECT_ID('tempdb..#TablesSizes') IS NOT NULL DROP TABLE #TablesSizes CREATE TABLE #TablesSizes ( TableName sysname , Rows BIGINT , reserved VARCHAR(100) , data VARCHAR(100) , index_size VARCHAR(100) , unused VARCHAR(100) ) DECLARE @sql VARCHAR(MAX) SELECT @sql = COALESCE(@sql, '') + ' INSERT INTO #TablesSizes execute sp_spaceused ''' + QUOTENAME(TABLE_SCHEMA, '[]') + '.' + QUOTENAME(Table_Name, '[]') + '''' FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE' PRINT ( @SQL ) EXECUTE (@SQL) SELECT * FROM #TablesSizes ORDER BY Rows DESC

 

 

 

 

 

USE 你的库名; GO -- 数据库空间使用情况 EXEC sp_spaceused; -- 查下文件空间使用情况 SELECT file_id, name, [文件大小(MB)] = size / 128., [未使用空间(MB)] = (size - FILEPROPERTY(name, N'SpaceUsed')) / 128. FROM sys.database_files -- 表空间使用情况 DECLARE @tb_size TABLE( name sysname, rows int, size varchar(100), data_size varchar(100), INDEX_size varchar(100), unused_size varchar(100) ); INSERT @tb_size EXEC sp_msforeachtable ' sp_spaceused ''?'' ' SELECT * FROM @tb_size

 

  https://social.msdn.microsoft.com/Forums/azure/pt-br/388f92e1-9a1e-497d-bde1-6664561fd44e/sql2008-mdf259912021422826228233838239064?forum=sqlserverzhchs

 

 

 

 

执行文件清理

use [dbName]; go select * from sys.database_files --清理数据文件 DBCC SHRINKFILE (1) --清理日志文件 DBCC SHRINKFILE (2) Go

  

 

转载于:https://www.cnblogs.com/lhlong/p/11114514.html

最新回复(0)