如何获取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语句查看SQL Server中的数据库查看所有表大小,所占空间
公司数据库的表都是过G的,查看起来慢的不行,备份的时候想把里面没用的东西删了,减少数据库文件的大小,但是不知道如何或者其中某个表的大小,后来经过一番努力终于找到如何查看SQL Server 2005 中数据表大小的...
各种数据库附加失败的解决办法,共享给大家,希望对大家有帮助!
查看SQLSERVER数据库表空间的大小,并且按照其大小进行排序
1、查看某个数据库,直接执行存储过程sp_spaceused即可 exec sp_spaceused; 2、查看某个表,在存储过程后面加上表名即可 ...-- 说明:更新查询数据库中各表的大小,结果存储到数据表中 -- ====================
2、全面支持(32/64位)Windows操作系统与SQL Server服务器; 3、自动备份功能基于Windows系统服务,使配置操作界面与自动备份逻辑脱离,更稳定、更强大; 4、可自由、实时设置备份周期、备份时间等信息进行SQL...
软件开发网小编推荐的一个方法:到服务里面重启下sqlserver服务即可。 问题一描述:SQL Server数据库备份还原后,在数据库名称后会出现“受限制访问”字样 问题二描述:在对SQL Server数据库进行还原时,提示:...
查询数据库占用空间,数据库的占用空间。方便管理表数据
实例包括SQLServer占用的内存及后台线程。与Oracle显著不同的是,SQLServer服务器的数据库是多个,其中包括5个系统数据库及若干个用户数据库(其中的resource数据库存储系统数据,对用户不可见)。每个数据库包括数据...
本工具小巧、绿色占用500K空间,通过 C++开发操作SQL SERVER 数据库工具,可任意操作数据库,包括SQL 语句的查询、删除、更新等一系列操作。
无需安装sqlserver数据库,直接远程连接数据库,可以更方便的操作sqlserver数据库,且占用资源小
4.自动/手工备份本地或局域网(远程)SQL Server数据库,备份文件与当前连接的SQL Server完全保持一致; 5.通过ZIP模式压缩并加密数据库备份文件; 6.将备份文件通过LAN/FTP/EMAIL进行异地传输; 7.将相应的备份日志...
SQL Server 2008 R2运行...进入Sql server 企业管理器(管理数据库和表的,这个都不知道就不用往下看了),在数据库服务器名称上点击【右键】,选择【属性】,然后,找到【内存】选项,在右边的【使用AWE分配内存】(s
计算sqlserver当前数据库中所有表占用空间大小,包括记录总数,磁盘字节数
当SQL Server数据库引擎运行时,其默认内存管理行为并不是获取特定的内存量,而是在不产生多余换页I/O的情况下获取尽可能多的内存。为此,数据库引擎获取尽可能多的可用内存,同时保留足够的可用内存以防操作系统...
sqlserver2012还原bak文件,备份,日志占用太大存储空间清理日志文件
有时候完全备份, 当还原的时候说不时数据库文件不让还原, 解决办法: 可以直接复制数据库文件, xxx.mdf 和 xxx.ldf (实际复制过程中需要先停止sqlserver服务才可以)用 sp_attach_db 存储过程 就能搞定. 示例 下面的...