我已经在客户端的 9i 服务器(Oracle9i Release 9.2.0.1.0 - 64bit Production)中安装了一个 PHP 驱动的应用程序。某些查询的性能很差(它可以使用 15 分钟到几个小时来计算执行计划!)我已经将问题跟踪到参数的非默认值OPTIMIZER_FEATURES_ENABLE:9i 的默认值是9.2.0但客户将其更改为8.1.7. 当我在我的开发箱中进行相同的更改时,我遇到了相同的性能问题。
如果他们运行的是 Oracle 10 或更高版本,我可以自己为自己的会话更改它,但在 9i 中,它是一个需要为整个实例设置的静态参数。更改是在一段时间前进行的,目的是支持一个非常重要的遗留程序。客户目前正在等待第三方供应商的答复,但我觉得改变的可能性很小。
那么,如果参数需要保持不变,我有哪些选择?它的效果可以用其他可变设置来模拟吗?还有其他想法吗?
我在数据库中通过清理看到以下数量的登录、注销和注销:
SQL> select action_name, count(*) qty
from Dba_audit_session
group by action_name
order by 1; 2 3 4
ACTION_NAME QTY
--------------------------- ----------
LOGOFF 1946180
LOGOFF BY CLEANUP 754683
LOGON 1026
Run Code Online (Sandbox Code Playgroud)
登录少于注销的 0.1% 是没有意义的。
任何想法为什么?
在SYS.USER$看来,什么做CTIME,PTIME和LTIME列代表什么?
在哪里可以找到有关此视图和其他系统视图的 Oracle 文档?
我使用 Informatica 来管理一些将数据加载到 Oracle 9i 数据仓库的 ETL 过程。
今天,我在 Informatica 会话日志中收到以下错误:
Message: Database driver error...
CMN_1022 [DELETE FROM SOME_TABLE
WHERE PERIOD_NAME = 'OCT-12'
ORA-01775: looping chain of synonyms
Database driver error...
Function Name : executeDirect
SQL Stmt : DELETE FROM SOME_TABLE
WHERE PERIOD_NAME = 'OCT-12'
Oracle Fatal Error
Database driver error...
Function Name : ExecuteDirect
Oracle Fatal Error
]
Run Code Online (Sandbox Code Playgroud)
现在这是一个印刷错误,表名拼写错误。Oracle 错误显然让我们走错了方向……所以只是想了解为什么在同义词没有问题的情况下会显示此错误。
我被要求生成给定时间段内对某些 Oracle 9i 表执行的操作的报告。
当我查询DBA_AUDIT_TRAIL表时,我只进入SESSION REC该ACTION_NAME列。
我期待着SELECT,INSERT等等DELETE。
SESSION REC意思?