1 / 71

Maximizing the Performance of the Oracle E-Business Suite

Session id: 40191 . Maximizing the Performance of the Oracle E-Business Suite. Ahmed Alomari Applications Performance Group Oracle Corporation. Agenda. Architecture Application Services Tier Forms Reports Concurrent Manager Apache Mod PL/SQL Jserv/JVM Portal Discoverer.

efia
Télécharger la présentation

Maximizing the Performance of the Oracle E-Business Suite

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Session id: 40191 Maximizing the Performance of the Oracle E-Business Suite Ahmed Alomari Applications Performance Group Oracle Corporation

  2. Agenda • Architecture • Application Services Tier • Forms • Reports • Concurrent Manager • Apache • Mod PL/SQL • Jserv/JVM • Portal • Discoverer

  3. Agenda (continued) • Network Performance • Data Server Tier • 9iR2 New Features • New tablespace model • Application Tuning • Q & A

  4. Architecture Portal Real Application Clusters (RAC) Servlet Engine JDBC (Thin) Java Server Pages (JSP) http Discoverer Web Listener PL/SQL Gateway TNS (Net8) Data Server Tier Reports Clients Forms Concurrent Manager Application Tier

  5. Application Services Tier • Forms • Deploy with socket mode for internal users: • connectMode=socket (appsweb.cfg) • Enable Forms Dead Client Detection • Value specified in minutes • Terminates f60webmx processes for dead clients. • FORMS60_TIMEOUT=10 • Disable Forms Abnormal Termination Handler • FORMS60_CATCHTERM=0

  6. Application Services Tier • Forms • Upgrade to Forms Patchset 10 or higher • Forms patchset 7 (6.0.8.16.X) introduced a regression which affects scalability (bug 2269913). • Results in Forms generating invalid SQL. • Fixed in Forms patchset 10 (6.0.8.19.X). • Refer to MetaLink document 125767.1 for Forms patchset upgrades. • Disable Cancel Query • Set the Profile “FND: Enable Cancel Query” to No.

  7. Application Services Tier • Forms • Ensure users are optimally utilizing the professional Forms interfaces. • Avoid Blind queries • Provide selective criteria in Find windows and LOVs. • Avoid opening and closing forms across transactions. • Users which need to switch responsibility in order to complete a business transaction should instead keep the relevant Forms open.

  8. Application Services Tier • Forms (Tracing) • If the form is slow, or a specific flow in the Form is slow, first generate a complete SQL trace using the Trace menu in Help-Diagnostics. • If the SQL trace does not account for the majority of the response time experienced by the user, then generate a Forms Runtime Diagnostics (FRD) Trace.

  9. Application Services Tier • Forms (Tracing – SQL Trace)

  10. Application Services Tier • Forms (Tracing – FRD Trace) • Logon to Applications 11i with the following parameters appended to the URL: play=&record=collect&log=/tmp/oeform.trc • Navigate through the flows which you would like to trace. • Exit from Oracle Applications completely. • Review the trace file from the application server (/tmp/oeform.trc).

  11. Application Services Tier • Reports • Ensure users provide selective parameters to the standard Reports. • Review the Report output: • Number of rows returned to the report. • Number of report pages. • SQL Trace can be generated by enabling the “Enable Trace” flag in the Concurrent Program Definition Form.

  12. Application Services Tier • Reports (Tracing) • If the SQL trace for the report does not account for the elapsed time of the request, then generate a Reports trace by appending tracing parameters the to command line. • ar60run … … TRACEFILE=<file> TRACE_OPTS=(<trace options>) TRACEMODE=trace_replace|trace_append • The following are the trace options: • TRACE_ALL : log all possible trace information in the trace file. (DEFAULT) • TRACE_APP : log trace information on all the report objects in the trace file. • TRACE_BRK : list breakpoints in the trace file. • TRACE_ERR : list error messages and warnings in the trace file. • TRACE_PLS : log trace information on all the PL/SQL objects in the trace file. • TRACE_PRF : log performance statistics in the trace file. • TRACE_SQL : log trace information on all the SQL in the trace file. • TRACE_TMS : enter a timestamp for each entry in the trace file.

  13. Application Services Tier • Reports (Trace Output) Report: /u02/appl/fnd/11.5.0/reports/US/FNDSCURS.rdf Logged onto server: Username: . . . . . . . . 23:59:57 APP ... ( Generic Graphical Object B_SECURITY_GROUP_NAME1 23:59:57 APP ... ) Generic Graphical Object B_SECURITY_GROUP_NAME1 23:59:57 APP ... ( Generic Graphical Object B_USER_NAME1 . . . . . . . . +-------------------------------------+ | Report Builder Profiler statistics | +-------------------------------------+ TOTAL ELAPSED Time: 2243.04 seconds Reports Time: 1196.62 seconds (53.34% of TOTAL) ORACLE Time: 1046.41 seconds (46.65% of TOTAL) UPI: 1046.00 seconds SQL: 0.40 seconds TOTAL CPU Time used by process: 904.71 seconds

  14. Application Services Tier • Concurrent Manager • Avoid enabling an excessive number of standard or specialized managers. • Use specialization rules and work shifts to bind specific jobs to specific time windows. • Helps avoid scheduling resource intensive batch requests during peak activity. • For jobs which spawn parallel workers such as Auto Invoice or Payroll, set the sleep time of the Conflict Resolution Manager (CRM) to null (i.e. 10 seconds). The default value is 60 seconds.

  15. Application Services Tier • Concurrent Manager • Database Resource Manager Integration • Define Resource Consumer Groups and associate specific concurrent programs with a resource group. • Allows an administrator to constrain the amount of CPU resources used by a concurrent program. • Resource Groups can also be defined for online users using the profile “FND: Resource Consumer Group”.

  16. Application Services Tier • Concurrent Manager • Transaction Managers • Used for Inventory Transactions as well as other synchronous online processing. • Ensure enough transaction managers exist to service the request load. • Set the profile “Concurrent:Wait for Available TM” to 1 (second). • Set “TP:INV Transaction processing mode” to “On-line processing” for small inventory requests from the UI. • Set the sleep time on the transaction managers to a low number (< 5 seconds) for high volume requests. • Transaction Managers can also be traced.

  17. Application Services Tier • Concurrent Manager (Enabling Trace)

  18. Application Services Tier • Apache • On UNIX, Apache is process based (httpd), and mods such as mod PL/SQL run within the process address space of the httpd processes. • On Windows, Apache is multi-threaded (Apache.exe). • Tune the number of processes and number of clients (httpds.conf): • MinSpareServers 5 • MaxSpareServers 10 • StartServers 5 • MaxClients 512

  19. Application Services Tier • Apache • Minimize levels of logging (httpds.conf): • LogLevel warn • SSLLogLevel warn • Enable Caching of non-HTML resources including images, style sheets, and Java script. • Caches content in the browser cache. • Reduces network round-trips (non SSL) • Reduces network bandwidth utilization (SSL) • Included in AutoConfig templates in 11.5.8.

  20. Application Services Tier • Apache • Enable Caching of non-HTML resources (httpd.conf or apps.conf) <Directory "<physical_path_corresponding_to_the_alias_/OA_HTML/>"> #enable the generation of the Expires header for files under /OA_HTML/ ExpiresActive On #expire images one month after last client access ExpiresByType image/gif "access plus 1 month" #expire stylesheets one week after the last client access ExpiresByType text/css "access plus 1 weeks" #expire javascript libraries one day after the last client access ExpiresByType text/javascript "access plus 1 days“ ExpiresByType application/x-javascript "access plus 1 day" </Directory>

  21. Application Services Tier • Apache • Review Apache Access Log file to ensure images are being satisfied from the browser cache. • Http code 200 (request for document) • Http code 304 (request for time stamp) 130.35.127.106 - - [23/Oct/2002:19:00:21 -0700] "GET /OA_MEDIA/FNDINVDT.gif HTTP/1.1" 200 821 130.35.127.106 - - [25/Oct/2002:14:38:23 -0700] "GET /OA_MEDIA/FNDINVDT.gif HTTP/1.1" 304 - 130.35.127.106 - - [25/Oct/2002:14:38:23 -0700] "GET /OA_MEDIA/FNDWATHS.gif HTTP/1.1" 200 190 130.35.127.106 - - [25/Oct/2002:14:38:23 -0700] "GET /OA_MEDIA/FNDREDPT.gif HTTP/1.1" 200 70 130.35.127.106 - - [25/Oct/2002:14:39:23 -0700] "GET /OA_HTML/OA.jsp?page=/oracle/apps/icx/por/rcv/pages/ReceivingHomePage&OAHP=ICXP OR_MENU&OASF=ICXPOR_RCV_HOME_PAGE&dbc=ap107fam_ipdev11i&language_code=US&transactionid=70A5819F04C0F411 HTTP/1.1" 200 14 130.35.127.106 - - [25/Oct/2002:14:39:34 -0700] "GET /servlets/PoolMonitor?jvm HTTP/1.1" 200 7954 130.35.127.106 - - [25/Oct/2002:14:41:03 -0700] "GET /OA_HTML/US/ICXINDEX_ipdev11i.htm HTTP/1.1" 304 - 130.35.127.106 - - [25/Oct/2002:14:41:03 -0700] "GET /OA_MEDIA/logo.gif HTTP/1.1" 304 - 130.35.127.106 - - [25/Oct/2002:14:41:03 -0700] "GET /OA_MEDIA/appslogo.gif HTTP/1.1" 304 - 130.35.127.106 - - [25/Oct/2002:14:41:03 -0700] "GET /OA_MEDIA/FNDJLFRL.gif HTTP/1.1" 304 - 130.35.127.106 - - [25/Oct/2002:14:41:03 -0700] "GET /OA_MEDIA/FNDINVDT.gif HTTP/1.1" 304 - 130.35.127.106 - - [25/Oct/2002:14:41:03 -0700] "GET /OA_MEDIA/FNDJLFRR.gif HTTP/1.1" 304 -

  22. Application Services Tier • Apache Mod PL/SQL • Configure a dedicated mod PL/SQL Listener • Improves performance and scalability • Significantly reduces overall number of sessions/connections. • Reduces latency of web requests. • Improves cursor sharing. • Documented in “Oracle 9i Application Server Using the PL/SQL Gateway Release 1 (v1.0.2.2)” • http://technet.oracle.com/docs/products/ias/doc_library/1022doc_otn/apps.102/a90099/apptroub.htm#634180

  23. Application Services Tier • Apache Mod PL/SQL (dedicated listener) 1. For the main Listener running on Port 7000, edit the file $IAS_HOME/Apache/modplsql/cfg/plsql.conf as follows: Disable the mod PL/SQL service from the main listener by commenting out the lines between the two Location parameters as follows: # <Location /pls> # SetHandler pls_handler # Order deny,allow # Allow from all # </Location> Comment out the following line as follows: # LoadModule plsql_module /d1/ias/Apache/modplsql/bin/modplsql.so

  24. Application Services Tier • Apache Mod PL/SQL (dedicated listener) 2. Configure the main listener to forward all mod_plsql requests to the dedicated mod PL/SQL listener by adding the following line: ProxyPass /pls/ http://sechost.us.oracle.com:8888/pls/ For the dedicated mod PL/SQL Listener running on Port 8888, configure each DAD to override the default CGI environment variables in order to allow redirects. Edit the file $IAS_HOME/Apache/modplsql/cfg/wdbsvr.app and add the following line for each DAD: cgi_env_list=SERVER_NAME=mainhost.us.oracle.com,SERVER_PORT=7000,HOST=mainhost.us.oracle.com:7000

  25. Application Services Tier • Apache Jserv / JVM • Minimize Jserv logging • log=true • log.channel.warning=true • log.file=/d1/ias/Apache/Jserv/logs/jserv_7000.log • Disable auto reload in production environments: • autoreload.classes=false • autoreload.file=false • Use Jserv Auto Load Balancing • Configure Multiple Zones. • Provides higher availability and improves scalability.

  26. Application Services Tier • Apache Jserv / JVM • Upgrade to the latest JDK (1.3.1_09). • Do not disable hotspot or the JIT (i.e. –DCOMPILER=NONE or –Xint). • Enable verbose GC in order to optimally tune the heap sizes based on the GC traffic. • Minor Collections • Major Collections • Elapsed Time of GC

  27. Application Services Tier • Apache Jserv / JVM • Enable Verbose GC Output • Overload wrapper.bin with a shell wrapper in order to redirect stdout to a file. Existing: wrapper.bin=/d13/jdk/jdk1.3.1/bin/java Change To: Wrapper.bin=/d13/scripts/java.sh java.sh: ========= /d13/jdk/jdk1.3.1/bin/java -verbosegc $* >> /d2/logs/java.log

  28. Application Services Tier • Apache Jserv / JVM (Verbose GC Output) /d2/logs/java.log: [GC 30460K->1369K(510848K), 0.1135695 secs] [Full GC 15135K->1686K(510848K), 0.2700469 secs] [GC 32123K->2131K(510848K), 0.0203634 secs] [GC 32595K->2130K(510848K), 0.0113639 secs] [GC 32593K->2171K(510848K), 0.0129179 secs] [GC 32635K->2419K(510848K), 0.0567306 secs] [GC 32881K->3157K(510848K), 0.2906981 secs] [GC 33620K->3197K(510848K), 0.0320023 secs] [GC 33661K->3218K(510848K), 0.0103013 secs] [GC 33674K->3309K(510848K), 0.0487887 secs] [GC 33769K->3532K(510848K), 0.0531514 secs] [GC 33983K->3784K(510848K), 0.0552549 secs] [GC 34248K->4056K(510848K), 0.0624969 secs] [GC 34520K->4404K(510848K), 0.0555575 secs] [GC 34868K->4828K(510848K), 0.0587044 secs] [GC 35292K->5242K(510848K), 0.0945290 secs]

  29. Application Services Tier • Apache Jserv / JVM • Utilize the verbose GC output to tune the JVM heaps (-Xmx and –Xms) accordingly. • Review the frequency of collections, especially major collections (i.e. Full GC). • Start with: • -Xms256M and –Xmx512M • -XX:NewSize=60M -XX:MaxNewSize=120M

  30. Application Services Tier • Apache Jserv / JVM • Process Identification (V$SESSION) • Specify the property –DCLIENT_PROCESSID in the JVM startup shell script. Existing: wrapper.bin=/d13/jdk1.3.1/bin/java Change To: Wrapper.bin=/d13/scripts/java.sh java.sh: ========= #!/bin/sh /d13/jdk1.3.1/bin/java -verbosegc -DCLIENT_PROCESSID=$$ $* >> /d2/logs/java.log

  31. Application Services Tier • Apache Jserv / JVM • Process Identification (V$SESSION) • Allows you to map the JDBC session from v$session to a particular JVM process. SID MACHINE PROCESS MODULE LOGON ---- ------------------------- ------------ ------------------ ----------------- 41 aptier1.us.oracle.com 28806 JDBC Thin Client 09/07/03 23:26:43 42 aptier2.us.oracle.com 1723 JDBC Thin Client 09/07/03 23:27:01 43 aptier3.us.oracle.com 3201 JDBC Thin Client 09/07/03 23:28:15 44 aptier1.us.oracle.com 28807 JDBC Thin Client 09/07/03 23:29:17 . . . . . . . . . . . . . . aptier1{apps_a}-> ps -ef | grep 28806 apps_a 28806 28561 0 23:26:39 pts/20 0:00 /bin/sh ./java.sh apps_a 28807 28806 53 23:26:40 pts/20 8:55 /jdk1.3.1_09/bin/../bin/sparc/native_threads/java

  32. Application Services Tier • Java Server Pages (JSPs) • Precompile the JSPs to avoid dynamic compilation. • Users experience poor performance for the initial page loads. • Potential deadlocks if multiple users attempt to compile the same JSP. • Potential JVM death due to OutOfMemoryException during concurrent compilation. • MetaLink Document 215268.1 provides the instructions and the patch reference for an automated script to perform the precompilation. • ojspCompile Script

  33. Application Services Tier • Java Server Pages (JSPs) • Use a separate JVM to perform the JSP compilation. root.properties: servlet.oracle.jsp.JspServlet.initArgs=translate_params=true, unsafe_reload=false, page_repository_root=/appl_top/115/common/html/jsp/pagecache, alias_translation=true,developer_mode=false, javaccmd=/usr/jdk131/bin/javac,send_error=true

  34. Application Services Tier • Portal Tuning • Tune the number of content fetcher threads for PPE (poolSize). Default is 25. • Adjust the fetch request timeout (requesttime). • Adjust the fetch connection request timeout (stall). zone.properties: servlet.page.initArgs=poolSize=50 servlet.page.initArgs=requesttime=200 servlet.page.initArgs=stall=100

  35. Application Services Tier • Portal Tuning • Ensure that the mod PL/SQL cache is enabled and sized appropriately: $APACHE_TOP/modplsql/cfg/cache.cfg: [PLSQL Cache] enabled=yes total_size=100000000 cleanup_size=75000000 cleanup_interval=86400 ; [Cookie Cache] enabled=yes total_size=25000000 cleanup_size=15000000 cleanup_interval=86400 max_size = 0

  36. Application Services Tier • Discoverer 4i Viewer Tuning • Disable Query Prediction by setting QPPEnable=0 in pref.txt. • Set ObjectsAlwaysAccessible=1 to avoid extra workbook SQL validation, and related dictionary SQL. • Set the Query Governor option “Limit retrieved query data to:” to 100 rows. • Set the option “After opening a worksheet:” to “Don’t run query.” • Ensure Custom workbooks define mandatory parameters.

  37. Network Performance • Network performance is often neglected. • Networks with poor latency or low bandwidth impacts user response time. • Can also impact concurrent programs if the network between the application tier and data server tier is not optimal. • A direct switch should be used between the application tier and data server tier • Latency should ideally be ~2-3ms per round-trip.

  38. Network Performance • Use the ping command to determine the latency of requests. Vary the packet size to determine the average latency. Do not use the default ping packet size of 32 bytes. D:\>ping ap626sun.us.oracle.com -l 2048 Pinging ap626sun.us.oracle.com [139.185.128.27] with 2048 bytes of data: Reply from 139.185.128.27: bytes=2048 time=371ms TTL=252 Reply from 139.185.128.27: bytes=2048 time=330ms TTL=252 Reply from 139.185.128.27: bytes=2048 time=361ms TTL=252 Reply from 139.185.128.27: bytes=2048 time=360ms TTL=252 D:\>ping ap626sun.us.oracle.com -l 512 Pinging ap626sun.us.oracle.com [139.185.128.27] with 512 bytes of data: Reply from 139.185.128.27: bytes=512 time=231ms TTL=252 Reply from 139.185.128.27: bytes=512 time=210ms TTL=252 Reply from 139.185.128.27: bytes=512 time=231ms TTL=252 Reply from 139.185.128.27: bytes=512 time=220ms TTL=252

  39. Network Performance • Use the ping command to determine the latency between the application server and the data server. Use a packet size of 2K since this the default size for SQL*Net traffic. aptierhost{applmgr}-2-> ping -s dbtierhost 2048 PING dbtierhost.us.oracle.com: 2048 data bytes 2056 bytes from dbtierhost.us.oracle.com (144.25.76.250): icmp_seq=0. time=1. ms 2056 bytes from dbtierhost.us.oracle.com (144.25.76.250): icmp_seq=1. time=1. ms 2056 bytes from dbtierhost.us.oracle.com (144.25.76.250): icmp_seq=2. time=1. ms 2056 bytes from dbtierhost.us.oracle.com (144.25.76.250): icmp_seq=3. time=1. ms 2056 bytes from dbtierhost.us.oracle.com (144.25.76.250): icmp_seq=4. time=1. ms 2056 bytes from dbtierhost.us.oracle.com (144.25.76.250): icmp_seq=5. time=1. Ms ---- dbtierhost.us.oracle.com PING Statistics---- 6 packets transmitted, 6 packets received, 0% packet loss round-trip (ms) min/avg/max = 1/1/1

  40. Network Performance • Measure the sustained bandwidth on both the client network (i.e. desktops) as well as the application-tiers. • Use traceroute utility to determine number of hops and impact on latency. • Monitor network statistics including packet rates, error rates, collisions, etc.. using tools such as netstat –i.

  41. Data Server Tier • Refer to the MetaLink document 216205.1 “Database Initialization Parameters and Configuration for Oracle Applications 11i”. • Ensure mandatory parameters are set correctly. • Optimally configure the buffer cache and shared pool as per the workload and the number of users: • [typical configuration for 2,000 Apps users] • db_block_buffers=800,000 • shared_pool_size=2000M • A poorly sized buffer cache results in excessive buffer gets and physical I/O. • A poorly sized shared pool results in library cache and shared pool latch contention due to reloads and lack of space.

  42. Data Server Tier • Quick I/O improves performance and scalability by simulating raw devices, and avoiding file system cache traffic for the DB files. • Use locally managed temp files (uniform) for the temporary tablespace. • Install Stats Pack and use spauto.sql to automate hourly snapshots. • Stats Pack reports can be used to trend transaction rates and business flows.

  43. Data Server Tier • Stats Pack Report (Instance Summary) STATSPACK report for DB Name DB Id Instance Inst Num Release Cluster Host ------------ ----------- ------------ -------- ----------- ------- ------------ GSIAP 317772662 gsi1ap 1 9.2.0.1.0 YES agsidbs1 Snap Id Snap Time Sessions Curs/Sess Comment ------- ------------------ -------- --------- ------------------- Begin Snap: 503400 11-Nov-02 11:00:01 ####### .0 End Snap: 503405 11-Nov-02 16:00:04 ####### .0 Elapsed: 300.05 (mins) Cache Sizes (end) ~~~~~~~~~~~~~~~~~ Buffer Cache: 5,313M Std Block Size: 8K Shared Pool Size: 2,864M Log Buffer: 1,024K . . . . . . . . . . . .

  44. Data Server Tier • Stats Pack Report (Instance Summary) Load Profile ~~~~~~~~~~~~ Per Second Per Transaction --------------- --------------- Redo size: 462,767.56 26,266.16 Logical reads: 54,537.81 3,095.50 Block changes: 3,237.12 183.74 Physical reads: 2,403.22 136.40 Physical writes: 272.19 15.45 User calls: 518.96 29.46 Parses: 223.29 12.67 Hard parses: 1.26 0.07 Sorts: 199.15 11.30 Logons: 1.85 0.11 Executes: 1,566.48 88.91 Transactions: 17.62 % Blocks changed per Read: 5.94 Recursive Call %: 88.46 Rollback per transaction %: 3.18 Rows per Sort: 102.78 . . . . . . . . . . . .

  45. Data Server Tier • Stats Pack Report (Instance Summary) Instance Efficiency Percentages (Target 100%) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Buffer Nowait %: 99.90 Redo NoWait %: 100.00 Buffer Hit %: 96.03 In-memory Sort %: 99.96 Library Hit %: 99.87 Soft Parse %: 99.44 Execute to Parse %: 85.75 Latch Hit %: 99.82 Parse CPU to Parse Elapsd %: 69.57 % Non-Parse CPU: 97.34 Shared Pool Statistics Begin End ------ ------ Memory Usage %: 90.55 76.14 % SQL with executions>1: 66.70 75.37 % Memory for SQL w/exec>1: 60.86 71.08 Top 5 Timed Events ~~~~~~~~~~~~~~~~~~ % Total Event Waits Time (s) Ela Time -------------------------------------------- ------------ ----------- -------- db file sequential read 16,187,270 134,274 31.12 CPU time 110,764 25.67 global cache cr request 21,410,811 66,129 15.33 db file scattered read 3,184,765 23,571 5.46 KJC: Wait for msg sends to complete 10,722,532 20,446 4.74

  46. Data Server Tier • Stats Pack Report (Wait Events) Avg Total Wait wait Waits Event Waits Timeouts Time (s) (ms) /txn ---------------------------- ------------ ---------- ---------- ------ -------- db file sequential read 16,187,270 0 134,274 8 51.0 global cache cr request 21,410,811 56,241 66,129 3 67.5 db file scattered read 3,184,765 0 23,571 7 10.0 KJC: Wait for msg sends to c 10,722,532 194,069 20,446 2 33.8 row cache lock 74,583 5,842 17,796 239 0.2 wait for unread message on b 73,977 4,624 13,054 176 0.2 SQL*Net more data to client 6,021,483 0 8,873 1 19.0 enqueue 114,204 19,898 7,427 65 0.4 buffer busy global CR 516,382 18 4,735 9 1.6 buffer busy waits 434,054 192 3,857 9 1.4 direct path read 1,239,648 0 3,226 3 3.9 inactive session 1,774 1,774 1,784 1006 0.0 latch free 242,171 19,203 1,694 7 0.8 db file parallel read 121,670 0 1,280 11 0.4 direct path write 1,270,008 0 1,110 1 4.0 log file sync 604,002 244 1,097 2 1.9 SQL*Net message from dblink 20,365 0 1,080 53 0.1

  47. Data Server Tier • Review Latch Free waits in the Stats Pack reports. • Latch contention is often a symptom due to a legitimate problem such as non-sharable SQL, sub-optimal SQL which performs full table or full index scans, dynamic object creation/removal, etc.. • Review the latch Statistics section of the Stats Pack report to determine the hot latches. • Enable tracing for a few of the sessions waiting on the latch as well as the holder to determine the actual cause.

  48. Data Server Tier • Stats Pack Report (Expensive SQL) CPU Elapsd Physical Reads Executions Reads per Exec %Total Time (s) Time (s) Hash Value --------------- ------------ -------------- ------ -------- --------- ---------- 3,413,015 1 3,413,015.0 7.9 1970.29 6716.03 976039043 Module: ALECDC SELECT distinct ooha.order_number , fu.user_name , rac.cu stomer_name , to_char(wctc.last_update_date, 'DD-MON-YY hh24:mi ') , DECODE(SUBSTR(wctc.comments, 1, 21), 'NOTE: This Order-Line', wctc.process_flag || ': manually scre ened', DECODE(wctc.process_flag ,'101','101: host u 2,229,632 1 2,229,632.0 5.2 2115.49 35448.22 1280227044 Module: ALECDC select distinct pv.segment1 , nvl(pv.vendor_name_a lt, pv.vendor_name) , ai.invoice_num , hr.name , 'ap_gsiap_rpts_us@oracle.com' from po_vendors pv , ap_invoices_all ai , ap_holds_all ah , hr_organi zation_units hr where ai.payment_status_flag||''='Y' and 1,990,002 1 1,990,002.0 4.6 2321.34 23934.41 4063073269 Module: OKILOADDR BEGIN OKI_REFRESH_PUB.REFRESH_ADDRS( :errbuf, :rc ); END;

  49. Data Server Tier • Monitor CPU and Memory Utilization • Monitor paging • Monitor I/O statistics, including service times. • Review Stats Pack reports and correlate top SQL to the business flows. • Review expensive custom SQL

  50. Data Server Tier • Gathering Statistics • Do not gather statistics excessively on entire schemas or the entire database such as nightly or weekly. • Do not gather statistics on permanent objects during peak intervals. • Gathering statistics invalidates cursors • Gathering statistics requires dictionary and object level locks. • Plans are not likely to change if the data distribution has not changed.

More Related