获取SQL Server数据库里表容量大小

一、定义存储过程

目的是把当前的所有表的相关信息全部都保存在一个指定的表里面

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

************************************************************************************

简单分析:

1、单个表
EXEC sp_spaceused N‘表名‘;

2、数据库
use [要查看的数据库]
sp_spaceused

3、所有数据库

exec sp_MSForEachDb @Command1 = "use ? exec sp_Spaceused"

************************************************************************************

时间: 2024-11-03 17:49:57

获取SQL Server数据库里表容量大小的相关文章

【.Net MVC4 connectionString设置】获取SQL server数据库的连接字符串

第一步:创建向导文件 在桌面创建一个txt文件,并将文件后缀改成".udl".    第二步:选择"提供程序"tab页 双击新创建的".udl"文件,进入后选择"提供程序"tab页,选择"Microsoft OLE DB Provider for SQL Server".    第三步:设置"连接" 第二步后,选择"下一步"按钮,进入"连接"tab

ADO.NET 获取SQL SERVER数据库架构信息

1.确定可用字段数目 sqlDataReader类提供了FieldCount属性,可确定查询反悔了多少个字段. 2.确定返回行的数目 sqlDataReader中没有指示可用行的属性. 3.确定字段的名称 使用sqlDataReader的GetName方法,该方法接受一个Int整数,指定字段的序号,并在一个字段中返回其名称. 4.确定字段在.NET中的数据类型 要确定用于存储在一特定字段的内容的.NET数据类型,请使用SqlDataReader的GetFieldType方法,与GetName方法

获取SQL Server数据库中的表和字段描述

获取所有dbo表的扩展属性: SELECT * FROM fn_listextendedproperty (NULL, 'schema', 'dbo', 'table', default, NULL, NULL) 大概的结果: objtype objname name value TABLE 表名 扩展属性名 值 获取表的扩展属性: select * from ::fn_listextendedproperty (null,'user','dbo','table','表名','column',n

获取SQL SERVER数据库表结构

select a.name, b.name + '('+ convert(varchar,a.length) + ')' + case a.isnullable when 1 then ' Null' else '' end as [type], '' as Pretty  from syscolumns a join systypes b on (a.xusertype = b.xusertype) where a.id = object_id('TableName') Order By a.

查询SQL SERVER数据库日志工具

在SQL SERVER中查看操作日志,一直是一个比较麻烦的事情,因为微软并没有提供直接的系统工具可以查看日志内容,虽然可以通过非正式的隐藏接口dbcc log 获取日志的非解析编码但是要还原是个非常麻烦的事情.</DIV> <DIV>在SQL SERVER 2000到2005的时代可以通过LogExplor获取SQL SERVER 数据库内容,但是到了2008数据库后,发现LogExplor公司不再开发后续版本了,晚上在网上搜索了以下,发现一个非常好的工具ApexSQL Log.;

50种方法优化SQL Server数据库查询(转载)

原文地址:http://www.cnblogs.com/zhycyq/articles/2636748.html 查询速度慢的原因很多,常见如下几种: 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计算列导致查询不优化. 4.内存不足 5.网络速度慢 6.查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7.锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷) 8.sp_lock,sp_who,活动的用

转载 50种方法优化SQL Server数据库查询

原文地址 http://www.cnblogs.com/zhycyq/articles/2636748.html 50种方法优化SQL Server数据库查询 查询速度慢的原因很多,常见如下几种: 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计算列导致查询不优化. 4.内存不足 5.网络速度慢 6.查询出的数据量过大(可以采用多次查询,其他的方法降低数据量) 7.锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷

转:SQL SERVER数据库中实现快速的数据提取和数据分页

探讨如何在有着1000万条数据的MS SQL SERVER数据库中实现快速的数据提取和数据分页.以下代码说明了我们实例中数据库的“红头文件”一表的部分数据结构: CREATE TABLE [dbo].[TGongwen] (    --TGongwen是红头文件表名 [Gid] [int] IDENTITY (1, 1) NOT NULL , --本表的id号,也是主键 [title] [varchar] (80) COLLATE Chinese_PRC_CI_AS NULL ,  --红头文件

SQL Server数据库镜像关键性能计数器

SQL Server数据库镜像关键性能计数器 监视数据库镜像基本有以下5种方法: 1. 配置数据库镜像监视器.设置告警阈值. 2. 配置WMI EVENT ALERT,配置镜像状态修改后的动作或告警. 3. 使用系统监视器查看关键性能计数器. 4. 部署作业监控异常镜像状态,发送告警. 5. 使用sp_dbmmonitorresults获取镜像数据. 当然,使用扩展事件和SQL Server Profiler也能监控到数据库事件中的数据库镜像状态修改.这种工具主要用于跟踪,而非监控的常规手段.