如何获取SQL Server数据库里表的占用容
----原文来自网络
其实只要使用系统内置的存储过程sp_spaceused就可以得到表的相关信息
如:sp_spaceused 'tablename'
以下是为了方便写的一个存储过程,目的是把当前的所有表的相关信息全部都保存在一个指定的表里面
CREATE PROCEDURE get_tableinfo AS
if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tablespaceinfo]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
create table tablespaceinfo --创建结果存储表
(nameinfo varchar(50) ,
rowsinfo int , reserved varchar(20) ,
datainfo varchar(20) ,
index_size varchar(20) ,
unused varchar(20) )
delete from tablespaceinfo --清空数据表
declare @tablename varchar(255) --表名称
declare @cmdsql varchar(500)
DECLARE Info_cursor CURSOR FOR
select o.name
from dbo.sysobjects o where OBJECTPROPERTY(o.id, N'IsTable') = 1
and o.name not like N'#%%' order by o.name
OPEN Info_cursor
FETCH NEXT FROM Info_cursor
INTO @tablename
WHILE @@FETCH_STATUS = 0
BEGIN
if exists (select * from dbo.sysobjects where id = object_id(@tablename) and OBJECTPROPERTY(id, N'IsUserTable') = 1)
execute sp_executesql
N'insert into tablespaceinfo exec sp_spaceused @tbname',
N'@tbname varchar(255)',
@tbname = @tablename
FETCH NEXT FROM Info_cursor
INTO @tablename
END
CLOSE Info_cursor
DEALLOCATE Info_cursor
GO
执行存储过程
exec get_tableinfo
查询运行该存储过程后得到的结果
select *
from tablespaceinfo
order by cast(left(ltrim(rtrim(reserved)) , len(ltrim(rtrim(reserved)))-2) as int) desc
分享到:
相关推荐
快捷方便,可查看sqlserver数据库每个表的使用情况,一次下载终身使用,此文件为sql语句格式,免费试用
CREATE PROCEDURE [dbo] [sys viewTableSpace] AS BEGIN SET NOCOUNT ON; CREATE TABLE [dbo] #tableinfo 表名 [varchar] 50 COLLATE Chinese PRC CI AS NULL 记录数 [int] NULL
### SQL Server数据库占用过多内存的解决方法 #### 内存使用概述 在SQL Server数据库运行过程中,内存管理是一项至关重要的任务。SQL Server会利用内存来提高数据访问速度和查询性能。其中,数据缓存占据内存的...
包括检查数据库的磁盘空间使用信息、日志文件大小及使用情况、表的磁盘空间使用信息、磁盘读写情况、I/O 工作情况、锁与等待、死锁、用户和进程信息、活动用户和进程的信息、SQL Server 的实际内存占用、所有数据库...
在SQL Server数据库管理中,备份是至关重要的环节,它确保了数据的安全性和可恢复性。传统的备份方法包括完整备份、差异备份、日志备份等,但这些方式有时可能无法满足特定场景下的需求。本文将探讨一种另类的SQL ...
1. **在数据库中创建学生表**:首先需要在SQL Server数据库中创建一个名为“学生表”的表,包含字段`SNO`(学号)、`SNAME`(姓名)、`SSEX`(性别)、`SAGE`(年龄)和`SADDR`(地址)。然后向该表中插入几条示例记录以供后续...
### SqlServer数据库的数据类型详解 数据类型在编程与数据库管理中扮演着至关重要的角色,它不仅定义了数据的存储方式,还决定了数据可以执行的操作。SQL Server作为一种广泛使用的数据库管理系统,提供了丰富的...
本文将根据给定的信息,详细阐述部分重要的SQL Server数据库优化方法,并对这些方法进行深入解读。 #### 1. 避免不必要的查询 - **概述**:避免执行那些实际上并不需要的查询操作,比如在编写存储过程或触发器时,...
用SQL语句查看SQL Server中的数据库查看所有表大小,所占空间
公司数据库的表都是过G的,查看起来慢的不行,备份的时候想把里面没用的东西删了,减少数据库文件的大小,但是不知道如何或者其中某个表的大小,后来经过一番努力终于找到如何查看SQL Server 2005 中数据表大小的...
在处理SQL SERVER数据库附加过程中,遇到失败的情况是很常见的问题,这些失败可能是由于多种原因导致的,解决这些问题的方法也各不相同。本文将详细列出解决SQL SERVER数据库附加失败的几种方法,并对每个解决方案...
在SQL Server数据库的基础学习中,理解并掌握各个系统数据库的功能至关重要。首先,master数据库是整个SQL Server的核心,它存储了所有系统级别的信息,包括用户数据库的控制信息、账户设置、环境变量以及系统错误...
在使用SQLServer数据库时,数据的备份和恢复是数据库管理中非常重要的环节。尤其在开发和生产环境中,表级数据的恢复显得尤为重要,因为关键表往往存放着核心数据,一旦出现数据损坏,需要迅速采取措施进行恢复。...
在SQL Server数据库管理中,定期备份是确保数据安全的关键步骤。本话题主要涉及如何使用脚本实现自动全备份,并结合7-Zip进行压缩,以节省存储空间和提高备份效率。以下将详细介绍相关知识点: 1. **SQL Server ...
《50种方法巧妙优化你的SQL Server数据库》 SQL Server数据库优化是提升系统性能的关键环节。以下是一些针对SQL Server数据库优化的有效策略: 1. **建立和优化索引**:索引是加速查询的关键,特别是在大数据量的...
本文将详细介绍如何通过SQL命令结合Windows计划任务来实现SQL Server数据库的自动备份。 首先,我们需要理解SQL Server中的备份类型。主要的备份类型有完整备份、差异备份和事务日志备份。完整备份会备份整个数据库...
本文档提供了一种详细的SQLServer数据库日志太大时的收缩操作指南,旨在帮助管理员有效地管理和减小日志文件的大小。 ### 1. 数据库日志文件过大原因 数据库日志文件过大通常是因为以下原因: 1. **事务回滚**:...
SQL Server数据库快照是SQL Server 2005引入的一项重要功能,主要用于提供数据库的一份只读、静态的副本。数据库快照通过映射源数据库在创建时刻的数据状态,为报表生成、数据备份和灾难恢复提供了高效且灵活的解决...