TLDR?跳到要点。
我最近在后端部署了一个带有Oracle 11g数据库的解决方案到测试环境,性能可怕 - 系统无法运行。在规格较低的开发中,性能更好。环境。我很欣赏这可以归结为很多很多东西,但Oracle设置目前处于触发线,因为它是我最不熟悉的组件(而且我的想法已经用完了)。
数据库是使用dbca创建的。在SQL Developer中直接针对数据库的简单SELECTS是可以的,但是通过涉及具有大量连接的复杂查询的内部数据访问驱动程序会导致性能不佳。没有网络延迟问题,数据访问代码在其他地方罚款 *。
* 虽然有点健谈 - 另一天的故事。
为了协助,我想要信息。以下内容:
SQL Developer显示SYSTEM / SYSAUX的表空间使用率为99%(分别为710Mb / 600Mb)。这会对性能产生影响吗?
SQL Developer显示TEMP表空间使用NULL,分配NULL,使用NULL,free 0,datafiles为NULL。我对数据库运行查询以显示临时文件存在且在线...我甚至删除/重新创建它,但它仍然在管理数据库屏幕中显示为NULL。这是正常的行为吗?如果没有,这会对性能产生影响吗?
提前致谢。
答案 0 :(得分:3)
TLDR - 空间不是你的问题。
您的报告可能会产生误导。您的数据文件可能正在使用其当前分配的空间的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也不会让你的临时表空间不足。
答案 1 :(得分:0)
看起来数据库的大小不正确。要查看性能问题,请运行statspack或awr并查看相应的报告。另外,在线粘贴报告,以便我们查看。