首页 > 数据库 >sqlserver数据库中的mdf文件太大,表空间分析和表空间释放

sqlserver数据库中的mdf文件太大,表空间分析和表空间释放

时间:2023-11-17 18:13:01浏览次数:39  
标签:reserved sqlserver 数据库 mdf 和表 table 100 spaceused nvarchar

原文地址:https://tool.4xseo.com/a/8890.html

查询数据库的大小:

EXEC sp_spaceused

为了保证查询结果的实时性,推荐使用 @updateusage 参数来确保统计数据是最新的:

EXEC sp_spaceused @updateusage = N'TRUE';

具体查询某个表的大小:

EXEC sp_spaceused 't_table'

分析查询数据库中所有表占用的内存大小:

declare @table_spaceused table (
name nvarchar(100) ,
rows int ,reserved nvarchar(100) ,
data nvarchar(100) ,index_size nvarchar(100) ,
unused nvarchar(100) )
insert into @table_spaceused (name,rows,reserved,data,index_size,unused ) exec sp_MSforeachtable @command1='exec sp_spaceused ''?'''
select * from @table_spaceused

字段含义:

  • name:表名
  • rows:行数
  • reserved:数据库为该表分配的空间
  • data:数据实际使用的空间,reserved肯定>=data
  • index_size:索引使用的空间
  • unused:为数据库中的对象保留但尚未使用的空间总量,大致等于reserved - data - index_size的值

    然后根据表中的业务选择性删除无用的数据,truncate table 表名来清空表中无用的数据。

    最后一步,使用数据库自带的收缩功能,来进行收缩数据库中mdf文件的大小。注:TRUNCATE TABLE 语句用来删除表中的所有记录,也即清空表,它类似于不带 WHERE 子句的 DELETE FROM 语句。

    右键数据库—–>任务——->收缩———->数据库(或者文件)。

标签:reserved,sqlserver,数据库,mdf,和表,table,100,spaceused,nvarchar
From: https://www.cnblogs.com/Dongmy/p/17839417.html

相关文章

  • SQLSERVER 日期和时间
    日期和时间数据类型数据类型格式范围精确度存储大小(字节)用户定义的秒的小数部分精度时区偏移量timehh:mm:ss[.nnnnnnn]00:00:00.0000000到23:59:59.9999999100纳秒3到5是否dateYYYY-MM-DD0001-01-01到31.12.991天3否否smalldatetimeYYYY-MM-DD......
  • sqlserver-cdc 自动清理时间设定
    1、默认cdc记录清理时间查询EXECsys.sp_cdc_help_jobs 2、修改cdc记录清理时间EXECUTEsys.sp_cdc_change_job@job_type=N'cleanup',@retention=4320; ......
  • sqlserver登录名和用户名之间的关系
    SQLServer创建登录名和用户名【详细介绍】_ssms可视化新建用户-CSDN博客一、登录名与用户名首先,咱们先来聊聊:数据库登陆名和数据库用户名之间的关系。数据库登陆名和数据库用户名是有差别的,在一个数据库中是一一相对应的关系。一个经典的比喻:如果把数据库比作一个大厦,那么数据......
  • SqlServer中获取数据库中每个表的行数
    SqlServer中获取数据库中每个表的行数CREATETABLE#RowCounts(NumberOfRowsBIGINT,TableNameVARCHAR(128))EXECsp_MSForEachTable'INSERTINTO#RowCountsSELECTCOUNT_BIG(*)ASNumberOfRows,''?''asTableNameFROM?'SELECTTableName,Numbe......
  • sqlserver日期转换及大小写转换
    --大小写转换SELECTlower('FDS'),upper('sdasd')--大写转小写lower('FDS')--小写转大写upper('sdasd')--SQL日期转换SelectCONVERT(varchar(100),GETDATE(),0)--0516200610:57AMSelectCONVERT(varchar(100),GETDATE(),1)--05/16/06S......
  • SQLSERVER 2016新建订阅,连接发布服务器时报错“设置连接字符串后无法更改或读取属性 P
    被此问题困扰许久,查遍全网也没有查到合适的解决方案。特此记录,希望帮到需要的人。SQLSERVER2016新建订阅,连接发布服务器时报错“设置连接字符串后无法更改或读取属性Password。(Microsoft.SqlServer.ConnectionInfo)”===================================设置连接字符串......
  • sqlserver 开启alwayson功能
     1、开启alwayson,必须root用户登录dockerroot@4d14bd7c81c7:/opt/mssql/bin#./mssql-conf sethadr.hadrenabled 1启用前:启用后重启sqlserver重启后: ......
  • .NET7 使用DbContext 连接SqlServer数据库
     ......
  • SqlServer索引原理分析
     中小企业MIS系统的管理基本上由两大部份组成,一是前台的可视化操作,二是后台的数据库管理。网管对前台的管理和维护工作包括保障网络链路通畅、处理MIS终端的突发事件以及对操作员的管理、培训等,这是网管们日常做得最多、最辛苦的功课;然而MIS系统架构中同等重要的针对数据库的管......
  • SQLserver中的递归如何实现
    在SQLServer中,可以使用递归CTE(通用表达式)来实现递归查询。CTE(通用表达式)是一种临时命名结果集,它只存在于查询语句的执行过程中。CTE可以在一个SELECT,INSERT,UPDATE或DELETE语句中使用,并且可以在同一个查询中递归引用自身。这使得递归查询成为可能。下面是一个使用递归CTE的示例:......