zoukankan      html  css  js  c++  java
  • 查看SQL-SERVER数据库及各个表的数据量及占用空间大小

    1、查看某个数据库,直接执行存储过程sp_spaceused即可

    exec sp_spaceused;

    2、查看某个表,在存储过程后面加上表名即可

    EXEC sp_spaceused '表名';

    3、查看该数据库中的所有表,可以写一个存储过程,然后执行即可

    存储过程如下:

    -- =============================================
    -- 说明:更新查询数据库中各表的大小,结果存储到数据表中
    -- =============================================
    CREATE PROCEDURE [dbo].[P_UpdateTableSpaceInfo]
    AS
    BEGIN
        --查询是否存在结果存储表
        IF NOT EXISTS (SELECT * FROM sysobjects where id = OBJECT_ID(N'temp_tableSpaceInfo')
                          AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
        BEGIN
            --不存在则创建
            CREATE TABLE temp_tableSpaceInfo
            (name NVARCHAR(128), 
            rows char(11), 
            reserved VARCHAR(18),
            data VARCHAR(18),
            index_size VARCHAR(18),
            unused VARCHAR(18))
        END
        --清空数据表
        DELETE FROM temp_tableSpaceInfo
     
        --定义临时变量在遍历时存储表名称
        DECLARE @tablename VARCHAR(255)
     
        --使用游标读取数据库内所有表表名
        DECLARE table_list_cursor CURSOR FOR 
        SELECT name FROM sysobjects 
        WHERE OBJECTPROPERTY(id, N'IsTable') = 1 AND name NOT LIKE N'#%%' ORDER BY name
     
        --打开游标
        OPEN table_list_cursor
        --读取第一条数据
        FETCH NEXT FROM table_list_cursor INTO @tablename 
     
        --遍历查询到的表名
        WHILE @@FETCH_STATUS = 0
        BEGIN
            --检查当前表是否为用户表
            IF EXISTS (SELECT * FROM sysobjects WHERE id = OBJECT_ID(@tablename) 
                          AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
            BEGIN
                --当前表则读取其信息插入到表格中
                EXECUTE sp_executesql N'INSERT INTO temp_tableSpaceInfo 
                EXEC sp_spaceused @tbname', N'@tbname varchar(255)', @tbname = @tablename
            END
            --读取下一条数据
            FETCH NEXT FROM table_list_cursor INTO @tablename 
        END
     
        --释放游标
        CLOSE table_list_cursor
        DEALLOCATE table_list_cursor
    END
     
    GO

     执行,查看:

    EXEC P_UpdateTableSpaceInfo
    SELECT * FROM temp_tableSpaceInfo;

  • 相关阅读:
    python eval lmbda
    python函数--day14-03
    深浅拷贝--day14-02
    数据结构与算法--排序
    数据结构与算法--栈(stack)与队列(queue)
    完全背包的计数问题
    [题解] Codeforces Round #568 (Div. 2) C题题解
    [题解] Codeforces Round #640 (Div. 4) C题 题解
    数据结构——程序设计(一)单链表功能的操作与实现
    [题解] Codeforces Round #708 (Div. 2) C1 题解报告
  • 原文地址:https://www.cnblogs.com/qingjiawen/p/15183502.html
Copyright © 2011-2022 走看看