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

在管理、维护数据库时,经常需要查看数据库文件、日志文件所占用的磁盘空间,以及磁盘还剩下的磁盘空间,你可以通过下面几种方面

查看数据库文件详细情况:

 

1: 是通过远程连接(或VPN)连接到数据库服务器,直接去查看。

 

2: 你连接到数据库后,可以通过mssms管理器,选择要查看的数据库,单击右键选择属性。然后选择文件选项,如下图所示。

 

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

 

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


 SELECT * FROM sys.database_files

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

EXEC master..xp_fixeddrives

 

 

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

 

代码

Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->
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。 

代码

Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->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'

 

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

时间: 2025-01-19 23:27:24

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

SQL Server 2005 查看数据库表的大小 按照表大小排列

(1)Question:尼玛一个数据库,动辄几十个G,伤不起啊,怎样才能知道当前数据库里面各个表的大小呢?以便将部分较大的数据库表中不容易被频繁访问的数据归档到历史表中,例如每天将一个自然年以前的数据放入历史表中.(2)Key:网上搜了一圈,关键字sp_spaceused (参见:http://msdn.microsoft.com/zh-cn/library/ms188776.aspx)(3)Sample:同时找到了一个示例(参见:http://www.linuxso.com/linuxxito

毕业设计-phpmyadmin怎样查看数据库表中的关系

问题描述 phpmyadmin怎样查看数据库表中的关系 在做php博客系统的毕业设计,用的mysql数据库,导师要求建立表间的关系,怎么弄啊,大神求助!!! 解决方案 phpmyadmin还没有那个功能, 你得自己设计. 解决方案二: 怎么设计啊老乡,单独画表吗?你看看他这个是怎么搞定的 解决方案三: phpmyadmin 还有这功能?学习了

PostgreSQL查看数据库,索引,表空间大小

 代码如下 复制代码 实例讲解 3.1 查看存储一个指定的数值需要的字节数 david=# select pg_column_size(1);      pg_column_size ----------------               4 (1 row) david=# select pg_column_size(10000);  pg_column_size ----------------               4 (1 row) david=# select pg_colu

PostgreSQL 查看数据库,索引,表,表空间大小的示例代码_PostgreSQL

一.简介 PostgreSQL 提供了多个系统管理函数来查看表,索引,表空间及数据库的大小,下面详细介绍一下. 二.数据库对象尺寸函数 函数名 返回类型 描述 pg_column_size(any) int 存储一个指定的数值需要的字节数(可能压缩过) pg_database_size(oid) bigint 指定OID的数据库使用的磁盘空间 pg_database_size(name) bigint 指定名称的数据库使用的磁盘空间 pg_indexes_size(regclass) bigin

快速掌握查看数据库表死锁的实用方法

问:如何查看数据库的表死锁? 答:具体方法如下: 1,打开监控窗口 db2 update monitor switches using lock on 2.运行程序一段时间后 db2 get snapshot for locks on 数据库名称 至此,即可查看到当前所有连接到该数据库的应用程序句柄和每一个连接下锁定的情况.

通过shell脚本查看数据库表空间使用情况

对于数据库中表空间查看,想必大家都有很多的脚本已经在用了,自己也啰嗦一下,分享一个通过shell脚本查看表空间使用情况的例子. 脚本如下: sqlplus -s $DB_CONN_STR@$SH_DB_SID   set echo off heading on underline on; column inst_num  heading "Inst Num"  new_value inst_num  format 99999; column inst_name heading &quo

mysql查看数据库表的数量命令

  有时候导入SQL文件后,表很多.想看看表的个数时候和服务器上表的个数是否相同.在mysql中可以用如下命令查看表的个数: ? 1 SELECT count(TABLE_NAME) FROM information_schema.TABLES WHERE TABLE_SCHEMA='dbname';

Oracle数据库结构之物理存储结构

oracle|数据|数据库|数据库结构 1.物理存储结构1.1数据文件数据文件用于存放所有的数据库数据.将数据放在多个数据文件中,再将数据文件分放在不同的硬盘中,可以提高存取速度.1.2记录文件记录文件也称为重做日志(事务)文件.重做日志在日志文件中以循环的方式工作.有归档日志模式和非归档日志模式.1.3参数文件每一个Oracle数据库和实例都有它自己唯一的init.ora文件.Init.ora文件中的值决定着数据库和实例的特性.1.4控制文件每个数据库中至少要有一个控制文件,但是建议用户使用两

mongodb 查看数据库和表大小_MongoDB

1,查看数据库 > db.stats(); { "db" : "test", //当前数据库 "collections" : 3, //当前数据库多少表 "objects" : 4, //当前数据库所有表多少条数据 "avgObjSize" : 51, //每条数据的平均大小 "dataSize" : 204, //所有数据的总大小 "storageSize"