如何解决Oracle 11g性能问题?

时间:2017-04-11 22:10:39

标签: linux performance oracle11g

我最近将笔记本电脑从磁盘驱动器上的旧版Ubuntu升级到固态硬盘上的Linux Mint 18.1。此升级涉及重新安装Oracle 11g(11.2.0.2.0),我从11g Express Edition Download Page下载了该文件。

在升级之后,我开始遇到一些严重的性能问题,一些PL / SQL脚本曾经在旧的Oracle安装上运行得很好。例如,以下脚本用于运行大约20秒(并在旧安装上继续执行),但在新安装上运行大约需要90秒。

prompt p_revoke_user_perms

set serveroutput on size unlimited

declare
   -- Variables ----------------------------------------------------------------
   l_from_data varchar2(30) := upper('&1');
   l_to_application varchar2(30) := upper('&2');
   l_cmd varchar2(2000);

begin
   dbms_output.put_line('BEGIN SCRIPT');

   for obj in 
      (
      select distinct table_name from all_tab_privs
      where table_schema = l_from_data
      and grantee = l_to_application
      )
   loop
      l_cmd := 
         'REVOKE ALL ON ' 
         || l_from_data 
         || '.' 
         || '"' || obj.table_name || '"' 
         || ' FROM ' 
         || l_to_application;

      dbms_output.put_line(' before: ' || to_char(systimestamp,'yyyy-mm-dd hh24:mi:ss.ff'));
      execute immediate l_cmd;      
      dbms_output.put_line(' after: ' || to_char(systimestamp,'yyyy-mm-dd hh24:mi:ss.ff'));
   end loop;

   dbms_output.put_line('END SCRIPT');

end;
/
show errors

exit;

我有什么选择来诊断这个问题?是否有可能找出花费的时间? Oracle是否可以打印一些分析信息,以便我比较旧安装和新安装之间的时间安排?

我以前从来没有用Oracle解决这样的问题,所以我真的不知道从哪里开始。任何想法都将不胜感激。

UPDATE:完成启用DBMS_PROFILER的步骤,然后从我的问题脚本运行它后,问题就神奇地消失了。正如预期的那样,该脚本再次运行需要20秒。我不知道是什么修理它:(。

更新2:几天后,问题又回来了。所以我仍然感谢进一步的故障排除建议。

0 个答案:

没有答案