oracle - SYSTEM 表空间增长超过 64GB
问题描述
我的 Oracle 数据库版本是 12.1.0.2.0
我正在谈论的数据库用于创建部署在 UAT/Production 等环境中的“包”(不是 oracle 包,而是包含代码/脚本的包)。为此,在运行时创建新模式,并定期删除不再使用的旧模式。
创建/删除这些模式的表空间大小为 84GB,可用空间超过 50%。
64GB 大小的 SYSTEM 表空间只有 10MB 可用空间。
SYSTEM 表空间中的所有段都归 SYS 或 SYSTEM 所有。
以下查询的前 15 行是:
SELECT owner,
segment_name,
segment_type,
bytes
FROM dba_segments
WHERE tablespace_name = 'SYSTEM'
ORDER BY bytes desc;
64GB SYSTEM 的表空间听起来对吗?可以减少吗,如果可以,那么如何减少?
解决方案
SOURCE$ 是任何 PLSQL 源代码(过程、包、类型等)。
同理,IDL_UBL1、I_SOURCE也有关系。
您的附录意味着您在该数据库中有 1.16亿行 PLSQL。这是相当多的代码:-)
如果你真的需要1.16亿行源代码,那么我认为64G的SYSTEM表空间也不是不合理的。
C_OBJ# 很大表明您的数据库中可能有很多对象。因此,请查看 DBA_OBJECTS 以及清理的机会。
推荐阅读
- laravel - 雄辩的模型 setRelation 生成数组而不是 Collection
- javascript - 用户定义的函数如何在 javascript 中继承原型属性
- powershell - PowerShell 中的 bool[] 中是否可以包含 [Nullable[bool]]
- php - 获取列名中的特定自定义参数值
- sql - phpmyadmin程序查询
- python - 在 Python 中严格搜索和替换文本
- javascript - 未使用 document.getElementById('someId').appendChild() 添加的函数
- android - 我可以让 apk 在移动和 android-TV 中使用吗?
- python - 如何查看python中内置函数的源代码?例如:eval()
- html - css翻转动画在Mozilla中不起作用