文章出處
文章列表
這個例子是關于計算數據表中所有字段在一定的數據量下占用存儲空間的情況,使用了sys.tables,SYSTYPES和SYSCOLUMNS幾張系統表,意思就是遍歷所有數據表,然后對表的所以字段的length進行sum,就可以了,方法很容易理解,沒什么技術含量,但即起到了重要的效果。
DECLARE @tableName VARCHAR(50) DECLARE @totalRecord BIGINT SET @tableName = 'user_info' SET @totalRecord = 1000000 SELECT @tableName + '表中有' + LTRIM(STR(@totalRecord)) + '條數據時,占用的空間為:' + LTRIM(STR(SUM(c.length) * @totalRecord / 1024.0 / 1024.0)) + 'MB' FROM SYSTYPES T , SYSCOLUMNS C WHERE T.XTYPE = C.XTYPE AND C.ID = ( SELECT ID FROM SYSOBJECTS WHERE NAME = @tableName ) SELECT TT.NAME , DATA = @TOTALRECORD , SIZE = ( SELECT STR(SUM(C.LENGTH) * @TOTALRECORD / 1024.0 / 1024.0) + 'MB' FROM SYSTYPES T , SYSCOLUMNS C WHERE T.XTYPE = C.XTYPE AND C.ID = TT.OBJECT_ID ) FROM SYS.TABLES AS TT ORDER BY TT.NAME
執行結果如下
怎么樣,挺有意思吧!
文章列表
全站熱搜