zoukankan      html  css  js  c++  java
  • SQL中查看数据库各表的大小

    SQL中查看数据库各表的大小

    编写人:CC阿爸

     

    2014-6-17

     

    在日常SQL数据库的操作中,如何快速的查询数据库中各表中数据的大小。

    以下有两种方法供参考:

    第一种:

    create table #t(name varchar(255), rows bigint, reserved varchar(20), data varchar(20), index_size varchar(20), unused varchar(20))

    exec sp_MSforeachtable "insert into #t exec sp_spaceused '?'"

    select * from #t order by rows desc

     

    select 'select * from '+name  from #t order by rows desc

     

    drop table #t

     

    第二种:

    CREATE PROCEDURE get_tableinfo AS

     

    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') =

         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

     

    ----执行存储过程

    --exec get_tableinfo

    --

    --查询运行该存储过程后得到的结果

    select * from tablespaceinfo 

    order by cast(left(ltrim(rtrim(reserved)) , len(ltrim(rtrim(reserved)))-2) as int) desc

  • 相关阅读:
    Postman+Newman生成接口测试报告
    Spring Boot系列 – 2. Spring Boot提供的特性
    Spring Boot系列 – 5. 不同的环境使用不同的配置
    Spring Boot系列 – 4. 读取配置文件(application.yml)中的属性值
    MySQL高可用之MHA安装
    恢复误删除表黑科技之relay log大法(续)
    恢复误删除表黑科技之relay log大法
    关于mysqldump备份非事务表的注意事项
    利用binlog server及Xtrabackup备份集来恢复误删表(drop)
    基于Xtrabackup备份集来恢复某个误删除的表(drop)
  • 原文地址:https://www.cnblogs.com/bribe/p/3791704.html
Copyright © 2011-2022 走看看