Peoplesoft Performance Tuning

July 25th, 2009
  • Tuning Your PeopleSoft Apps: Indexes and Temp Tables 

It is a widely known fact that 80% of performance problems are a direct result of the application code. There are other factors that contribute to poor performance, such as server configuration, resource contention, and other issues that we have described in previous chapters. Assuming you have tuned your servers and followed the guidelines for your database server, application server, and web server, most of your performance problems can be addressed by tuning the PeopleSoft Application code.

Tuning the application can consist of tuning, PeopleCode, SQR code, SQL-intensive code, queries, nVision, and indexes. In This Article, we will focus on Indexing and Temporary Tables

Ineffective Indexing

One of the most common performance problems in the PeopleSoft Application is ineffective indexing against key application tables. As we stated earlier, the PeopleSoft software is delivered with a generic code set that runs on several database platforms. In addition to the code set, the indexes that exist are not specific to any one environment. Because of this, you need to fine-tune your application by selectively finding poor performing applications and determining whether or not the cause is due to ineffective indexing. This can be achieved by tracing the SQL of poor performing pages, application engine programs, COBOL, or sqr programs and finding the long running queries. Once you find the problematic queries that take a significant amount of time to complete, you will need to analyze the indexes that are being used.

Here is an example of how to fine-tune your indexes. The Journal Generator application, within the Financials software, could be a COBOL application (FSPGJGEN) that performs very many selects based on the run control id parameters. In running this process it is determined that it is taking approximately 2 hours to process only 50 Journals.

The first thing to do is to turn on tracing for that specific process and re-running the process in your test environment. Be sure that you always do your tuning in your test environment. You do not want to blindly start adding indexes to your production environment without performing full regression testing. The results can be catastrophic. Once you have the trace file, you can examine it and look for the timings for the long running queries.

After examining the trace file we find the SQL statement that is causing the performance problem. Once you find the SQL statement, you can run it through your RDBMS query tool to determine which indexes are being used. If you are using SQL Server, you will issue the following command:

SET SHOWPLAN_ALL { ON | OFF }

If you are using Oracle you will utilize the explain plan. Once you execute this command, you can then run your select statement. This returns detailed information about how the statements are executed and provides estimates of the resource requirements for the statements, including the indexes that are being utilized.

The next step is to look at the columns in the where clause of the SQL statement and determine if the indexes being used, if any, contain these columns. If they do not, you can simply create a new index with the missing columns. Once created re-run your query to re-examine the index usage. Simply repeat this process until you achieve the improved performance.

In some cases, certain SQL statements will never even use an Index. This is what is called a full table scan. Full table scans are extremely taxing on the system and cause major performance degradation. If you determine that a SQL query is performing a full table scan, simply create an Index or Indexes with the columns that are contained within the where clause.

Tuning and adding indexes is one of the most overlooked and very simple ways to improve performance. Just remember the following steps.

- Trace
- Examine the SQL
- Analyze the SQL in your RDBMS tool
- Determine Indexes being used
- Create Indexes with Columns in Where clause
- Re-Analyze the SQL and repeat until you get improved results

Another tip for tuning indexes is to try re-ordering columns within the index. You can sometimes gain huge performance improvements, by simply changing the order of the columns when you create the index. This is a trial and error method that you will have to test. There is no hard and fast rule for which column should be placed in what order.

Temporary Tables

PeopleSoft utilizes temporary tables in many of its application programs, especially application engine programs. These application programs are constantly populated with data and deleted, over and over. Each time a temporary table is populated and deleted, it causes certain databases like Oracle to leave the High Water Mark and produces full table scans.

For example, an application engine program can insert 200000 rows and then delete them. The next time that application runs, it only inserts 2000 rows, yet a read against that table performs poorly. Additionally, the indexes that exist on these temporary tables are heavily fragmented from all of the deletes. Temporary tables are a common cause of performance problems.

In order to prevent fragmentation and improve performance on most used temporary tables, you should truncate these tables on a regular basis.

Reference : http://it.toolbox.com/blogs/peoplesoft-pro/tuning-your-peoplesoft-apps-indexes-and-temp-tables-10061

FASHION

July 25th, 2009

Fashion Design School - www.iodworld.com

Skills - Soft, Communication, Business, Interpersonal

July 25th, 2009

Improve Improve Improve Improve Improve

 

 

Politics-Politix-Polytyx-Polytics

July 25th, 2009

Clinton Vs Bush

 

Bill Clinton’s  Chris Wallace Interview

 

Bill Clinton’s  Chris Wallace Interview

 

President

 

Peoplesoft Implementation

July 25th, 2009

Peoplesoft Process Scheduler ISSUES

July 24th, 2009

Process scheduler -

issue 1 -  when a process scheduler goes down on a windows machine, you tried to
boot the process scheduler and you get this message - tmboot: internal error: CMDTUX_CAT:1098: ERROR: Can’t create queue

cause - the process schd.  did not released the resources

resolution - so try shutdown the process scheduler normally with psadmin utility, if it dod not shutdown normally,
try cleaningup ipcs resources by psadmin if it didnt go through,  reboot the machine and
start the process scheduler.

  • Processes stuck at Queued

There are a number of reasons why a process might be stuck at queued. The most obvious is that the process scheduler is down (check the Servers tab in the process monitor). Beyond this, there are some useful troubleshooting that apply:Check the following tables:

  • PSPRCSRQST
  • PSPRCSQUE
  • PSPRCSPARMS

The row count should be the same in both tables. If one is out of sync with the other, then it can help to remove orphaned instances in of the tables. Restarting the process scheduler and clearing the process scheduler cache will also fix a number of issues

  • Application Engine programs only stuck at queued

                                You may find that only application engine programs are stuck at queued while other processes (SQRs, crystals etc) run to success. This typically happens due to processes blocking the process scheduler queue. Check the process scheduler/master process scheduler logs. You might see something like this:

--RESTART PROCESS SCHEDULER OR KILL THE PROGRAMS RUNNING AND CLEAR IT FROM DB

 
 

Peoplesoft Applications Administration

July 23rd, 2009

3. issue - Could not create shared cache. (0,0)
        when tried to login pia , gets the above error.

Solution - there is wrong directory set in the configuration.properties file for the weblogic ps domain
  set the right directory and restart the ps web instance 

2. issue - on save psft online application processing processing longer and timeout and or logsout

ps - change DbFlags value in app and prcs config files to 8 and restart the servers after clearing cahce.

DbFlags = 8

more info from psbooks below

The following values are valid for the DbFlags parameter:

Value

Description

0

Enable the %UpdateStats meta-SQL construct.

1

Disable the %UpdateStats meta-SQL construct.

2

Ignore the Truncate command for DB2 UNIX/NT. Use Delete instead.

4

Disable a secondary database connection (used with the GetNextNumberWithGapsCommit PeopleCode function).

This prevents the creation of a secondary database connection, bundling all SQL into a single unit of work. Without the additional database connection, the database row lock is held for a longer time, reducing concurrency in a multiple-user environment.

Note. Analytic instance processing requires a secondary database connection, so if you’re using analytic servers, ensure that this value is not set.

8

Disable a persistent second database connection (used with the GetNextNumberWithGapsCommit PeopleCode function).

This creates a second database connection in each GetNextNumberWithGapsCommit call, then immediately closes the second connection. This keeps the number of database connections to a minimum, but requires each call to create a new database connection on demand.

Note. The performance impact of making a new database connection is significant, especially in high volume user production environments. Don’t use this setting without carefully considering its effect.

==================================================

1.  generic syntax for creating index and histogram

Create index sysadm.indexname on sysadm.tabname(columns name) tablespace psindex;

histogram

DBMS_STATS.GATHER_TABLE_STATS (ownname => ‘SYSADM’, tabname=>’name of table’, method_opt=>’for columns column name size 250′,estimate_percent => 15,degree=> 5);

Peoplesoft Installation

July 23rd, 2009

Peoplesoft Installation

Adding Peoplesoft as a Trusted site in Safari browser