1 / 53

Packaged Application Tuning

Packaged Application Tuning. Who am I?What is Tuning?What is a Packaged Application?What techniques could you use?Experimental SessionAre you, the membership, interested in discussing Application specific issues?. Rules of Engagement. If you can't hear me - say so now!Feel free to ask on-topi

rachana
Download Presentation

Packaged Application Tuning

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. Packaged Application Tuning David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk www.go-faster.co.uk There are many packaged applications on the market today. Some of them (SAP, PeopleSoft, Siebel etc) are designed to run on any database platform. I've head salesmen call this 'Platform Agnostic'. Other people think that this leads to equally bad performance on all platforms! The application, if it can be customised at all, my be hidden away in an vendor specific design tool, the SQL will conform to a lowest-common-demoninator standard (no outer-joins, no UNION ALL, no special features that Oracle developed to improve performance). If you capture a piece of SQL from a trace, it may not be coded explicity, but generated by some part of the application from meta-code. Even if it is explicitly code it can be extremely difficult for a developer to find. Even adding an index is a form of application upgrade when the application maintains its own version of the database catalogue. As a DBA working with PeopleSoft this is the challenge that I face daily. If this sounds familiar to you come and listen this presentation. I will discuss the method and techniques that I use to monitor, trace and then improve performance. The key to solving this problem lies in combining database knowledge with application technical knowledge. There are many packaged applications on the market today. Some of them (SAP, PeopleSoft, Siebel etc) are designed to run on any database platform. I've head salesmen call this 'Platform Agnostic'. Other people think that this leads to equally bad performance on all platforms! The application, if it can be customised at all, my be hidden away in an vendor specific design tool, the SQL will conform to a lowest-common-demoninator standard (no outer-joins, no UNION ALL, no special features that Oracle developed to improve performance). If you capture a piece of SQL from a trace, it may not be coded explicity, but generated by some part of the application from meta-code. Even if it is explicitly code it can be extremely difficult for a developer to find. Even adding an index is a form of application upgrade when the application maintains its own version of the database catalogue. As a DBA working with PeopleSoft this is the challenge that I face daily. If this sounds familiar to you come and listen this presentation. I will discuss the method and techniques that I use to monitor, trace and then improve performance. The key to solving this problem lies in combining database knowledge with application technical knowledge.

    2. Packaged Application Tuning Who am I? What is Tuning? What is a Packaged Application? What techniques could you use? Experimental Session Are you, the membership, interested in discussing Application specific issues? Little bit of theory Brief demonstration The rest of it is composed of war stories I’ll talk about the system in which they were used What it brought us and What we the problemsLittle bit of theory Brief demonstration The rest of it is composed of war stories I’ll talk about the system in which they were used What it brought us and What we the problems

    3. Rules of Engagement If you can’t hear me - say so now! Feel free to ask on-topic questions during the presentation. This presentation (with notes) is available on the conference website (after the conference) and on www.go-faster.co.uk

    4. Who am I? DBA Independent consultant Performance tuning PeopleSoft UKOUG Unix SIG Chair If you’ve been to these gatherings you will have seen me before Nowadays I am an independent consultant, but I still specialise in performance tuning I specialise in PeopleSoft ERP systems. So I am going to use PeopleSoft as the basis of my examples. purely because that is what I know about.If you’ve been to these gatherings you will have seen me before Nowadays I am an independent consultant, but I still specialise in performance tuning I specialise in PeopleSoft ERP systems. So I am going to use PeopleSoft as the basis of my examples. purely because that is what I know about.

    5. Aphorism Performance is exactly what the user perceives it to be. No more, no less. I have realised that over the years that I have collected a number of catchphrases and quotes. When you are tackling performance problems you need to keep an eye on what you are trying to achieve. Often a user will report that the system is slow, so you have measure what the use is experiencing The availability and response time that a system produces are sum of all the components in the chain. Database - Application Server - Network - PC It takes time for requests to be transmitted over a network, through application server, be processed by the database and returned. There is a certain amount of processing on the client and that takes time too. If any component fails then the system fails. If you go to a cash point and you cant draw money, you don’t care whether the central mainframe is down, or the network, or the cash point itself is down, or even if it have run out of money. The bottom line is that the system is not available, and you don’t get your money. The users can only observe one thing. Their own PC One of the problems with performance is that it can all be a bit touchy feely. Users will only ever say two things: 1) The system is slow 2) The system is OK You need some sort of metric. Performance Level Agreements as a part of the SLA. The only thing that means anything to a user is time. How long do they spend waiting for the hourglass? Perhaps it also means that there is another component of your system to tune - your usersI have realised that over the years that I have collected a number of catchphrases and quotes. When you are tackling performance problems you need to keep an eye on what you are trying to achieve. Often a user will report that the system is slow, so you have measure what the use is experiencing The availability and response time that a system produces are sum of all the components in the chain. Database - Application Server - Network - PC It takes time for requests to be transmitted over a network, through application server, be processed by the database and returned. There is a certain amount of processing on the client and that takes time too. If any component fails then the system fails. If you go to a cash point and you cant draw money, you don’t care whether the central mainframe is down, or the network, or the cash point itself is down, or even if it have run out of money. The bottom line is that the system is not available, and you don’t get your money. The users can only observe one thing. Their own PC One of the problems with performance is that it can all be a bit touchy feely. Users will only ever say two things: 1) The system is slow 2) The system is OK You need some sort of metric. Performance Level Agreements as a part of the SLA. The only thing that means anything to a user is time. How long do they spend waiting for the hourglass? Perhaps it also means that there is another component of your system to tune - your users

    6. Aphorism Performance Tuning is a search for lost time. There is only one currency here. Time Where are you loosing how much of your time? There is only one currency here. Time Where are you loosing how much of your time?

    7. Aphorism When you have eliminated the impossible, whatever remains, however improbable, must be the truth. A Study in Scarlet, Arthur Conan-Doyle In order to improve the performance of a system (and by system I mean anything not just a computer system) you have to understand how it work. Answering that questions is not trivial. Because when you do the analysis properly and you may get an unexpected answer. The answer might be counter-intuitive, it may be so peculiar that you might have rejected it out of hand. This is experimental science In order to improve the performance of a system (and by system I mean anything not just a computer system) you have to understand how it work. Answering that questions is not trivial. Because when you do the analysis properly and you may get an unexpected answer. The answer might be counter-intuitive, it may be so peculiar that you might have rejected it out of hand. This is experimental science

    8. Aphorism Detection is, or ought to be, an exact science. It should be be treated in the same cold and unemotional manner. The Sign of Four, Arthur Conan-Doyle I’ve had a presentation will all this Sherlock Holmes stuff for several years. And I put some of it into this presentation a long time ago now. In October 2002 the Royal Society of Chemistry (who are a serious bunch of scientists) very publicly awarded a gold medal to Holmes (and not his creator Conan-Doyle) because of his contributions to science. Why? Obviously it was a publicity stunt. Done because the character of Holmes is a positive scientific role model. The myth embodies a rigorous, logical, scientific techniques for investigation. So there is a serious point here, and I am not simply padding out this presentation. I’ve had a presentation will all this Sherlock Holmes stuff for several years. And I put some of it into this presentation a long time ago now. In October 2002 the Royal Society of Chemistry (who are a serious bunch of scientists) very publicly awarded a gold medal to Holmes (and not his creator Conan-Doyle) because of his contributions to science. Why? Obviously it was a publicity stunt. Done because the character of Holmes is a positive scientific role model. The myth embodies a rigorous, logical, scientific techniques for investigation. So there is a serious point here, and I am not simply padding out this presentation.

    9. What is a Packaged Application Bought in from a software vendor. You didn’t have any say in how it was developed. You cannot (easily) change the code. You may not even be able to see the code. It may be designed to run on other databases as well as Oracle. Too often a packaged application is a black box. I am not here selling a product. I am not even here selling consultancy (well maybe a little bit). I am selling an idea. The idea is that if you have something that you don’t fully understand, then take some time to probe it. Conduct experiments, take measurements, and conjecture how a system works. Too often a packaged application is a black box. I am not here selling a product. I am not even here selling consultancy (well maybe a little bit). I am selling an idea. The idea is that if you have something that you don’t fully understand, then take some time to probe it. Conduct experiments, take measurements, and conjecture how a system works.

    10. What Packaged Applications are there? ERP Oracle, SAP, PeopleSoft Baan, J D Edwards ... CRM and Siebel What others? I would say that these are the most common packaged applications.I would say that these are the most common packaged applications.

    11. It isn’t always the database! Understand architecture Web front end Network Application server Database What can you measure?

    12. PeopleSoft Internet Architecture PIA is 4-tier architecture Each component can contribute to response time Need to measure each component This is where I start to use PeopleSoft specific examples. In the beginning PeopleSoft was a two-tier system. A windows client interacted directly with the database. Today on the application designer and data mover still do that. In 1997 PeopleTools 7.0 introduced a full three-tier windows client that used the Tuxedo Application server. In 2000 PeopleTools 8.x appeared with a fully internet client. The database still stores the application and the application server is responsible for extracting the relevant application objects from the database as well as the application data. That hans’t really changed. The application server bundles the component (the thing we used to call the panel group) will all the html, JavaScript fragments and graphics and send that to the servlet. The servlet, which is closely bound with the webserver unpacks that message, sends the page to the browser and rest of those objects are loaded by the browser from the webserver. The Servlet also holds session information for each connected user. There is a lot of work going on at different tiers in the chain. Depending on circumstances different components can contribute differently to response times. Our objective is to measure all of this. (see www.go-faster.co.uk for detailed PIA/Tuxedo architectural overview) This is where I start to use PeopleSoft specific examples. In the beginning PeopleSoft was a two-tier system. A windows client interacted directly with the database. Today on the application designer and data mover still do that. In 1997 PeopleTools 7.0 introduced a full three-tier windows client that used the Tuxedo Application server. In 2000 PeopleTools 8.x appeared with a fully internet client. The database still stores the application and the application server is responsible for extracting the relevant application objects from the database as well as the application data. That hans’t really changed. The application server bundles the component (the thing we used to call the panel group) will all the html, JavaScript fragments and graphics and send that to the servlet. The servlet, which is closely bound with the webserver unpacks that message, sends the page to the browser and rest of those objects are loaded by the browser from the webserver. The Servlet also holds session information for each connected user. There is a lot of work going on at different tiers in the chain. Depending on circumstances different components can contribute differently to response times. Our objective is to measure all of this. (see www.go-faster.co.uk for detailed PIA/Tuxedo architectural overview)

    13. Sources of Metrics Browser Proxy Server 3rd Party software Local agent on PC Web Server Access Log There are lots of things to measure in the PeopleTools 8. Each tier in the diagram on the pervious slide produces its own set of metrics. The key is to relate different sets. In the light of what I have just said about perception, the most important place to measure is as close to the client as possible. That can be difficult. There is 3rd party software that will put agents on the clients. Page detailer is a part of the Websphere suite. One technique that I have used is to introduce a proxy server. Most webservers can be configured as proxy servers. So I put a proxy server physically close to the clients that I want to measure. Similarly the web server can also record all the same requests but now their duration will be the time at the webserver. This time that the request took to actually process. The difference in these duration is the time lost across the network. There are lots of things to measure in the PeopleTools 8. Each tier in the diagram on the pervious slide produces its own set of metrics. The key is to relate different sets. In the light of what I have just said about perception, the most important place to measure is as close to the client as possible. That can be difficult. There is 3rd party software that will put agents on the clients. Page detailer is a part of the Websphere suite. One technique that I have used is to introduce a proxy server. Most webservers can be configured as proxy servers. So I put a proxy server physically close to the clients that I want to measure. Similarly the web server can also record all the same requests but now their duration will be the time at the webserver. This time that the request took to actually process. The difference in these duration is the time lost across the network.

    14. Sources of Metrics (2) BEA/Tuxedo Service Trace TMADMIN Oracle Database SQL_Trace PSFT Application Server Trace

    15. Sources of Metrics So now you can use pairs of measures to measure the segment between the points of measurement The difference between proxy server and web server is network time The difference between Webserver log and Tuxedo Log is servlet time + tuxedo queue time Tuxedo queuing can be estimated from Tuxedo tmadmin scripts. An average queue of 2 requests on a queue suggests a queuing time of twice the average service time Oracle trace can only be used on a statistical basis. What proportion of Tuxedo Service time is SQL Important tip - if these traces are coming off difference servers get them time synchronised at least with each other if not a proper time source. So now you can use pairs of measures to measure the segment between the points of measurement The difference between proxy server and web server is network time The difference between Webserver log and Tuxedo Log is servlet time + tuxedo queue time Tuxedo queuing can be estimated from Tuxedo tmadmin scripts. An average queue of 2 requests on a queue suggests a queuing time of twice the average service time Oracle trace can only be used on a statistical basis. What proportion of Tuxedo Service time is SQL Important tip - if these traces are coming off difference servers get them time synchronised at least with each other if not a proper time source.

    16. Web/Proxy Access Log Standard format for access log www.w3.org/pub/WWW/TR/logfile.html Apache is different The access log will record all the requests including their duration as measured at the proxy server. There is a standard format for webserver logs. Weblogic conforms to this stanard, Apache does not. There are a number of things that you can records.The access log will record all the requests including their duration as measured at the proxy server. There is a standard format for webserver logs. Weblogic conforms to this stanard, Apache does not. There are a number of things that you can records.

    17. Web/Proxy Access Log Fields Date, Time Time Taken accurate to OS time units (1/100ths or 1/1000ths) only 1s on Apache Message bytes IP addresses & DNS names URI stem & Query

    18. Apache Access Log #httpd.conf LogFormat "%{%Y.%m.%d %H:%M:%S}t|%T|%B|%u|%h|%{User-Agent}i|%>s|%m|%U|%q" monitoring CustomLog logs/access.log monitoring But apache is no longer supported in 8.4But apache is no longer supported in 8.4

    19. Sample Apache Access Log 2002.02.26 09:57:06|0|275|-|127.0.0.1|Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 4.0; Q312461)|200|GET|/peoplesoft8/cache/PT_NEXTTAB_ENG_1.gif| 2002.02.26 09:57:17|0|31847|-|127.0.0.1|Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 4.0; Q312461)|200|POST|/servlets/iclientservlet|?ICType=Panel&Menu=ADMINISTER_WORKFORCE_(GBL)&Market=GBL&PanelGroupName=JOB_DATA 2002.02.26 09:57:26|0|30959|-|127.0.0.1|Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 4.0; Q312461)|200|POST|/servlets/iclientservlet|?ICType=Panel&Menu=ADMINISTER_WORKFORCE_(GBL)&Market=GBL&PanelGroupName=JOB_DATA Pipe symbols have been used as separators because it’s very unlikely to appear elsewhere in the trace.Pipe symbols have been used as separators because it’s very unlikely to appear elsewhere in the trace.

    20. What does the access log tell us? A date and time for every request Who made the request? How long did it take to serve? What was requested? Which component (panel group)? So to summarise the enhanced access log will tell you about activity at the web or proxy server. Everything you need to know about a request.So to summarise the enhanced access log will tell you about activity at the web or proxy server. Everything you need to know about a request.

    21. BEA/Tuxedo Service Trace Edit psappsrv.ubx file CLOPT=“-r -e APPQ.stderr…” -r enables trace to stderr file -e qualifies name of stderr file The Tuxedo service trace will log every service that goes via the application server. There is almost, but not quite, a one-to-one relationship between web server and app server requests. The difference between web server service time and app server service time is the time spent by the servlet on the JVM. Using SQL trace it is possible to aggregate SQL time over a period. You can determine the proportion of SQL time in Tuxedo time. The Tuxedo service trace will log every service that goes via the application server. There is almost, but not quite, a one-to-one relationship between web server and app server requests. The difference between web server service time and app server service time is the time spent by the servlet on the JVM. Using SQL trace it is possible to aggregate SQL time over a period. You can determine the proportion of SQL time in Tuxedo time.

    22. Sample Tuxedo Service Trace Each service called to domain is logged SERVICE PID SDATE STIME EDATE ETIME ------- --- ----- ----- ----- ----- @ICScript 390 1014717320 4586495 1014717322 4588397 @ICScript 390 1014717322 4588467 1014717322 4588537 @ICScript 390 1014717322 4588557 1014717323 4589259 @ICScript 390 1014717332 4598021 1014717332 4598171 @ICScript 390 1014717355 4621745 1014717361 4627554 @ICScript 390 1014717365 4631329 1014717366 4632511 @ICScript 390 1014717375 4641944 1014717377 4643306 @ICPanel 390 1014717380 4646761 1014717381 4647783 @ICPanel 390 1014717388 4654202 1014717391 4657567 @ICPanel 390 1014717396 4662614 1014717401 4667271 The trace is a text file,which is easy to work with.The trace is a text file,which is easy to work with.

    23. Tuxedo Service Trace Service - Name of Service Pid - An OS PID of listener or handler Sdate/Edate - Start/End Date Seconds since 00:00hrs GMT 1st January 1970. Stime/Etime Start/End Time in OS time units (1/ 100ths or 1/1000ths) Hence calculate accurate service duration Time on Server - not queuing The fields in the service traceThe fields in the service trace

    24. BEA/Tuxedo TMADMIN Utility BEA Interactive command line interface Can be included in scripts -r for read only in monitoring scripts pq (printqueue) psr (printserver) pclt (printclient)

    25. PQ What queues in domain How many servers on queue How many requests queued (How much work on queue) Prog Name Queue Name # Serve Wk Queued # Queued Ave. Len Machine --------- ------------------- --------- -------- -------- ------- JSL.exe 00095.00200 1 - 0 - GO-FASTER+ JREPSVR.exe 00094.00250 1 - 0 - GO-FASTER+ PSSAMSRV.exe SAMQ 1 - 0 - GO-FASTER+ BBL.exe 54455 1 - 0 - GO-FASTER+ WSL.exe 00001.00020 1 - 0 - GO-FASTER+ PSAPPSRV.exe APPQ 1 - 0 - GO-FASTER+

    26. PSR What servers exist? How many requests have they handled? What are they doing right now? Prog Name Queue Name Grp Name ID RqDone Load Done Current Service --------- ---------- -------- -- ------ --------- --------------- BBL.exe 54455 GO-FAST+ 0 3 150 ( IDLE ) PSAPPSRV.exe APPQ APPSRV 1 9 450 ICPanel PSSAMSRV.exe SAMQ APPSRV 100 0 0 ( IDLE ) WSL.exe 00001.00020 BASE 20 0 0 ( IDLE ) JSL.exe 00095.00200 JSLGRP 200 0 0 ( IDLE ) JREPSVR.exe 00094.00250 JREPGRP 250 5 250 ( IDLE )

    27. PCLT Who is connected? Are they doing something? When did they connect? LMID User Name Client Name Time Status Bgn/Cmmt/Abrt --------------- --------------- --------------- -------- ------- ------------- GO-FASTER-1 NT WSH 0:21:14 IDLE 0/0/0 GO-FASTER-1 NT JSH 0:21:13 IDLE 0/0/0 GO-FASTER-1 NT tmadmin 0:00:00 IDLE 0/0/0 GO-FASTER-1 PS JavaClient 0:02:30 BUSY/W 0/0/0

    28. Oracle SQL Trace Tuning tool Session trace Format it with TKPROF Find long running SQL statements Total SQL Time for session call count cpu elapsed disk query current rows ------- ------ -------- ---------- ---------- ---------- ---------- ---------- Parse 72289 173.06 175.45 7 14654 94 0 Execute 77140 64.02 67.37 205495 766343 170611 78630 Fetch 50599 33.20 34.28 17302 971624 80146 143218 ------- ------ -------- ---------- ---------- ---------- ---------- ---------- total 200028 270.28 277.10 222804 1752621 250851 221848

    29. Small Application Servers Create small application with just a single handler process Enable trace on that process Trace sample transaction (only one user) sys.dbms_system.set_sql_trace_in_session(<sid>,<serial>,TRUE);

    30. Sources of Metrics So now you can use pairs of measures to measure the segment between the points of measurement The difference between proxy server and web server is network time The difference between Webserver log and Tuxedo Log is servlet time + tuxedo queue time Tuxedo queuing can be estimated from Tuxedo tmadmin scripts. An average queue of 2 requests on a queue suggests a queuing time of twice the average service time Oracle trace can only be used on a statistical basis. What proportion of Tuxedo Service time is SQL Important tip - if these traces are coming off difference servers get them time synchronised at least with each other if not a proper time source. So now you can use pairs of measures to measure the segment between the points of measurement The difference between proxy server and web server is network time The difference between Webserver log and Tuxedo Log is servlet time + tuxedo queue time Tuxedo queuing can be estimated from Tuxedo tmadmin scripts. An average queue of 2 requests on a queue suggests a queuing time of twice the average service time Oracle trace can only be used on a statistical basis. What proportion of Tuxedo Service time is SQL Important tip - if these traces are coming off difference servers get them time synchronised at least with each other if not a proper time source.

    31. Graphical Analysis Don’t drown in numbers Draw a picture Load Data into Database SQL_Loader (Oracle 9i External Table) Process Data Matching, Aggregation Oracle Analytic Function Load data into Excel Draw Graph My tactic for dealing with almost any log file is the same. Load it into a database, manipulate the data with SQL - you may have to match entries in different logsMy tactic for dealing with almost any log file is the same. Load it into a database, manipulate the data with SQL - you may have to match entries in different logs

    32. Sample SQL*Loader File LOAD DATA INFILE 'APPQ.stderr' REPLACE INTO TABLE txrpt WHEN (1) = '@' FIELDS TERMINATED BY WHITESPACE TRAILING NULLCOLS (service "substr(:service,2)" -- remove leading @ ,pid ,stimestamp ":stimestamp/86400+2/24+TO_DATE('01011970','DDMMYYYY')" ,stime ":stime/100" ,queue ”’APPQ’" ,etime ":etime/100")

    33. Tips about Graphs Connect Excel directly to a database Aggregate data carefully Too little and excel draws it badly because it adds a black border around an area Too much and you lose details Pivot tables are useful but Excel97 buggy Scatters and Trendlines joining dots can obscure data Excel supports 32000 points per series

    34. Example: CPU Utilisation

    35. Example: Apache Servlet Times

    36. Longest http conversations

    37. Example: Tuxedo Service Time

    38. tmadmin - PCLT - Connect Client Sessions

    39. tmadmin - PCLT - Busy/Wait Users

    40. tmadmin - PQ - Queue Length

    41. tmadmin - PSR - print server processes

    42. Relating different metrics produces new information

    43. Batch Performance Sources of Metrics Graph

    44. Sources of Metrics Process Scheduler Request Table every scheduled process recorded on this table start and end time Application Traces SQL Trace

    45. Graphical Analysis

    46. Oracle SQL*Trace & TKPROF Enable SQL Trace on batch process Process trace file with TKPROF report Top n statements sort by Parse/Fetch/Execute CPU/Elapsed Time statement timings/execution plan call count cpu elapsed disk query current rows ------- ------ -------- ---------- ---------- ---------- ---------- ---------- Parse 36 0.02 0.01 0 0 0 0 Execute 36 55.09 86.80 0 2973787 3 1 Fetch 0 0.00 0.00 0 0 0 0 ------- ------ -------- ---------- ---------- ---------- ---------- ---------- total 72 55.11 86.81 0 2973787 3 1

    47. Triggers Process Scheduler Status Change On-Connect Enable Trace Archiving data during purge routines Altering session parameters

    48. Process Scheduler CREATE OR REPLACE trigger sysadm.set_trace before update of runstatus on sysadm.psprcsrqst for each row when (new.runstatus = 7 and old.runstatus != 7 and new.prcstype IN('Application Engine','COBOL SQL', 'SQR Process','SQR Report','SQR Report For WF Delivery'))

    49. On-Connect Triggers create or replace trigger sysadm.psqrysrv_session_trigger after logon on sysadm.schema declare l_program VARCHAR(64); begin SELECT program INTO l_program FROM v$session WHERE sid IN(SELECT sid FROM v$mystat WHERE rownum = 1); IF substr(l_program,1,8) = 'PSQRYSRV' OR INSTR(UPPER(l_program),'PSNVS') > 0 THEN sys.dbms_session.set_sql_trace(true); ...

    50. For example… sys.dbms_session.set_sql_trace(true); ALTER SESSION SET EVENTS '10053 trace name context forever, level 1’; ALTER SESSION SET EVENTS '10128 trace name context forever, level 2’; ALTER SESSION SET optimizer_mode=FIRST_ROWS; ALTER SESSION SET optimizer_index_caching=100; ALTER SESSION SET optimizer_index_cost_adj=1; ALTER SESSION SET sort_area_size = 100000; sys.dbms_application_info.set_module('nVision','psqrysrv_session_trigger fired');

    51. Aphorism The problems change from release to release, but the methods by which they are investigated remain the same. Jonathan Lewis (author of Practical Oracle 8i)

    52. Questions?

    53. Aphorism You know my methods, apply them. A Study in Scarlet, Arthur Conan-Doyle I will leave you with a final piece of Sherlock Holmes and my thanks.I will leave you with a final piece of Sherlock Holmes and my thanks.

    54. Packaged Application Tuning David Kurtz Go-Faster Consultancy Ltd. david.kurtz@go-faster.co.uk www.go-faster.co.uk

More Related