Oracle压缩表空间的基本步骤

 更新时间:2023年06月08日 08:29:26   作者:2一念轮回2  
这篇文章主要介绍了Oracle怎么压缩表空间,压缩表空间可能需要一些时间,具体取决于表空间的大小和数据库的负载,因此,在执行此操作之前,请确保已备份数据库以防万一,需要的朋友可以参考下

Oracle怎么压缩表空间

你可以使用 Oracle 数据库中的 ALTER TABLESPACE 语句来压缩表空间。以下是一些基本步骤:

1. 首先,使用以下语句检查表空间的当前大小:

 SELECT tablespace_name, ROUND(SUM(bytes) / 1024 / 1024, 2) AS size_mb
   FROM dba_segments
   WHERE tablespace_name = 'your_tablespace_name'
   GROUP BY tablespace_name;

2. 使用以下语句收缩表空间:

  ALTER TABLESPACE your_tablespace_name SHRINK SPACE CASCADE;

这将压缩表空间并将其大小减小到最小值。

3. 最后,再次运行第一步中的查询,以确保表空间已压缩并且大小已减小。

请注意,压缩表空间可能需要一些时间,具体取决于表空间的大小和数据库的负载。因此,在执行此操作之前,请确保已备份数据库以防万一。

oracle 表空间压缩

SELECT --B.file_name "文件名",
A.TABLESPACE_NAME "表空间名",
TOTAL "表空间大小",
FREE "表空间剩余大小",
(TOTAL - FREE) "表空间使用大小",
TOTAL / (1024 * 1024 * 1024) "表空间大小(G)",
FREE / (1024 * 1024 * 1024) "表空间剩余大小(G)",
(TOTAL - FREE) / (1024 * 1024 * 1024) "表空间使用大小(G)",
ROUND((TOTAL - FREE) / TOTAL, 4) * 100 "使用率 %"
FROM (SELECT TABLESPACE_NAME,
SUM(BYTES) FREE
FROM DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME) A,
(SELECT TABLESPACE_NAME,
-- file_name,
SUM(BYTES) TOTAL
FROM DBA_DATA_FILES
GROUP BY TABLESPACE_NAME/*,file_name*/) B
WHERE A.TABLESPACE_NAME = B.TABLESPACE_NAME;
SELECT
V.FI "文件ID",
V.TN "表空间",
V.FN "物理文件名",
V.BS "总字节数 ",
V.BS/ (1024 * 1024 * 1024) "总字节数(G)",
V.P "剩余百分比",
V.U "已使用",
V.U/ (1024 * 1024 * 1024)  "已使用(G)",
V.NS/ (1024 * 1024 * 1024) " 剩余(G)"
FROM (
select b.file_id  FI,
b.tablespace_name  TN,
b.file_name     FN,
b.bytes       BS,
(b.bytes-sum(nvl(a.bytes,0)))    U,
sum(nvl(a.bytes,0))        NS,
sum(nvl(a.bytes,0))/(b.bytes)*100 P
  from dba_free_space a,dba_data_files b
  where a.file_id=b.file_id
  group by b.tablespace_name,b.file_name,b.file_id,b.bytes 
) V
 order by V.TN
;
select file#,name from v$datafile;
--- 1. 查该数据文件中数据处在最大位置
select max(block_id) from dba_extents where file_id=6;
--- 查出最大块位置 5755M
select 736640*8/1024 from dual;
--- ALTER DATABASE datafile 'H:\ORACLE11G\APP\ADMIN\ORADATA\ORCL\SYNC_PLUS_1_02.DBF' RESIZE 3000M;
-- alter database datafile 7 resize 5755M;

到此这篇关于Oracle怎么压缩表空间的文章就介绍到这了,更多相关Oracle压缩表空间内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • windows系统下进入oracle数据库两种方法

    windows系统下进入oracle数据库两种方法

    这篇文章主要给大家介绍了关于windows系统下进入oracle数据库两种方法的相关资料,Oracle数据库是一款非常流行的关系型数据库管理系统,它被广泛用于企业级应用中,为了使用Oracle数据库,我们需要先进入数据库系统中,需要的朋友可以参考下
    2023-09-09
  • Oracle Table Demo语句应用介绍

    Oracle Table Demo语句应用介绍

    在开发过程中可能会用到oracle table demo 操作语句,本文将以此进行介绍,需要的朋友可以参考下
    2012-11-11
  • Oracle回滚段使用查询代码详解

    Oracle回滚段使用查询代码详解

    这篇文章主要介绍了Oracle回滚段使用查询代码详解的相关资料,需要的朋友可以参考下
    2017-08-08
  • 基于Oracle多库查询方法(分享)

    基于Oracle多库查询方法(分享)

    下面小编就为大家分享一篇Oracle多库查询方法,具有很的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12
  • Oracle GoldenGate同步服务归档空间维护【推荐】

    Oracle GoldenGate同步服务归档空间维护【推荐】

    这篇文章主要介绍了Oracle GoldenGate同步服务归档空间维护的相关知识,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-08-08
  • ORACLE 12C PDB 维护基础知识介绍

    ORACLE 12C PDB 维护基础知识介绍

    CDB和PDB是ORACLE 12C一个很亮的新特性,由于他们的引入导致传统的ORACLE数据库管理理念不少发生了改变,这里列举了部分最基本的cdb和pdb管理方式
    2016-09-09
  • 简单实例解释Oracle分页查询

    简单实例解释Oracle分页查询

    这篇文章主要给大家介绍了关于Oracle分页查询的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Oracle具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-11-11
  • Oracle sqlldr导入一个日期列实例详解

    Oracle sqlldr导入一个日期列实例详解

    这篇文章主要介绍了Oracle sqlldr导入一个日期列实例详解的相关资料,需要的朋友可以参考下
    2017-06-06
  • redhat 4中安装Oracle 10g图文教程

    redhat 4中安装Oracle 10g图文教程

    本文主要讲诉了在redhat 4中安装Oracle 10g的全过程的详细记录,不过只是安装过程,建库不在本教程范围内,呵呵,自己摸索或者等待本文续篇
    2014-08-08
  • oracle查询不含括号及不含指定字符的方法

    oracle查询不含括号及不含指定字符的方法

    这篇文章主要介绍了oracle查询不含括号及不含指定字符的方法,需要的朋友可以参考下
    2014-07-07

最新评论