zoukankan      html  css  js  c++  java
  • sqlserver数据库中的mdf文件太大,表空间分析和表空间释放

    查询数据库的大小:

    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文件的大小。

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

    我本地之前数据库30多个g的文件,后面压缩成了1个多g文件。

  • 相关阅读:
    FFT入门
    FJOI省队集训 chessboard
    FJOI省队集训 florida
    树上莫队
    NOIP2015 Revenge
    APIO2013 tasksauthor
    油漆门
    一些字符串有关的题目
    字符串题模板集合
    sg函数与博弈论2
  • 原文地址:https://www.cnblogs.com/JackZhangcom/p/11971112.html
Copyright © 2011-2022 走看看