sql表內存占用情況


 

 

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

  

 


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com