网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > SQL技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
本月文章推荐
.讲解V$Datafile_Header相关字段的.
.sql server关于函数中如何使用Ge.
.SQLServer2005数据库还原到SQLSe.
.where子句在编写过程中需要注意的.
.SQL中查询数据表字段名称的查询语.
.SQL Server2005 Analysis服务实践.
.SQL Server常用到的几个设置选项.
.五种提高SQL性能的方法.
.mssql锁基础教程.
.小记存储过程中经常用到的本周,.
.实现按部门月卡余额总额分组统计.
.设计数据库之经验谈.
.SQL Server 2005新功能-TSQL .
.快速掌握创建一个相同权限用户的.
.用存储过程几个最直接的好处.
.SQL中获得EXEC后面的sql语句或返.
.SQL SERVER数据库开发之存储过程.
.用dbschema工具导出Informix数据.
.SQL Server 数据导入:行为规范.
.查询表主键外键信息的SQL.

查看SQL Server数据空间分配情况

发表日期:2005-7-19


   今天客户反映数据库文件空间增长过快 ,需要分析数据库表存放空间分配情况,临时写了以下过程,

与大家共享。


/********************************
功能:获取表的空间分布情况  ycsoft 2005-07-13
**********************************/

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


--knowsky.com数据库信息
sp_spaceused @updateusage = 'TRUE' 

--表信息
select *
from tablespaceinfo 
order by cast(left(ltrim(rtrim(reserved)) , len(ltrim(rtrim(reserved)))-2) as int) desc

 

备注:
Name nvarchar(20) 为其请求空间使用信息的表名。
Rows char(11) 表中现有的行数。
reserved varchar(18) 表保留的空间总量。
Data varchar(18) 表中的数据所使用的空间量。
index_size varchar(18) 表中的索引所使用的空间量。
Unused varchar(18) 表中未用的空间量。

上一篇:使用正规表达式编写更好的SQL 人气:10313
下一篇:SQL Server编写存储过程小工具(一) 人气:13584
浏览全部sql server的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐