曙海教育集團論壇開發語言培訓專區SQL Server數據庫 → 獲取SQL Server數據庫里表占用容量大小


  共有8163人關注過本帖樹形打印

主題:獲取SQL Server數據庫里表占用容量大小

美女呀,離線,留言給我吧!
wangxinxin
  1樓 個性首頁 | 博客 | 信息 | 搜索 | 郵箱 | 主頁 | UC


加好友 發短信
等級:青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊:2010-11-12 11:08:23
獲取SQL Server數據庫里表占用容量大小  發帖心情 Post By:2010-12-13 13:02:13

其實只要使用系統內置的存儲過程sp_spaceused就可以得到表的相關信息
3 U% E8 y1 T) I$ O# N  $ I4 B' F7 G  Z* ]! [
  如:sp_spaceused 'tablename'7 t0 P- Y! g# Q  l( z6 V+ t+ t
  
( F! n! ?; w# ?+ w  以下是為了方便寫的一個存儲過程,目的是把當前的所有表的相關信息全部都保存在一個指定的表里面
4 |' |* @8 n& m+ R' S+ H  . G9 S- j2 E- }( T
  CREATE PROCEDURE get_tableinfo AS0 ~: d% ^: x( @: `& ~2 n) R% }3 y7 y
  
2 I- l$ @4 T. b1 a0 X0 P7 n, U  if not exists (select * from dbo.sysobjects where id =object_id(N'[dbo].[tablespaceinfo]') and OBJECTPROPERTY(id,N'IsUserTable') = 1)6 r5 P: p0 T) z6 ]1 e2 ~
  create table tablespaceinfo             --創建結果存儲表1 m- M6 q6 V" v( t8 ~/ p
  (nameinfo varchar(50) ,
4 @# X2 M4 X0 ?) ~# }# L  B, x  rowsinfo int , reserved varchar(20) ,# q6 R; u6 X' M2 p0 F+ o
  datainfo varchar(20) ,9 {. `# X" Q- C* }( e
  index_size varchar(20) ,
% _9 O& v5 r7 u; q4 L7 Y  G  unused varchar(20) )
) b/ K4 J8 \& X; P; W5 L  + }& f3 b6 S8 i
  delete from tablespaceinfo --清空數據表: {* Q5 K1 U; h) i* H6 Z: n9 l
  
9 f7 s6 y6 x/ n9 F/ D2 M% n/ J  declare @tablename varchar(255) --表名稱
  V$ C& u& G$ Q! w, L/ J' O/ k  
: Z( b8 T4 @5 B5 a; i  declare @cmdsql varchar(500)
4 W3 _, L# L; F8 q( ~( W  
  J% j5 r. E, x' V  DECLARE Info_cursor CURSOR FOR
% |, _) c/ l+ Y) p$ T0 O  select o.name$ g9 c; ~) Q/ |" v
  from dbo.sysobjects o where OBJECTPROPERTY(o.id, N'IsTable') = 1
1 ?5 p) X& B( d" z6 C  J  and o.name not like N'#%%' order by o.name
# b, J1 ^* ]6 [  , A; F1 u+ @$ Y# n! {+ ]  a/ i/ w
  OPEN Info_cursor
. ?9 |7 x; _2 c+ K2 ]. S4 \    k3 @/ H8 C  f. m) U
  FETCH NEXT FROM Info_cursor
1 T+ d- U- U  D! J! K+ g! i  INTO @tablename
* t7 I' M+ s  e9 t- r  
0 t3 y* A% q* {, j! I) Y4 e/ m  WHILE @@FETCH_STATUS = 0
/ X1 L/ _$ L7 j2 Q  BEGIN; a$ p* @) ]$ Z$ \6 N3 _, O
  
0 C) E# b6 V5 x: a1 {; I) H  if exists (select * from dbo.sysobjects where id = object_id(@tablename) and OBJECTPROPERTY(id, N'IsUserTable') = 1)+ x0 P) `& A8 F. f
  execute sp_executesql+ S% ?9 T' Z" _, C
  N'insert into tablespaceinfo exec sp_spaceused @tbname',9 p  h4 n) g0 L% i: ?
  N'@tbname varchar(255)',) n( _! ?5 g% }4 b0 }6 n, c
  @tbname = @tablename/ V$ b3 f0 q. i3 I/ ~
  * @" Q# O4 o0 P6 ]) s" U3 i
  FETCH NEXT FROM Info_cursor" z% K3 O3 D$ n) J; A4 k+ p% X
  INTO @tablename
2 a, w* c- b' o  END
. r! Q4 {( O) \  2 \: [4 R* b6 P* Q) z$ Q7 B' K  ?9 a2 l
  CLOSE Info_cursor
" L$ l9 f4 H  p7 [& f9 [8 z$ Y  DEALLOCATE Info_cursor  P4 U/ H% M7 e1 U8 v* a. B
  GO+ x! `/ L+ l4 q7 M9 Q. F4 m9 B
  * k* S8 B: \# R0 n1 H9 E
  執行存儲過程
; o' F) N2 B& b% `8 K8 Q  : z$ h1 y8 |2 l, q( v& y( ~/ M$ y
  exec get_tableinfo
9 [! J0 Z) U( r9 d5 ^- y  * A, h- `1 K/ N/ i; \  U, {
  查詢運行該存儲過程后得到的結果
" ~% O5 Q$ p( N+ I; z  ' @, R3 b6 M8 |% o8 @
  select *
" x) R3 A8 Q8 |3 d) W' E8 \. S  from tablespaceinfo: p+ S, ~! T" S8 D
  order by cast(left(ltrim(rtrim(reserved)) , len(ltrim(rtrim(reserved)))-2) as int) desc* C6 A. s3 a' r4 I2 }+ X
   $ g+ Y; ~4 s* w8 y

圖片點擊可在新窗口打開查看


支持(0中立(0反對(0單帖管理 | 引用 | 回復 回到頂部

返回版面帖子列表

獲取SQL Server數據庫里表占用容量大小








簽名
主站蜘蛛池模板: 久久国产真实乱对白| 亚洲一区爱区精品无码| 激情五月激情综合网| 成年女人男人免费视频播放| 亚洲色婷婷综合久久| 久久久久久久性| chinese真实露脸hotmilf| 狠狠干最新网址| 国产欧美综合一区二区三区| 中文字字幕在线精品乱码app| 欧美极度另类videos| 国产乱偷国产偷高清| 99久久99这里只有免费费精品| 日韩女同互慰专区| 免费人成视频x8x8入口| 亚洲天堂2016| 性色av一区二区三区| 亚洲日本va午夜中文字幕一区| 里番库全彩本子彩色h可知子| 处破女18分钟完整版| 久久男人的天堂色偷偷| 狠狠色狠狠色很很综合很久久| 国产影片中文字幕| 中国speakingathome宾馆学生 | 成人年无码AV片在线观看| 亚洲国产精品网| 美女扒开胸罩露出奶了无遮挡免费 | 最近免费中文字幕mv电影| 午夜福利一区二区三区高清视频 | 女人国产香蕉久久精品| 久久精品成人国产午夜| 男人j进女人p一进一出视频| 国产在线98福利播放视频免费| 99ri精品国产亚洲| 无套进入30p| 亚洲午夜久久久精品电影院| 精品91一区二区三区| 国产成人啪精品| 91精品国产综合久久精品| 无码国模国产在线观看| 亚洲中文精品久久久久久不卡 |