查看数据库、表、索引的物理存储情况

在管理、维护数据库时,经常需要查看数据库文件、日志文件所占用的磁盘空间,以及磁盘还剩下的磁盘空间,你可以通过下面几种方面
查看数据库文件详细情况:
1: 是通过远程连接(或VPN)连接到数据库服务器,直接去查看。
2: 你连接到数据库后,可以通过mssms管理器,选择要查看的数据库,单击右键选择属性。然后选择文件选项,如下图所示。

 

3: 通过SQL命令、脚本查看。

 

  3.1: sys.database_files 视图中保存着数据库文件(数据文件、日志文件)等的详细信息 

 SELECT * FROM sys.database_files

--通过下面命令,查看系统各磁盘可使用空间。

EXEC master..xp_fixeddrives

 

 

当然你也可以用下面脚本只查看数据文件,日志文件大小。 

 

代码

SELECT  SUM(SIZE) * 8.0 / 1024   AS [FileSize(MB)] ,        
        
CASE type
          
WHEN 0 THEN 'DataBaseFileSize'
          
WHEN 1 THEN 'DataBaseLogSzie'
        
END AS Type
FROM    sys.database_files
GROUP BY type

 

 

 不过在删除或重新生成大型索引时,或者在删除或截断大型表时,数据引擎将延迟实际页释放以及关联锁,直至事物提交完毕为止。延迟的删除操作不会立即释放已分配的空间。因此,在删除或截断大型对象后,立即查询sys.database_files得到的数据可能没有反应实际可以用的磁盘空间。(具体可以看看MSDN)。

 

3.2  使用系统存储过程SP_HELPDB 

 

EXEC SP_HELPDB 'MyAssistant' 

 

 

 3.3 系统存储过程SP_SPACEUSED:

 SP_SPACEUSED它显示行数、保留的磁盘空间以及当前数据库中的表、索引视图或 SQL Server 2005 Service Broker队列所使用的磁盘空间,或显示由整个数据库保留和使用的磁盘空间

EXEC SP_SPACEUSED

 

 

 

有时候你是不是想看看数据库里面的表、索引使用的磁盘空间情况,那么也有下面几种方法供你参考。

1:选择你要查看的表单击右键,选择属性,你就可以看到表、索引空间使用情况。 

2:还是使用系统存储过程SP_SPACEUSED

EXEC SP_SPACEUSED 'bto_back_user'

 

3:通过系统视图sysindexes来计算表以及它的索引所占的磁盘空间等情况,下表是它包含的字段详细说明

列名 数据类型 说明

name

sysname

列名或过程参数的名称。

id

int

此列所属表的对象 ID,或者与此参数关联的存储过程的 ID。

xtype

tinyint

sys.types 中的物理存储类型。

typestat

tinyint

仅限内部使用。

xusertype

smallint

扩展的用户定义数据类型的 ID。如果数据类型数超过 32767,则会发生溢出或返回 NULL。有关详细信息,请参阅查询 SQL Server 系统目录。

length

smallint

sys.types 中的最大物理存储长度。

xprec

tinyint

仅限内部使用。

xscale

tinyint

仅限内部使用。

colid

smallint

列 ID 或参数 ID。

xoffset

smallint

仅限内部使用。

bitpos

tinyint

仅限内部使用。

reserved

tinyint

仅限内部使用。

colstat

smallint

仅限内部使用。

cdefault

int

此列的默认值的 ID。

domain

int

此列的规则或 CHECK 约束的 ID。

number

smallint

过程分组时的子过程号。

0 = 非过程项

colorder

smallint

仅限内部使用。

autoval

varbinary(8000)

仅限内部使用。

offset

smallint

此列所在行的偏移量。

collationid

int

列的排序规则的 ID。对于非字符列,此值为 NULL。

status

tinyint

用于说明列或参数的属性的位图:

0x08 = 列允许空值。

0x10 = 添加 varchar 或 varbinary 列时,执行 ANSI 填充。保留 varchar 列的尾随空格以及 varbinary 列的尾随零。

0x40 = 参数为 OUTPUT 参数。

0x80 = 列为标识列。

type

tinyint

sys.types 中的物理存储类型。

usertype

smallint

sys.types 中的用户定义数据类型的 ID。如果数据类型数超过 32767,则会发生溢出或返回 NULL。有关详细信息,请参阅查询 SQL Server 系统目录。

printfmt

varchar(255)

仅限内部使用。

prec

smallint

此列的精度级别。

-1 = xml 或大值类型。

scale

int

此列的小数位数。

NULL = 数据类型不是数值。

iscomputed

int

指示列是否为计算列的标志:

0 = 非计算列。

1 = 计算列。

isoutparam

int

指示过程参数是否为输出参数:

1 = True

0 = False

isnullable

int

指示列是否允许空值:

1 = True

0 = False

collation

sysname

列的排序规则的名称。如果不是基于字符的列,则为 NULL。

代码
SELECT  OBJECT_NAME(id) AS TableName ,
        rowcnt  
AS ROWS,
        reserved 
* 8.0 AS Reserved ,
        dpages 
* 8.0 AS USED ,
        (used 
- dpages)* 8.0  AS index_size,
        ( reserved 
- used ) * 8.0 AS Unused 
FROM    sysindexes
WHERE   indid = 1
        
AND OBJECT_NAME(id) = 'users'
ORDER BY reserved DESC

EXEC SP_SPACEUSED 'users'

 

 

对比看看两者下图的执行结果吧

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/465340.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring简化Java开发_spring如何简化java开发

1、spring简介Spring的主要目的是用来替代更加重量级的企业级的java技术2、spring如何简化java开发1)基于POJO的轻量级和最小侵入性编程;2)通过依赖注入和面向接口实现松耦合;3)基于切面和惯例进行声明式编程;4)通过切面和模板减少样版式代码…

Linux 应用调试神器- ASan

今天有小伙伴跟我他的程序崩溃了要怎么办,刚好我最近做项目使用到这个神器,做应用开发的同学可以看看,可以在C/C上配置使用。不过这仅限于调试,如果你是发布版本,一定要把这个功能关闭。当然,这是我实操的结…

asp.net验证提示美化效果

前段时间做了个ymPrompt提示效果的验证控件,ymPrompt是弹出提示的。弹出提示会增加无畏的鼠标点击动作。前段时间看到园里有位高手写了个纯cssjs的一个效果,我把它和asp.net验证控件结合起来,用这位高手写的效果做为asp.net难控件的提示效果。…

java全栈工程师要求_Java全栈工程师

分布式日志解决方案(ELKKafka)微信登录解决方案微信支付解决方案支付宝支付解决方案微服务持续集成解决方案(Jenkins)Spring Cloud全家桶搭建解决方案分布式事务解解决方案分布式锁解决方案(Redis)微服务网关解决方案(一代Zuul\二代Gateway)微服务集中配置服务解决方案(Config)…

在Linux内核使用Kasan

昨天的文章发出来后,有同学在群里说内核也可以使用这个工具,所以再转发一篇wowo网站的文章,希望对大家有帮助。Linux 应用调试神器- ASan1. 前言KASAN是一个动态检测内存错误的工具。KASAN可以检测全局变量、栈、堆分配的内存发生越界访问等问…

网线有问题?

昨晚网络卡死了。今天换了一条网线。掉包率下降不少。。转载于:https://blog.51cto.com/onlyjoking/398046

跟韦老师聊了一个深夜

自从尚明从韦老师那边离职后,我已经很难得到韦老师的消息了,有时候我也想过去看下他,但是也很难抽的开时间。而且,我们两都挺技术的,如果见面后不知道聊什么,会不会有点尴尬。😄上面那个回复是我…

java面向过程编程怎么写_从面向过程到面向对象,我的编程之路

也许现在新一代的程序员一开始涉足的就是c,C#,Java这类面向对象的语言,如果这样,这篇文章可能得不到他们的认同。 这里,我只想写写我从面向过程到面向对象开发成长中的一些感想而已。我最初学习的语言是basic&#xff…

c#xml操作方法

using System.Xml; //初始化一个xml实例XmlDocument xmlnew XmlDocument();//导入指定xml文件xml.Load(path);xml.Load(HttpContext.Current.Server.MapPath("~/file/bookstore.xml"));//指定一个节点XmlNode rootxml.SelectSingleNode("/root");//获取节点…

急救WINDOWS内存错误

该内存不能为read或written的解决方案 使用Windows操作系统的人有时会遇到这样的错误信息:「“0X????????”指令引用的“0x00000000”内存,该内存不能为“read”或“written”」,然后应用程序被关闭。如果去请教一些「高手」&#xf…

大厂不是铁饭碗

最近的事情有点多前段时间一个以前的朋友,买房找我咨询,问我恒大的房子能不能买,我当时没有给出明确的回复,但是也说了自己的看法。近些年房子越来越贵,我是从15年开始接触房子,不过我从没有想过靠房子来赚…

java 判断数字二进制有几位_判断一个二进制数字有多少个1----java实现

这个题目会有多个解法:需要判断n的二进制有几个1first:通过n向右移位&1,如果n的最后为1,那么与1结果为1,(相信大家都会与运算,hashmap就是用与运算)以此来实现,循环判断有多少个1&#xff0…

cesss

件(最大上传3个附件,每个件(最大上传3个附件,每个件(最大上传3个附件,每个件(最大上传3个附件,每个转载于:https://blog.51cto.com/wuxh868/402629

python知识点1

1.if __name__ main 的作用 在此函数下的代码,只有当该文件运行的时候才能运行。当前文件如果被当做模块被其他文件导入,该函数下的代码就不会被执行。2.__init__方法在类被实例化之前,先使用__init__方法进行一些初始化操作,如…

java语句中switch_Java中的switch-case语句

在codewar里使用了以下switch-case语句,不熟练出错,所以记录一下。class ArithmeticFunction {public static int arithmetic(int a, int b, String operator) {int result0;switch(operator){case "add":resultab;case "subtract":…

使用valgrind检测内存问题

valgrind是一款用于内存调试、内存泄漏检测以及性能分析的软件开发工具。1valgrind安装可以到官网下载最新的源码包:valgrind官网下载,也可以直接使用 c_utils/debug/valgrind 目录提供的 valgrind-3.13.0.tar.bz2 源码包。首先解压源码包tar xjf valgri…

[转]一个人脸检测器

//本文使用到Emgu.CV库,该库是C#语言对OpenCV的封装,以下是一个列子程序的改正版本。using System; using System.Collections.Generic; using System.Text; using Emgu.CV.Structure; using Emgu.CV;namespace VSL.Plugin.TrackingSystem.SimpleTrackin…

项目中cxf和weblogic整合时报错的问题

GJYW项目使用的weblogic版本是10.3.6,cxf使用的版本是3.1.4 在将项目部署到weblogic服务器上时就会报错,通过下面的方式可以解决weblogic和cxf框架在一起报错的问题(解决了本项目报错的问题,未必全部适用):…

下周开幕!给深圳的嵌入式和电子工程师准备的嘉年华来了

我和电子圈老江认识了很久,应该是2012年,小龙第一次参加电子圈年会,那年他年会中奖的奖品送给我。后来,我也加入了电子圈的QQ群,早些年的时候,大家都喜欢在QQ群聊天,后来才慢慢转到微信群。老江…

java过去配置文件的值_java对.properties配置文件操作

实现运用Java.util.Properties来进行对.properties配置文件操作。配置文件实例:如debug.properties#Tue Mar 21 15:46:17 CST 2017#keyvalueremote.debug.prot7451第一步写个获取文件路径的外部方法//-in- String filePath:配置文件名如debug.properties…