首页 > 代码库 > 遇到 Form 性能问题怎么办 performance issue

遇到 Form 性能问题怎么办 performance issue

性能问题是比较复杂的问题. 一般由performance team 负责, 但是常见的情况是, 我们 INV team 定义的 view 不好, 导致查询性能较差. 这个必须由产品组和 performance team 一起来解决了.

遇到性能问题的话, 几个常用的分析方法:

首先要找出性能较差的SQL, 这个要收集SQL trace, 然后转成 tkprof 文件来看.

把SQL 放到 pl/sql developer 里面, 查看执行计划. 很多时候问题出在没有使用 index, 而是全表扫描了.

按照下面的步骤, 连接sqlplus, 一步一步执行, 生成 SQL trace 和 tkprof 文件. 里面会有更详细的信息.

1. alter session set max_dump_file_size='UNLIMITED';
2. alter session set tracefile_identifier='APPSPERF';
3. alter session set events '10046 trace name context forever, level 12';
4. alter session set statistics_level = 'ALL';
5. declare binds like below

   variable B1 number;
   variable B2 number;
   variable B3 number;
   variable B4 varchar2(50);
   variable B5 number;
   variable B6 number;
   
6. Assign values to binds

   begin
   :B1 := 2666;
   :B2 := 2666;
   :B3 := 2666;
   :B4 := 'VENDOR';
   :B5 := 8617;
   :B6 := 639187;
   end;
   /

7. Execute the test_SQL.sql WITH BIND VARIABLES (with :B1, :B2) 
8. exec dbms_session.reset_package;
9. exit completely from the sqlplus prompt.
10. once the step 9 is done then Pickup the trace file from udump (ls *APPSPERF*) --generated recently
    directory: "SELECT value FROM v$parameter WHERE name ='user_dump_dest'"
11. Generate the tkprof of the trace generated with explain option.
12. provide TRACE,TKPROF and SQLTXTRACT(215187.1) to review it further. 

最后, 发邮件给performance team: appsperf_us@oracle.com.