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

在管理、维护数据库时,经常需要查看数据库文件、日志文件所占用的磁盘空间,以及磁盘还剩下的磁盘空间,你可以通过下面几种方面
查看数据库文件详细情况:
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难控件的提示效果。…

在Linux内核使用Kasan

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

跟韦老师聊了一个深夜

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

大厂不是铁饭碗

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

使用valgrind检测内存问题

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

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

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

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

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

AS3.0中的显示编程(末篇)-- 滤镜(下)

剩下的三种滤镜,因为我自己也不是很懂矩阵啊这些的,只能做些简单的范例和说明了,抱歉!颜色矩阵滤镜、卷积滤镜、置换图滤镜这三种滤镜只能通过AS代码实现。如果说上面的六种滤镜,只是在原图的基础上做些简单的修改&…

这几个朋友,我记得

‍‍昨天的中秋节是在公司加班度过的,末了,在群里看到有人说要是今天还有人加班的话,那他一定是真正的卷王,好了,我是那个中秋节加班的卷王。早上打车去公司,快到公司楼下的时候,司机师傅跟我说…

HOWTO:如何修改InstallShield的运行环境

版权声明: 可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息。在InstallShield中,存在一些运行环境的变量,如果我们做了某种选择,之后可能将不再提示,说不定什么时候又想改回来呢,找不到地…

深入理解Java线程池:ThreadPoolExecutor

线程池介绍 在web开发中,服务器需要接受并处理请求,所以会为一个请求来分配一个线程来进行处理。如果每次请求都新创建一个线程的话实现起来非常简便,但是存在一个问题: 如果并发的请求数量非常多,但每个线程执行的时间…

看嵌入式大神直播,送开发板!

这是一场嵌入式学习者不可错过的直播……以往拿到一个开发板,还要花费时间找资料,向有经验的朋友请教测试过程现在,在捷客直播间,嵌入式大神现场教学,手把手教你如何使用开发板开发一款智能设备9月26日晚,看…

java实现itchat_GitHub - Xiazki/itchat4j: wechatbot 的java实现,简单搭建了基本框架和实现了扫码登陆,具体网页微信api请参考...

itchat4j 微信自动回复机器人-------------- --------------- ---------------| | | | | || Get UUID | | Get Contact | | Status Notify || | | | | |------------- -------^------- -------^-------| | || ------- --------| | |-------v------ ------------- -------------…

华为宣布:免费培养8000名开发者! 学习免费!实验免费!考证免费!

很多朋友都想储备一些不同领域的新技术以便未来有更好的发展但目前市面上各种教程质量良莠不齐而且想要掌握高阶的开发技术需要耗费大量的时间和精力So,华为云特别推出 互联网技能加油站包含物联网、Python、AI等五大领域,核心技术赋能构建全面技能体系现…

送20个鼠标垫

之前发的朋友圈,里面晒了一个鼠标垫,大家都挺喜欢的,这次决定送30个给大家,没有什么规则,直接抽奖就好了。在下方的公众号回复【1001】获取抽奖小程序。因为之前好几次抽奖,因为时间比较长导致大家忘记填写…

越老越值钱,除了程序员!

-我们见过太多靠经验、资历“镀金”的职业。司机、教师、医生、律师、会计……这些职业的薪资待遇、社会地位、声誉等等都会随着从业时间的增长而变得越来越高、越来越好。“老”这个字,对于这类的职业来说,更像是褒奖。大家对于“资深”的他们&#xff…

Visual Studio 2010授权修改

为什么80%的码农都做不了架构师?>>> 参见以下步骤: 32位的系统中,修改以下注册表键值 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\10.0\Registration\UserName HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\Curr…

Net Core平台灵活简单的日志记录框架NLog+SqlServer初体验

Net Core平台灵活简单的日志记录框架NLogSqlServer初体验 前几天分享的"[Net Core平台灵活简单的日志记录框架NLogMysql组合初体验][http://www.cnblogs.com/yilezhu/p/9416439.html]" 反响还行。有网友就说有了NLogMySql的组合,那如果我是用SqlServer怎么…