database - Oracle 表空间分配/使用性能影响

标签 database performance oracle oracle11g oracle-sqldeveloper

TLDR?跳至要点。

我最近在测试环境中部署了一个后端带有 Oracle 11g DB 的解决方案,性能非常糟糕 - 系统无法运行。较低规范的开发人员的性能更好。环境。我知道这可能归因于很多很多事情,但 Oracle 设置目前正处于火线,因为它是我最不熟悉的组件(而且我已经没有想法了)。

数据库是使用 dbca 创建的。在 SQL Developer 中直接针对数据库进行的简单选择是可以的,但是通过我们的内部数据访问驱动程序(涉及带有大量连接的复杂查询)会产生较差的性能。不存在网络延迟问题,并且数据访问代码在其他地方很好*。

*尽管有点闲聊 - 改天再说。

为了提供帮助,我想要一些信息。关于以下内容:

  • SQL Developer 显示 SYSTEM/SYSAUX 表空间使用率为 99%(分别为 710Mb/600Mb)。这会对性能产生影响吗?

  • SQL Developer 显示 TEMP 表空间的使用情况为 NULL、分配为 NULL、已使用 NULL、空闲 0、数据文件为 NULL。我对数据库运行查询以显示临时文件存在并且在线...我什至删除/重新创建了它,但它在“管理数据库”屏幕中仍然显示为 NULL。这是正常行为吗?如果不是,这会对性能产生影响吗?

提前致谢。

最佳答案

TLDR - 空间不是你的问题。

  • 您的 SYSTEM 和 SYSAUX 表空间可能没问题。

您的报告可能具有误导性。您的数据文件可能使用了当前分配空间的 99%。但我敢打赌,如果您查看数据文件,您会发现它们可以自动扩展到更大的值。例如,在我的大部分默认设置安装中:

select tablespace_name, round(bytes/1024/1024) current_mb,
    round(maxbytes/1024/1024) max_mb, autoextensible
from dba_data_files
where tablespace_name in ('SYSTEM', 'SYSAUX');

TABLESPACE_NAME  CURRENT_MB   MAX_MB  AUTOEXTENSIBLE
SYSAUX           2050         32768   YES
SYSTEM           810          32768   YES

您可能还有大量剩余空间,除非您的硬盘已满。另外,如果您确实没有 SYSTEM 或 SYSAUX 空间,则会引发很多错误。例如,您将无法登录,因为 sys.aud$ 已满,或者如果无法写入数据,统计信息收集将引发异常。

12c 版本的 DBCA 甚至没有提供设置 SYSAUX 和 SYSTEM 表空间的选项。

  • 您的临时表空间可能没问题。

完全空的临时表空间是不常见的。但这并不是一件坏事。 如果内存空间不足,临时表空间可用于排序和散列等操作。如果系统运行小型 OLTP 查询并且有足够的内存,则不需要临时表空间。

再次强调,即使您愿意,DBCA 也不会允许您减小临时表空间的大小。

关于database - Oracle 表空间分配/使用性能影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19880050/

相关文章:

.net - 使用 SQL Server CE 4.0 和 Entity Framework 4.2 进行批量插入的性能非常差

java - 将 OraclePreparedStatement 与 DBCP 连接结合使用

mysql - 数据库中大量 MySQL 表的副作用

mysql - MySql 是否自动锁定行还是我需要添加 "lock in share mode"?

javascript - 选择列中给出相应单元格值的单元格

sql - Toad:表格自动完成功能不起作用

database - oracle中DBMS_CRYPTO.encrypt函数的使用方法

java - 我怎样才能在 Hibernate 中做乘法关系?

performance - 当绘制顺序很重要时批处理多个绘制调用

python - 使用 cairo 在 Python 中绘制大量圆圈