SQLSERVER:

SQLSERVER一个库的文件分为数据文件(行数据)和日志文件两个文件,详情可以在数据库的属性->文件中查看。

在资源管理器中打开文件所在路径可以直接看到这两个文件

但是,大多数时候我们的数据库安装在远程服务器上,在不远程的情况下,可以使用如下SQL语句:

1、查询各个磁盘分区的剩余空间(就是C盘还有多少空间,D盘还有多少...):

Exec master.dbo.xp_fixeddrives

2、查询数据库的数据文件及日志文件的相关信息(包括文件组、当前文件大小、文件最大值、文件增长设置、文件逻辑名、文件路径等):

select * from [数据库名].[dbo].[sysfiles]
--转换文件大小单位为MB:
select name, convert(float,size) * (8192.0/1024.0)/1024. from [数据库名].dbo.sysfiles

3、查询当前数据库的磁盘使用情况:

Exec sp_spaceused

database_size:数据库大小(就是数据文件和日志的大小),也就是上面size相加的值(字节换算成兆)

unallocated space:未分配空间。

4、查询数据库服务器各数据库日志文件的大小及利用率:

DBCC SQLPERF(LOGSPACE)

5、查看数据文件占用(所需权限较大):

DBCC showfilestats  

6、一个全面的SQL:

SELECT a.name [文件名称]  ,cast(a.[size]*1.0/128 as decimal(12,1)) AS [文件设置大小(MB)]  ,CAST( fileproperty(s.name,'SpaceUsed')/(8*16.0) AS DECIMAL(12,1)) AS [文件所占空间(MB)]  ,CAST( (fileproperty(s.name,'SpaceUsed')/(8*16.0))/(s.size/(8*16.0))*100.0  AS DECIMAL(12,1)) AS [所占空间率%]  ,CASE WHEN A.growth =0 THEN '文件大小固定,不会增长' ELSE '文件将自动增长' end [增长模式]  ,CASE WHEN A.growth > 0 AND is_percent_growth = 0 THEN '增量为固定大小'  WHEN A.growth > 0 AND is_percent_growth = 1 THEN '增量将用整数百分比表示'  ELSE '文件大小固定,不会增长' END AS [增量模式]  ,CASE WHEN A.growth > 0 AND is_percent_growth = 0 THEN cast(cast(a.growth*1.0/128as decimal(12,0)) AS VARCHAR)+'MB'  WHEN A.growth > 0 AND is_percent_growth = 1 THEN cast(cast(a.growth AS decimal(12,0)) AS VARCHAR)+'%'  ELSE '文件大小固定,不会增长' end AS [增长值(%或MB)]  ,a.physical_name AS [文件所在目录]  ,a.type_desc AS [文件类型]
FROM sys.database_files  a
INNER JOIN sys.sysfiles AS s ON a.[file_id]=s.fileid
LEFT JOIN sys.dm_db_file_space_usage b ON a.[file_id]=b.[file_id]  

其中的文件设置大小就是该数据库的文件大小

ORACLE:

在PL/SQL中我没有找到有关于数据库文件的信息,有可能还没找到吧。所以直接采用查询的方式

1、SYS.DBA_DATA_FILES:

select * from dba_data_files;

这边的FILE_NAME就是文件路径,BYTES就是所占空间了。

根据这个路径找到数据文件:

2、一个全面的SQL:

SELECT UPPER(F.TABLESPACE_NAME) "表空间名",D.TOT_GROOTTE_MB "表空间大小(M)",D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),'990.99') || '%' "使用比",F.TOTAL_BYTES "空闲空间(M)",F.MAX_BYTES "最大块(M)"FROM (SELECT TABLESPACE_NAME,ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTESFROM SYS.DBA_FREE_SPACEGROUP BY TABLESPACE_NAME) F,(SELECT DD.TABLESPACE_NAME,ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MBFROM SYS.DBA_DATA_FILES DDGROUP BY DD.TABLESPACE_NAME) DWHERE D.TABLESPACE_NAME = F.TABLESPACE_NAMEORDER BY 1;

转载于:https://www.cnblogs.com/yangsirc/p/10026914.html

SQLSERVER 和 ORACLE 查询数据库文件大小相关推荐

  1. SQLServer访问Oracle查询性能问题解决

    原文:SQLServer访问Oracle查询性能问题解决 1. 问题 系统有个模块,需要查询Oracle数据库中的数据.目前是通过建立链接服务器实现的. SQLServer访问Oracle实现 可参考 ...

  2. MS Sql Server查询数据库文件大小和剩余空间,数据库日志压缩

    Sql Server查询数据库文件大小和剩余空间,数据库日志压缩 A.磁盘空间的使用情况及各数据库数据文件及日志文件的大小及使用利用率 1.查询各个磁盘分区的剩余空间: 2.查询数据库的数据文件及日志 ...

  3. oracle查询数据库名、实例名、ORACLE_SID

    oracle查询数据库名.实例名.ORACLE_SID 查询oracle数据库的数据库名.实例名.ORACLE_SID 数据库名.实例名.数据库域名.全局数据库名.服务名 ,这是几个令很多朋友容易混淆 ...

  4. Oracle查询数据库密码哪一天过期,有效期时间,以及修改为永不过期

    1.oracle查询数据库密码哪一天过期 select username,account_status,expiry_date,profile from dba_users; 其中expiry_dat ...

  5. oracle查有哪些数据库,oracle查询数据库(oracle查询所有数据库)

    oracle查询数据库(oracle查询所有数据库) 2020-07-24 12:01:17 共10个回答 PLsql查询工具便可查询 你指所有的表吗?如果你想查数据库中所有的表的话,可以查询sele ...

  6. oracle查询数据库名、实例名等

    oracle中: 1.查询数据库名:select name,dbid from v$database;或者show parameter db_name; 2.查询实例名:select instance ...

  7. oracle数据库查实例名,oracle查询数据库名、实例名等

    oracle中: 1.查询数据库名:select name,dbid from v$database;或者show parameter db_name; 2.查询实例名:select instance ...

  8. Oracle查询数据库中所有的表名称

    1.查询数据库中所有的表名称和每张表所对应的数据条数 select t.table_name,t.num_rows from user_tables t; 此处需要注意的是:在查询每张表所对应的数据条 ...

  9. Mysql、SqlServer、Oracle三大数据库的区别

    一.MySQL 优点: 体积小.速度快.总体拥有成本低,开源: 支持多种操作系统: 是开源数据库,提供的接口支持多种语言连接操作 : MySQL的核心程序采用完全的多线程编程.线程是轻量级的进程,它可 ...

最新文章

  1. mybatis =或这个=提示错误Tag name expecte问题解决
  2. Python爬虫案例-获取最新的中国行政区域划分
  3. TCP断开连接为什么是4次挥手?
  4. 常规流之块级格式化上下文(Block Formatting Contexts)
  5. java 为什么序列化_java类为什么要序列化
  6. 工业交换机厂家有哪些?工业交换机十大品牌供应商!
  7. 2018.8.26 Spring自学如门
  8. Steroids上的SQL Server Express Edition
  9. AI迎来重要发展契机,开发者的机会在哪里?
  10. linux C 多进程架构,linux c 多进程多线程比较
  11. QT安装后编译错误怎么办?
  12. 周杰伦 青花瓷 蒲公英的约定 我不配 彩虹 歌词和下载
  13. 计算机应用基础——计算机软件(一)
  14. 手机屏幕什么计算机,手机屏幕和电脑屏幕的区别
  15. 推荐5个JAVA前后端分离项目
  16. gmsk的matlab仿真,MSKGMSK 导师传给我的关于MSK和GMSK的一些相关MATLAB仿真源码 - 下载 - 搜珍网...
  17. yocto的hello world
  18. 星际迷航中企业号的动力系统_五月四日与您同在:《星球大战》(和《星际迷航》)如何激发现实生活中的技术...
  19. 订单导出(1688)
  20. 裁员潮下的打工人,怎么把手里的饭碗端稳?

热门文章

  1. wireshark相关协议详解和nc命令建立对话
  2. 【CyberSecurityLearning 16】单臂路由与DHCP中继+ ICMP协议+VTP
  3. Hardcoded string , should use @string resource警告 Tag start is not closed
  4. HTML文字格式汇总
  5. 处理器在实施任务切换时的操作——《x86汇编语言:从实模式到保护模式》读书笔记39
  6. ubuntu下docker的安装及更换镜像源
  7. IDEA没有MVC视图
  8. S5PV210开发 -- I2C 你知道多少?(二)
  9. C语言再学习 -- vim常用快捷键(转)
  10. android纹理缓存,Android OpenGLES(七) 理解纹理与纹理过滤