精华内容
下载资源
问答
  • 查询数据库空间使用状况/*-- ===================================================================版本: SQL Server 2000, 2005功能: 查询数据库空间使用状况===================================================...
     

    查询数据库空间使用状况

    /*-- ===================================================================

    版本: SQL Server 2000, 2005

    功能: 查询数据库空间使用状况

    =================================================================== --*/

     

    USE [要查询空间信息的库名]

    GO

     

    SELECT

        ServerName = CONVERT(sysname, SERVERPROPERTY('ServerName')),

        DatabaseID = DB_ID(),

        DatabaseName = DB_NAME(),

        DatabaseSize = CONVERT(decimal(15, 2), DB.DbSize / SPER.PageSperMB),

        DataFileSize = CONVERT(decimal(15, 2), DB.DataFileSize / SPER.PageSperMB),

        LogFileSize = CONVERT(decimal(15, 2), DB.LogFileSize / SPER.PageSperMB),

        UnAllocated = CONVERT(decimal(15, 2), (DB.DataFileSize - DATA.Reserved) / SPER.PageSperMB),

        DataReserved = CONVERT(decimal(15, 2), DATA.Reserved / SPER.PageSperMB),

        DataSize = CONVERT(decimal(15, 2), (DATA.DataSize + DATA.[TextSize]) / SPER.PageSperMB),

        IndexSize = CONVERT(decimal(15, 2), (DATA.IndexSize - DATA.DataSize - DATA.[TextSize]) / SPER.PageSperMB),

        UnUsedSize = CONVERT(decimal(15, 2), (DATA.Reserved - DATA.IndexSize) / SPER.PageSperMB),

        CountProcedure = OBJS.ProcudureS,

        CountFunction = OBJS.FunctionS,

        CountTrigger = OBJS.TriggerS,

        CountUserTable = OBJS.TableS,

        CountView = OBJS.ViewS,

        RecoveryMode = CONVERT(varchar(12), DATABASEPROPERTYEX(DB_NAME(), N'Recovery')),

        PrimaryDrive = CONVERT(char(1), (

                SELECT TOP 1 UPPER(LEFT(FileName, 1))

                FROM master.dbo.sysdatabases WITH(NOLOCK)

                WHERE dbid = DB_ID()))

    FROM(

        SELECT

            DbSize = ISNULL(SUM(CONVERT(dec(15), size)), 0),

            DataFileSize = ISNULL(SUM(CASE WHEN status & 0x40 =0 THEN CONVERT(dec(15), size) ELSE 0 END), 0),

            LogFileSize = ISNULL(SUM(CASE WHEN status & 0x40 =0 THEN 0 ELSE CONVERT(dec(15), size) END), 0)

        FROM dbo.sysfiles WITH (NOLOCK)

    )DB

        CROSS JOIN(

            SELECT

                Reserved = ISNULL(SUM(CASE WHEN indid IN (0, 1, 255) THEN CONVERT(dec(15), reserved) ELSE 0 END), 0),

                DataSize = ISNULL(SUM(CASE WHEN indid < 2 THEN CONVERT(dec(15), dpages) ELSE 0 END), 0),

                [TextSize] = ISNULL(SUM(CASE WHEN indid = 255 THEN CONVERT(dec(15), used) ELSE 0 END), 0),

                IndexSize = ISNULL(SUM(CASE WHEN indid IN (0, 1, 255) THEN CONVERT(dec(15), used) ELSE 0 END), 0)

            FROM dbo.sysindexes WITH(NOLOCK)

            WHERE (indid < 2 OR indid = 255)

        )DATA

        CROSS JOIN(

            SELECT PageSperMB = 1048576. / low

            FROM master.dbo.spt_values

            WHERE number = 1

                    AND type = 'E'

        )SPER

        CROSS JOIN(

            SELECT

                TableS = SUM(CASE xtype WHEN 'U' THEN 1 ELSE 0 END),

                ProcudureS = SUM(CASE xtype WHEN 'P' THEN 1 ELSE 0 END),

                ViewS = SUM(CASE xtype WHEN 'V' THEN 1 ELSE 0 END),

                TriggerS = SUM(CASE xtype WHEN 'TR' THEN 1 ELSE 0 END),

                FunctionS = SUM(CASE WHEN xtype IN('FN', 'IF', 'TF') THEN 1 ELSE 0 END)

            FROM dbo.sysobjects

        )OBJS

    GO

    展开全文
  • sp_spaceused [[ @objname= ] 'objname' ] [,[ @updateusage= ] 'updateusage' ][@objname=]'objname' ...如果提供完全限定对象名称(包括数据库名称),则数据库名称必须是当前数据库的名称。 ...
    sp_spaceused [[ @objname = ] 'objname' ] 
    [,[ @updateusage = ] 'updateusage' ]

    @objname='objname'

    请求其空间使用信息的表、索引视图或队列的限定或非限定名称。 仅当指定限定对象名称时,才需要使用引号。 如果提供完全限定对象名称(包括数据库名称),则数据库名称必须是当前数据库的名称。

    如果未指定 objname,则返回整个数据库的结果。

    objname 的数据类型为 nvarchar(776),默认值为 NULL。

    @updateusage='updateusage'

    指示应运行 DBCC UPDATEUSAGE 以更新空间使用信息。 当未指定 objname 时,将对整个数据库运行该语句;否则,将对 objname 运行该语句。 值可以为 true 或false updateusage 的数据类型为 varchar(5),默认值为 false

    exec sp_spaceused

    database_name:数据库名称

    database_size:当前数据库的大小 (MB)。 database_size 包括数据和日志文件

    unallocated space:未保留供数据库对象使用的数据库空间。

     

    reserved:由数据库中对象分配的空间总量。

    data:数据使用的空间总量。

    index_size:索引使用的空间总量。

    unused:为数据库中的对象保留但尚未使用的空间总量。

     

    EXEC sys.sp_spaceused N'userinfo'  --查询指定的表名的空间使用情况

     

    database_size 将始终大于 reserved + unallocated_space 之和,因为该值包括日志文件的大小,而 reserved 和 unallocated_space 只考虑数据页。

    在这两个结果集的 index_size 中,都包括了 XML 索引和全文索引使用的页。 当指定 objname 时,对象的 XML 索引和全文索引所使用的页将计算在 reserved 和index_size 结果中。

    如果为具有空间索引的数据库或对象计算空间使用情况,则空间大小列(例如,database_size、 reserved 和 index_size)将包含空间索引的大小。

    指定 updateusage 时,SQL Server 数据库引擎将扫描数据库中的数据页,并根据每个表所使用的存储空间对 sys.allocation_units 和 sys.partitions 目录视图进行必要的更正。 在某些情况下(例如删除索引后、表的空间信息不是当前信息时),需要执行该操作。 updateusage 在大型表或数据库上运行会花费一些时间。 只有当怀疑所返回的值不正确,而且该进程对数据库中的其他用户或进程没有负面影响时,才应使用 updateusage 如果首选该进程,则可以单独运行 DBCC UPDATEUSAGE。

    简单查询表记录数从大到小排序

    select max(object_name(object_id)) as tablename, sum(row_count) rows from sys.dm_db_partition_stats
    where index_id<2
    group by object_id
    order by sum(row_count) desc

    简单查询表数据Size从大到小排序

    select max(object_name(object_id)) as tablename, (sum(in_row_data_page_count + lob_used_page_count + row_overflow_used_page_count) *8) as size_kb from sys.dm_db_partition_stats
    where index_id<2
    group by object_id
    order by sum(in_row_data_page_count + lob_used_page_count + row_overflow_used_page_count)desc

     

    转载于:https://www.cnblogs.com/gjhjoy/p/3517324.html

    展开全文
  • 查询数据库空间大小

    千次阅读 2009-06-08 20:38:00
    Query table space: SELECT SUM(currentperm)/1024/1024/1024 AS GB FROM dbc.tablesize WHERE tablename = table1 AND databasename = db1Query database size: SELECT SUM(currentperm)/1024

    Query table space: 

    SELECT SUM(currentperm)/1024/1024/1024 AS GB

    FROM dbc.tablesize

    WHERE tablename = 'table1' AND databasename = 'db1'

    Query database size:    

    SELECT SUM(currentperm)/1024/1024/1024 AS SpaceUsed, SUM(maxperm)/1024/1024/1024 AS MaxSpace

    FROM dbc.diskspace

    WHERE databasename = 'db1'

    List all tables space in a database:   

    SELECT tablename, SUM(currentperm)/1024/1024/1024 AS GB

    FROM dbc.tablesize

    WHERE databasename = 'db1'

    GROUP BY 1

    ORDER BY 2

     

     

    展开全文
  • 2、查询数据库里各个表占用的空间大小 exec sp_MSforeachtable "exec sp_spaceused '?'"; 3、清空数据库表 Truncate table 表名; 4、将数据库文件压缩到1 MB DBCC SHRINKFILE ('数据库文件名或者日志文件名'...

    前言:

    我来讲讲为什么要收集这些sql语句代码,最近在收集一些.NET程序源码,但发现源码里的sql server 2008数据库文件都非常大,基本都是几G大小,毫无疑问这些都是别人用过的数据,如果直接重新打包源码,那么压缩包会非常大,会占用大量的空间,因此就需要对数据库进行清理,并且优化。除了要删除数据记录外,还需要删除数据库日志,下面这些sql语句都是非常实用的!

    1、查询数据库大小

    exec sp_spaceused;

    2、查询数据库里各个表占用的空间大小

    exec sp_MSforeachtable "exec sp_spaceused '?'";

    3、清空数据库表

    Truncate table 表名;

    4、查看有关数据库文件的信息 

    select * from sys.database_files;

    5、将数据库文件压缩到1 MB

    DBCC SHRINKFILE ('数据库文件名或者日志文件名', 1);
    GO
    

    6、查询外键和删除外键

    --查询外键
    SELECT * FROM sys.foreign_keys
    WHERE referenced_object_id=OBJECT_ID('被引用的表名');
    --删除外键 删除掉引用表的外键
    ALTER TABLE dbo.引用的表名 DROP constraint 查询到的外键名;

    7、清空日志文件

    --查询数据库日志文件名
    USE 数据库名称
    GO 
    SELECT name FROM SYS.database_files WHERE type_desc='LOG'
    --清空日志
    DBCC SHRINKFILE (N'日志文件名称' , 0,TRUNCATEONLY) 
    GO 

     

    展开全文
  • 查询数据库占用空间,数据库的占用空间。方便管理表数据
  • 查询数据库空间

    2020-09-27 16:08:51
    SELECT TABLE_SCHEMA, CONCAT(TRUNCATE(SUM(data_free)/1024/1024,2),'MB') AS data_free, CONCAT(TRUNCATE(SUM(index_length)/1024/1024,2),'MB') AS index_size FROM ...TABLE_SCHEMA = '数据库名';
  • MySQL查询数据库空间容量 mysql -h<ip> -P<port> -u<root> -p<password> <库> -e "select concat(round(sum(DATA_LEN_LENGTH/1024/1024),2)M,'MB') as data from information_...
  • 2与普通表空间不同的地方在于大文件表空间只对应唯一一个数据文件或临时文件,普通表空间可最多1022个数据文件或临时文件 3大文件表空间对应文件可达4G个数据块大小,普通表空间对应的文件最大可达4M个数据块大小. ...
  • 工作中遇到 需要统计MySQL数据库中表的存储内存大小,这篇博客亲测可用,因此转载以做收藏,本文转自 ...查询各个数据库占用空间大小 select TABLE_SCHEMA, concat(truncate(sum(data_length)/1024/1024,2),' ...
  • 2与普通表空间不同的地方在于大文件表空间只对应唯一一个数据文件或临时文件,普通表空间可最多1022个数据文件或临时文件 3大文件表空间对应文件可达4G个数据块大小,普通表空间对应的文件最大可达4M个数据块大小. ...
  • 查询数据库占用空间大小

    千次阅读 2019-04-19 22:27:00
    2019独角兽企业重金招聘Python工程师标准>>> ...
  • Sql Server查询数据库文件大小和剩余空间,数据库日志压缩A、磁盘空间的使用情况及各数据库数据文件及日志文件的大小及使用利用率1、查询各个磁盘分区的剩余空间:2、查询数据库的数据文件及日志文件的相关信息3、...
  • 空间数据库查询

    2018-12-28 11:17:38
    空间数据库查询 最近邻查询(NN) 最近邻(Nearest Neighbors, NN)查询作为基于位置服务的重要支持性技术之一,引起了众多学者的广泛关注和深入研究。这种查询类型通常应用于内容的相似性检索、模式识别、地理信息...
  • SQL语句: select b.file_name 物理文件名, ...b.tablespace_name 表空间, b.bytes/1024/1024 大小M, (b.bytes-sum(nvl(a.bytes,0)))/1024/1024 已使用M, substr((b.bytes-sum(nvl(a.bytes,0)))/(b.bytes)*10
  • dba_data_files:数据库数据文件信息表。可以统计表空间大小(总空间大小)。 dba_free_space:可以统计剩余表空间大小。 增加表空间即向表空间增加数据文件,表空间大小就是数据文件总大小。   检查Oracle各个表...
  • 查询数据库的表空间

    2019-10-08 13:51:22
    select file_name , tablespace_name from dba_data_files; 转载于:https://www.cnblogs.com/haoerlv/p/7234782.html
  • 1.查询数据库所占空间 SELECT Concat( Round((sum(DATA_LENGTH)+sum(INDEX_LENGTH))/1024/1024,2),'MB') as datas FROM information_schema.TABLES where TABLE_SCHEMA='map'; 2.查询数据库里面各个表所占空间 ...
  • 主要介绍了SQL Server查询数据库中表使用空间信息实现脚本,本文直接给出实现代码,需要的朋友可以参考下
  • 有时候在数据库运维时会发现数据空间不足导致一系列的数据读写问题,因此定期梳理很有必要,以下是从网上找的部分DB管理的SQL,特此记录一下: SELECT a.tablespace_name "表空间名", a.bytes / 1024 / ...
  • oracle查询数据库记录条数和空间占用,,最最完整的代码..
  • 下面以oracle9i为例,详细介绍查询Oracle数据库空间信息和数据文件信息的方法。一、查看Oracle数据库中表空间信息的方法1、查看Oracle数据库中表空间信息的工具方法:使用oracleenterprisemanagerconsole工具,这...
  • 空间名", TOTAL / 1024 / 1024 表空间大小, FREE / 1024 / 1024 表空间剩余大小, (TOTAL - FREE) / 1024 / 1024 表空间使用大小, ROUND((TOTAL - FREE) / TOTAL, 4) * 100 "使用...
  • 当你想删除数据库中的记录时,你不知道哪些表有记录,该脚本可以查询sql数据库空间,并可以按表名、记录数、空间大小等排序,
  • 空间数据库空间查询实验包。使用QGIS和PostGiS做的一些简单的查询代码实验,熟悉空间查询的方法。该实验包包含实验数据、实验指导书及实验报告。
  • 当我们无法从oracler的登录界面查询空间的情况的时候可以用这个SQL语句查询出表空间的情况
  • 查看mysql数据库和表所占用空间 1、数据库所占空间 SELECT CONCAT(TRUNCATE(SUM(data_length)/1024/1024,2),'MB') AS data_size, CONCAT(TRUNCATE(SUM(max_data_length)/1024/1024,2),'MB') AS max_data_size, ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,892
精华内容 4,356
关键字:

查询数据库空间