zoukankan      html  css  js  c++  java
  • MS SQL SERVER 簡易取得資料表實體檔案大小

    --MS SQL SERVER 簡易取得資料表實體檔案大小 
    --
    下列的方法只能做估算,但大致可以解決一些資料庫管理者初步觀察資料成長的方法。

    DECLARE @tblname varchar(50)            --資料表名稱(使用者資料表名稱變數)
    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[#TableStatics_TEMP]'and OBJECTPROPERTY(id, N'IsUserTable'= 1)
    DROP TABLE [dbo].[#TableStatics_TEMP]   --暫存資料表
    CREATE TABLE #TableStatics_TEMP (       --建立暫存資料表
        [name] [varchar] (50) COLLATE Chinese_Taiwan_Stroke_CI_AS NULL ,        --資料表名稱
        [rows] [varchar] (50) COLLATE Chinese_Taiwan_Stroke_CI_AS NULL ,        --資料表現有的資料列數
        [reserved] [varchar] (50) COLLATE Chinese_Taiwan_Stroke_CI_AS NULL ,    --資料庫中的物件所配置的空間大小
        [data] [varchar] (50) COLLATE Chinese_Taiwan_Stroke_CI_AS NULL ,        --資料所用的空間大小
        [index_size] [varchar] (50) COLLATE Chinese_Taiwan_Stroke_CI_AS NULL ,  --索引所用的空間大小
        [unused] [varchar] (50) COLLATE Chinese_Taiwan_Stroke_CI_AS NULL )      --保留給資料庫中之物件但尚未使用的空間大小
    DECLARE cur_TableStatics CURSOR FORWARD_ONLY FOR 
        
    SELECT name FROM sysobjects WHERE xtype='U' ORDER BY name               --取得使用者資料表名稱
    OPEN cur_TableStatics
    FETCH NEXT FROM cur_TableStatics 
    INTO @tblname
        
    WHILE @@FETCH_STATUS = 0
            
    BEGIN   
                
    INSERT #TableStatics_TEMP
                    
    EXEC sp_spaceused @tblname,@updateusage = N'TRUE'           --顯示資料表的相關磁碟空間資訊
                FETCH NEXT FROM cur_TableStatics
                
    INTO @tblname
            
    END
    CLOSE cur_TableStatics
    DEALLOCATE cur_TableStatics
    SELECT name,rows,
        
    CONVERT(varchar(18),CONVERT(NUMERIC(18,2),SUBSTRING(reserved,1,LEN(reserved)-2))/1024+ 'MB' AS reserved,
        
    CONVERT(varchar(18),CONVERT(NUMERIC(18,2),SUBSTRING(data,1,LEN(data)-2))/1024+ 'MB' AS data,
        
    CONVERT(varchar(18),CONVERT(NUMERIC(18,2),SUBSTRING(index_size,1,LEN(index_size)-2))/1024+ 'MB' AS index_siz,
        
    CONVERT(varchar(18),CONVERT(NUMERIC(18,2),SUBSTRING(unused,1,LEN(unused)-2))/1024+ 'MB' AS unused
    FROM #TableStatics_TEMP where rows <> '0'           --查詢暫存資料表資料比數不為的資料表
    DROP TABLE #TableStatics_TEMP                               --移出暫存資料表
  • 相关阅读:
    crazyflie2.0 RCC时钟知识
    quick-cocos2d-x开发工具sublime text及其强力插件QuickXDev
    [Swift通天遁地]一、超级工具-(16)使用JTAppleCalendar制作美观的日历
    [Swift]LeetCode186. 翻转字符串中的单词 II $ Reverse Words in a String II
    [SQL]LeetCode185. 部门工资前三高的员工 | Department Top Three Salaries
    [Swift通天遁地]一、超级工具-(15)使用SCLAlertView制作强大的Alert警告窗口和Input编辑窗口
    [SQL]LeetCode184. 部门工资最高的员工 | Department Highest Salary
    [Swift通天遁地]一、超级工具-(14)使用SweetAlert制作漂亮的自定义Alert窗口
    [Swift]关键字:Self、self与super
    [Swift]LeetCode964. 表示数字的最少运算符 | Least Operators to Express Number
  • 原文地址:https://www.cnblogs.com/Athrun/p/1733956.html
Copyright © 2011-2022 走看看