在项目长期的运行的情况下,数据会不断地增长,为保证业务及数据的正常运行与存储,需要保证数据库表有足够的空间对数据进行存储。

在Oracle中,对于表空间的划分,Oracle使用了一种类似于Linux的mount的形式,需要时则分配一块存储空间挂载至某个表空间(附:表空间即某些表可以使用的存储空间大小)上。举个例子:相信大家应该见过大学食堂的大妈买粉面的情景,她们会把一撮撮的面分开来,当我们需要时间打卡付钱那么就给你煮一撮。Oracle的表空间分配就是这个道理,Oracle会以自己的方式将磁盘按一定的方式划分为“一块块”的,每一块的空间通常大小都是固定的4GB,这在Oracle中称之为“文件”,当某个表空间不足的时候,你只需要分配一个文件,然后将其分配给某个表空间即可。

上边所说了这么一堆就是为了弄清楚一个道理,就是当使用SQL语句来查询Oracle的表空间时,不应该以“文件”为最小粒度,因为一个表空间可能会挂有非常多的文件,那么部分文件满了,而其它一部分没有满,这个道理不必多说,被误导判断,只要不小心就会是很容易的事。比如下面这个SQL,就是不合适的:

select b.file_id as "文件ID号", b.tablespace_name as "表空间名",
b.bytes as "字节数",(b.bytes-sum(nvl(a.bytes,0))) as "已使用",
sum(nvl(a.bytes,0))as "剩余空间",sum(nvl(a.bytes,0))/(b.bytes)*100 as "剩余百分比"
from dba_free_space a,dba_data_files b where a.file_id=b.file_id
group by b.tablespace_name,b.file_id,b.bytes order by b.file_id

这就是一个最小粒度是文件的栗子,百度会查到很多,如果被误导,那么就该醒醒了。下面给出应该使用的表空间查询方式:

MB版:

select b.tablespace_name as "表空间名",count(distinct b.file_id) as "挂载文件数",(sum(nvl(b.bytes, 0)) - sum(nvl(a.bytes, 0))) / (1024 * 1024) as "已使用兆字节数",sum(b.bytes) / (1024 * 1024) as "表空间总兆字节数",sum(nvl(a.bytes, 0)) / (1024 * 1024) as "剩余空间",sum(nvl(a.bytes, 0)) / sum(nvl(b.bytes, 0)) * 100 as "剩余百分比"
from (select tablespace_name,file_id,sum(bytes) bytes from dba_free_space group by tablespace_name,file_id
) a
,dba_data_files bwhere b.file_id = a.file_id(+)group by b.tablespace_nameorder by b.TABLESPACE_NAME desc

GB版:

select b.tablespace_name as "表空间名",count(distinct b.file_id) as "挂载文件数",(sum(nvl(b.bytes, 0)) - sum(nvl(a.bytes, 0))) / (1024 * 1024 * 1024) as "已使用吉比特数",sum(b.bytes) / (1024 * 1024 * 1024) as "表空间总吉比特数",sum(nvl(a.bytes, 0)) / (1024 * 1024 * 1024) as "剩余空间",sum(nvl(a.bytes, 0)) / sum(nvl(b.bytes, 0)) * 100 as "剩余百分比"
from (select tablespace_name,file_id,sum(bytes) bytes from dba_free_space group by tablespace_name,file_id
) a
,dba_data_files bwhere b.file_id = a.file_id(+)group by b.tablespace_nameorder by b.TABLESPACE_NAME desc

当然,除了SQL,那么,如果你的远程机器是Win的,且安装了Oracle的客户端,那么就可以使用Oracle自带的 Enterprise Manager Console 工具(打开时会弹出一个Java的一个Fram,但是不用管),最好使用带有DBA权限的用户登录,在存储目录下选择表即可直接查看表空间大小。是不是很直观?哦,对了,用工具和上边的SQL语句的区别是,SQL不会查询出Temp临时表空间,但是工具里面会有。当然你还可以使用这个工具来分配表空间,可干的事很多,在于你是否花时间去干一把。

Oracle查询表空间相关推荐

  1. 查oracle表空间最大的表,查询表空间大小(oracle查询表空间大小)

    查询表空间大小(oracle查询表空间大小) 2020-07-24 11:36:31 共10个回答 使用以下语句查看当前用户每个表占用空间的大小:selectsegment_name,sum(byte ...

  2. Oracle查询表空间的每日增长量

    Oracle查询表空间的每日增长量 ---10g和11g SELECT a.snap_id,c.tablespace_name ts_name,to_char(to_date(a.rtime, 'mm ...

  3. oracle查询表空间和用户名,教你查询Oracle中的表空间

    教你查询Oracle中的表空间 提到表空间大家可能都不会陌生,它是数据库中最大的逻辑单位与存储空间单位,数据库系统通过表空间为数据库对象分配空间.表空间在物理上体现为磁盘数据文件,每一个表空间由一个或 ...

  4. 12c表空间不存在_一文看懂Oracle查询表空间的每日增长量和历史情况统计

    概述 今天主要总结一下Oracle表空间每日增长和历史情况统计的一些脚本,仅供参考. 11g统计表空间的每日增长量 SELECT a.snap_id, c.tablespace_name ts_nam ...

  5. oracle 临时表空间满了_精心总结--Oracle查询表空间的每日增长量和历史情况统计脚本...

    概述 今天主要总结一下Oracle表空间每日增长和历史情况统计的一些脚本,仅供参考. 11g统计表空间的每日增长量 SELECT a.snap_id, c.tablespace_name ts_nam ...

  6. 查看oracle资源使用情况,Oracle查询表空间使用情况

    --查询表空间使用情况SELECT UPPER(F.TABLESPACE_NAME) "表空间名",D.TOT_GROOTTE_MB "表空间大小(M)",D. ...

  7. oracle 查询表空间所有表、及表所有的表空间

    查询表空间所有表:select table_name from all_tables where TABLESPACE_NAME='表空间' 表空间名字一定要大写. 查询表所在的表空间:select ...

  8. Oracle查询表空间使用情况

    --查询表空间使用情况 SELECT UPPER(F.TABLESPACE_NAME) "表空间名", D.TOT_GROOTTE_MB "表空间大小(M)", ...

  9. 查询oracle表空间有什么数据,oracle查询表空间使用情况与查询有哪些数据库实例在运行...

    select a.tablespace_name "表空间名称", 100-round((nvl(b.bytes_free,0)/a.bytes_alloc)*100,2) &qu ...

最新文章

  1. 使用级联功能实现蓝绿部署和金丝雀发布
  2. idea启动tomcat很慢_idea使用maven创建web项目
  3. Alphabet Project Loon项目负责人半年再度易人
  4. python 完全面向对象_史上最全的Python面向对象知识点疏理
  5. SnapGene 4.3.6 win 中文完美不闪退
  6. kohana::message 和config
  7. linux命令查询邮件发送状态,Linux发邮件之mail命令详解
  8. 【luogu P5022 旅行】 题解
  9. Python面向对象之结构与成员
  10. struts2路径配置_Struts 2结果路径配置示例
  11. python填充nan_Pandas的数据清洗-填充NaN数据
  12. 【人脸识别】基于模板匹配算法实现人脸识别matlab源码
  13. HIMSS 对EHR的定义
  14. 华为鸿蒙os操作系统有pc版,华为开源操作系统 鸿蒙OS 升级版曝光,打通PC等一大批硬件...
  15. vite:vue中引入图片报错require is not defined
  16. Java学习---控制流程与方法
  17. FontAwesome图标选择器
  18. 基于K210的MNIST手写数字识别
  19. 抖音推荐算法!(教你如何上热门)
  20. Jersey框架的使用---使用环境的搭建和基础使用

热门文章

  1. 周易六十四卦详解 (通俗易懂版)
  2. Web前端学习笔记——JavaScript之面向对象游戏案例:贪吃蛇
  3. 市场营销环境分析的方法
  4. 新型自动站业务用计算机采用,探析新型自动气象站测报业务软件运行故障及解决对策...
  5. 代码解读六 文件名“Ano_AltCtrl.c”
  6. enumerate使用方法
  7. 程序员应该知道的国外技术网站
  8. 【Redis】Failed listening on port 6379 (TCP), aborting.
  9. isNaN、Number.isNaN、isFinite、Number.isFinite
  10. NAS折腾系列二:番外篇之瘦客户机+DoraOS实现远程办公