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文件。

  • 相关阅读:
    arcims(HtmlView)开发经验总结《转》
    Oracle sequence
    ajax 简介
    PHP:路在何方?
    ArcIMS初级教程(4)
    设计开发必须收藏的资源网站
    Win2008+IIS7.0+VS2008 在测试调试网站时报错,紧急求救!
    动态生成客户端数组
    解决MySQL不允许从远程访问的方法
    MySql中delimiter的作用是什么
  • 原文地址:https://www.cnblogs.com/JackZhangcom/p/11971112.html
Copyright © 2011-2022 走看看