PeopleSoft Global Payroll Performance

Analysis & Tuning Approach
Payroll processing is the backbone of an organization’s employee operational and satisfaction focus. With the growing market hold, Oracle’s PeopleSoft (PS) Global Payroll has become a value for money choice for a wide range of the market. The product is intelligent and efficient to be able to process a few hundreds to multi thousands of employees’ records. The performance tuning of the PS payroll engine is well documented under various subjects. However, due to different needs of customers, some topics may not be relevant at a particular instance. At times this leads to customers trying out various possibilities to tune the engine, looking for multiple subjects, doing a hit and trial and in most cases getting lost in the vast span of subjects, possibilities, responsibilities and case studies. The paper discusses the building blocks that ensure a time saving performance tuning exercise applicable at a particular installation. The paper does not focus much on the range of resolutions to a poorly performing payroll engine. Instead it talks about a performance diagnostic and tuning approach that can be used at any PS Payroll 8.3 (DB2 - z/OS) installation.

PeopleSoft Global Payroll Performance



About the Author
Jitesh Kohli Jitesh has been working with TCS since 2001. He holds a Bachelors degree in Mechanical Engineering from REC Kurukshetra. Jitesh has worked on PeopleSoft applications with several engagements of TCS. Additionally, his credentials includes working on Microsoft and eLearning technologies.

PeopleSoft Global Payroll Performance



Recap-Global Payroll Fundamentals Brief Introduction to PeopleSoft Payroll Architecture Global Payroll Organizational Structure Global Payroll Processing Structure Calendars Payroll Processing Preparation Processing Steps 3 3 3 4 5 6 7 8 3. Solution Benchmark the Target Identify the Task Force Find the Culprit Area Identify the Best Fit Solution 8 8 9 9 10 10 5. Introduction 2. References 21 21 PeopleSoft Global Payroll Performance 2 TATA CONSULTANCY SERVICES . Summary & Conclusion 6. Problem Statement 4.Table of Contents 1.

PS payroll core engine is a calculation COBOL program that processes its calculations based on rules set up in the PS global payroll set up pages. These rules can be entered and maintained through a set of pages. accumulators and so on. absence entitlements. All business application logic such as earning. Recap . At pit-stops.Global Payroll Fundamentals Brief introduction to PeopleSoft Payroll Architecture PS Global Payroll essentially is a coupling of two components: Core Payroll Application (a) Flexible payroll rule engine The rule based engine is a flexible tool that defines and executes payroll and absence calculations. analyzing and tuning the performance of a payroll engine. absences and accumulators are specified in terms of payroll and absence rules. the paper also refers to possible solutions that shall contribute in improving the performance of a long running payroll engine. Online ’look and feel‘ for the country Self service applications Reports PeopleSoft Global Payroll Performance 3 TATA CONSULTANCY SERVICES . Included in the country extensions are: ● ● ● ● Statutory and customary rules including earnings. deduction. (b) Processing framework The core Global Payroll application is a common foundation and structure that organizations in every country can use to build their own calculation rules.Introduction PS payroll core engine is the heart of payroll processing for systems utilizing the PS payroll product. Most important. The core application determines the basic framework for payroll and absence processing. Country Extensions Country extensions are built using the core application. Performance of this critical PS component is of vital concern considering the importance of the output of the program and dependencies other systems may have to the timely completion of the processing of the engine. The objective of this paper is to talk about an approach that shall help diagnosing. This basic framework supplies the normal processing structure for the calculation of a payroll or absence. it is a reputation concern for an organization to be able to compensate its employees on time. deductions.

Fig 2 Global Payroll Organizational structure PeopleSoft Global Payroll Performance 4 TATA CONSULTANCY SERVICES .Fig 1 Global Payroll comprehensive diagram Global Payroll Organizational Structure The PS Global Payroll core application determines the organizational structure for payroll processing. The organizational structure comprises a hierarchy of components.

Pay Entity • The organization that makes the payment • The currency to be used as the processing currency for every calculation • The country associated with the Pay Entity • Associated with single Pay Entity • Grouping of Payees to process together • Linked with pay calendar in order to process a payroll • Group of Element Groups • Indicates the Elements for which a certain payee is eligible • Default Eligibility Group is defined at the pay group level • Payees are assigned to a default Eligibility Group.The following table will help recall the various components shown in Fig2 above. but it can be overridden • Group of Elements • Any number of Element Groups can be assigned to an Eligibility Group • The basic building blocks of Global Payroll • First component to be defined Pay Group Eligibility Group Element Group Element Global Payroll Processing Structure The processing structure of Global Payroll determines which elements are used for calculation of a particular payee and in what order. Fig 3 Global Payroll Processing structure PeopleSoft Global Payroll Performance 5 TATA CONSULTANCY SERVICES .

Fig 4 Global Payroll Calendars PeopleSoft Global Payroll Performance 6 TATA CONSULTANCY SERVICES . the relevant components of the system are tied together through the use of calendars.The processing structure is comprised of the components specified in the table below: Process List • Calculation type indicates whether the process list is for an absence or a payroll run • Specifies the Elements via sections in the order in which they are to be processed and resolved • Provides ability to conditionally execute sections • Indicate the gross and net pay elements • Group of elements • Control the order in which these Elements are processed on the Process List • Section use indicates whether the section can be used in payroll processing. what amounts are to be paid. absence processing or both • There are four different section types available that can be used for different types of processing • Sections can be reused in multiple process lists • The basic building blocks of Global Payroll • First component to be defined • The system resolves each element in the Process List for each payee if they are eligible to receive it Sections Element Calendars To run a payroll or absence process. A calendar controls who is to be paid. Only one pay group can be associated with a calendar. and the period of time for which the payment is being made.

clerks who run the payroll process select the payees for each group list. • To use stream processing. • The calendar group ID identifies the set of calendars that run together and the sequence in which the calendars are to be processed. • If stream processing is required. and calendar period to process. • To use the group list feature. • Stream set up is a one-time process that may require the assistance of a database administrator.Through the use of various selection criteria.) • Positive Input (PI) for the pay period can be entered before or after you begin processing. • If PI is entered after running the Calculate phase. then it is necessary to indicate it when setting up the calendar group ID. process list. (Group lists are tied to user IDs. Fig 5 Global Payroll Processing Preparation Create Calendars (Required) • Calendars tell the system which pay group. then Calculate must be run again to pick up the new entries. you can define who is going to be paid: Calendar Run Types Calendar Period IDs Calendar ID Calendar Group ID Payroll Run Control • Enable defining what is being paid • Linked to the ‘Processing Structure’ • Enable defining the period of time for which the payment is being made • Enables defining the payees going to be processed • Linked to ‘Organizational Structure’ • Groups the calendars that are to be process at the same time • Identifier used to run the payroll or absence processing Payroll Processing Preparation Now that we have recalled how the payroll run controls. and process lists are defined during system implementation. let us look at how we prepare our system before we run a payroll process. payees and run types are linked together. run types. Create the calendar Group ID (Required) Create Streams (Required) Create Group Lists (Optional) Enter Positive Input (Optional) PeopleSoft Global Payroll Performance 7 TATA CONSULTANCY SERVICES . • Calendar periods can be defined during implementation or when calendars are being setup. run type. • Pay groups. the range of employee IDs for each stream is identified.

for example . You can then run the Calculate phase again to process only the payees that need to be recalculated. If the system encounters problems during the Calculate phase—for example. run the Finalize phase to close the calendar group ID. Problem Statement The subject of payroll tuning involves multiple nodes. A wide range of documents on these various subjects are available on the PS site already. the quest is for an approach that leads an engineer to the performance tuning measures applicable in a particular scenario. To correct errors.database level tuning. no single answer to the problem statement of a poorly performing payroll engine. Performance engineers are required to be able to catch the right spot(s) where there is need for improvement and apply the corresponding resources and solution(s). and warning messages. When you’re satisfied with the processing results. Solution “How can we improve performance?” . you may need to update the Positive Input pages or make changes to the data in other applications that are integrated with PS Global Payroll.Processing Steps Fig 6 below shows how payroll processing happens starting from identifying payees to finalizing the process. This phase computes each payee’s gross and net earnings (for a payroll run) or absence take or entitlement units (for an absence run). invalid element definitions or payee eligibility problems—it places the payee in error. All we need to do is to answer questions listed above in the correct order. server capacity utilization and application level setup improvements. There is. such as Human Resources or Time and Labor. Fig 6 Global Payroll Processing Steps Perform Payees (Identify Phase) Perform Calculations (Calculate Phase) Review Results Correct Any Errors & Recalculate Finalize the Run The payroll cycle begins when you run a process that identifies all payees that are to be processed. however. You can use various PS payroll pages to review summary results. In simple terms. errors.The big question has multiple immediate child questions like: ● Is the performance currently really poor? ● Who would start? ● Where is the problem? Where do we start? ● How do we resolve the problem? Is this the correct solution? ● Is this a success? The approach to the solution discussed in this paper is simple and fruitful. PeopleSoft Global Payroll Performance 8 TATA CONSULTANCY SERVICES .

then the next step is to identify the human resources required to bring the performance up and close to the benchmark results. To access the benchmark reports on the PS site. SQL changes. Benchmark the target 2. What is now crucial is to brainstorm on these factors and decide a target for the tuning exercise. PeopleSoft Global Payroll Performance 9 TATA CONSULTANCY SERVICES . Freeze Benchmark the Target Performance is a fairly relative term. Logon to the PS site (http://www. server capacity review tasks and so on. Identify the best fit solution 5. Please note that all performance tuning benchmarks are environment and data volume/distribution specific. Click on the link ”Implement. Identify the task force 3. make sure that a competent task force capable to cover all the aspects mentioned above is available. On the following page. Click on the link ” Optimization Guide”. please follow the steps mentioned below:1. You may or may not deploy one or more members depending on the kind of performance improvement potential at your installation. know if we need any performance improvement tasks at all. What we would instead focus on is how to help ourselves find the right cause of our problem and how to find the right fix for the identified problem. If yes. the person responsible for the payroll engine tuning needs to verify the total time the payroll engine takes against the benchmarks established in the above mentioned reports directory. Needless to say. Optimize. we should. Identify the Task Force By comparing the time the payroll engine takes to process against the time in the corresponding benchmark in previous section. It also depends on how much deviation is found between the installed version and the corresponding benchmark results. we first need to know what the corresponding benchmarks are. Fix and compare against the benchmark 6. choose the link ”Performance Tools “ 4. by now. and Upgrade” using your connection user ID and password 2. To be able to comment on the performance of the payroll engine at a particular installation.peoplesoft. Click on the link ”Benchmark Performance Reports”.Kindly note that in this paper we are discussing the ‘approach to find a solution’ more than the solution itself. The following are the 6 steps to success: 1. Before drilling down to the problem. Find the culprit area 4. The reason for this is that the solution belongs to a problem and there is no single problem which is always the culprit for poor performance of the payroll engine. Deciding the target for performance improvement depends on the reasons due to which the current performance is not acceptable. The payroll performance tasks can include application level tuning. database configuration changes.

please use the links below. the payroll engine processing can be distributed time-wise into system idle time. There are multiple tools to study this behavior like – Strobe. DB2 wait time.db-consulting. Apptune.system idle time. DB2 wait time and processing time. Fig 9 Payroll Engine Processing Time (High Level) Out of the three components . PeopleSoft Global Payroll Performance 10 TATA CONSULTANCY SERVICES .com/ http://www4. Your System Administrator should be able to suggest a tool suitable to your environment. the most debatable is the ‘processing time’.com/2001presentsamer. TMON.nsf/SessionTrack?readform Identify the Best Fit Solution Broadly. http://www. let us for the moment park this aside and look at the other 2 components. OMEG. Detector and so on. Go! The first step in tuning is to find out what is to be tuned. The domain pertains to DBAs and System Administrators. processing time. The idea is to trace the payroll engine programs to identify the area impacting the overall processing time.The following list demonstrates an example task force for the tuning activities: ● ● ● ● ● Team lead/coordinator PS payroll business analyst PS payroll technical developer PS DBA Systems Engineer with server capacity. get set.peoplesoft. For information on the various tools in the z/OS environment and their usage. utilization insight Find the Culprit Area On the mark. In other words identify the area deteriorating the performance of the payroll engine. Therefore.

there are some operating system related activities with the payroll engine processing. it is important that your DBA and the system administrator work in tandem.5% This clearly indicates that one of the first diagnostic targets is the ‘DB2 wait time’. Readjust the application priorities based on your business requirements. Case begins:In one of the scenarios. System services (OS related) – 12%) DB2 wait time – 10. Study the statistics against this single CPU only and do not average it amongst all the CPUs in place (which would increase the %age wait time and give incorrect impression). For more information on the DB2 connect parameters. following was the time distribution noticed (the statistics were gathered using STROBE tool). If you are not using payroll streaming. While analyzing the statistics please note which CPU (In multiple CPU scenario) the wait time belongs to. please see the Solution ID – 47387 on the PS site (http://www. network) etc. then analyze the factors behind high wait time. If the system administrator still finds that the %age wait time is high. Upon investigation it was found out that one of the bind parameters of PTPSQLRT package . Following case discusses such a case where one of the PTPSQLRT bind parameter was found to be the culprit causing the DB2 wait time to grow up to 64%. b) Wait time for shared memory – Host environments are expensive and in most of the cases shared amongst multiple applications. Therefore while analyzing the statistics gathered for these two components. the statistics changed to the following: System idle time – 23.5%. the system idle time and DB2 wait time are interdependent. you may also look at the option of utilizing a dedicated (against shared) environment for payroll (or PeopleSoft application).System Idle time (tuning z/OS.peoplesoft. this is not a problem. In worst case. then the emphasis needs to be laid at the hardware aspects.5%. Disk I/O etc) – Diagnostic step 1 a) Wait for OS related system services – As with any other process. In most of the cases you would find another job running on the CPU with priority higher than the payroll job.5% (Waiting for the shared memory – 11.5% Processing time – 66% Case ends.IMMEDWRITE was incorrectly set to IMMEDWRITE (YES) by the local configuration management tool (SCM). PTPSQLRT package bind parameters etc. then review is required in the areas of disk I/O.GBL?portalispagelet=true) PeopleSoft Global Payroll Performance 11 TATA CONSULTANCY SERVICES . abnormal system behavior (virus!. System idle time – 23. however if it is considered high by the system administrator. An example of such activities would be opening/closing files. In most of the cases. Once the parameter was reset to IMMEDWRITE (NO).com/psp/portprd/CUSTOMER/CRM/c/RC_SELF_SERVICE.RC_SOLNSRCH_SW_ SS. If your DBA finds this time abnormally high. DB2 connect parameters.5% (Waiting for the shared memory – 11. System services (OS related) – 12%) DB2 wait time – 64% Processing time – 12. DB2 wait time – Diagnostic step 2 In a way. then you would find that most of or all the wait time belongs to a single CPU.

Hence. Diagnostic steps 1 & 2 are already discussed in section 5. PeopleSoft Global Payroll Performance 12 TATA CONSULTANCY SERVICES . lock thresholds. During the first cycle. Steps 3 to 8 relate to the time spent in processing the payroll engine program.4. rid pool. or restored. tested. Fig 10 Payroll Engine Processing Time (Low Level) Environment health check – Diagnostic step 3 With the help of the DBA and the system administrator. recreate indexes to be sure none are corrupt 2.2. it could be helpful to often rebuild the indexes and update statistics.4. parallelism Buffer Pool Check for example non-catlg tsps in BP0 Tablespace Locksize Compressed tablespaces Non-clustered clustering indexes Additional precautionary health check steps could be to: 1. following the upgrade or implementation operation. detailing the preferred sequence and drill down of diagnostics steps. The tables used in Payroll Calculation are constantly being updated. we get much closer to the application tuning. This makes the statistics useless and. it would be advisable to rebuild indexes and update statistics at regular intervals of data loading or conversion. A typical health check in the DB2 z/OS environment would include: ● ● ● ● ● Zparm check for example edmpool. in many cases will lead the optimizer in the wrong direction. sort pool.1 and 5. deleted. update Statistics Both these activities are affected by the volume of data. review the health of the DB2 z/OS environment. Please see the chart below.Processing Time Once the ‘System Idle time’ and ‘DB2 wait time’ are tuned.

GP000101 to GP000200. the pattern of parallel processing would be as follows: In the case shown below. Set the rowcount to a realistic value. an ideal parallel processing (implemented through streaming) should reduce the total processing time to approximately ¼. These are the tables used as temporary tables during the payroll run.000 rows. reducing the processing time for the complete population. This is a more generic way to set the statistics to an optimum for tables which can store up to 10. Let us take a case where an employee-range GP00001 – GO00400 falls under one pay run ID. In a typical sequential processing. we noticed that one of the measures to ensure good health of DB2 is to run the database statistics at regular intervals. But during a payroll run they may have a record count of several hundred thousand or even more. GP000301 to GP000400). For temporary payroll tables this is clearly incorrect and it ends up in huge and time consuming ‘insert’. ‘update’ and ‘delete’ statements. These streams are processed in parallel.000 or 20. Payroll partitioning – Diagnostic step 5 In simple terms. this is how the employees would be processed in the payroll engine: Fig 11 Payroll Engine Processing Without Streaming On the other hand. if we segregate the employee range into 4 streams (GP000001 to GP000100. set the statistics related rowcount to a value of -1. This requires a manual ‘catch’ of the real figures during a payroll run which has to be manually monitored. The solution to this problem could be to: ● ● ● ● Identify the tables used in the payroll engine Separate out these tables from other tables by putting these tables in independent tablespaces (1table per tablespace) For the tables identified in the previous step. In such a case the statistics calculation always sees 0 and therefore these tables are handled as unused or seldom used. payroll streaming can be defined as segmenting employees into defined streams. which start with a record count of 0 and end with a record count of 0. we can ensure that the database statistics do not negatively affect the tables. However with respect to the payroll engine there is an exception DB2 statistics handles some tables not as they should be handled.Database statistics – Diagnostic step 4 In the previous section. PeopleSoft Global Payroll Performance 13 TATA CONSULTANCY SERVICES . GP000201 to GP000300. Thus.

4% 71.8% 87% 98.8% 0. depends upon the employee population.0% 25. Essentially the tables are partitioned so that two or more processes (payroll streams) are simultaneously able to make changes to the same table for their corresponding and mutually exclusive rows.8% 1. server capacity and CPU states.8% 2.4% SYS 100% 1. please refer to solution ID 200748163 on the PS site.8% USER 0. some of the payroll tables are required to be partitioned in the pattern of the streams defined. PeopleSoft Global Payroll Performance 14 TATA CONSULTANCY SERVICES .6% 2.8% 5.4% IDLE For details on implementation of payroll streaming.2% 93% USER 2.0% 5. this is like how the load distribution would change by implementing streaming as opposed to sequential processing: CPU states before implementing payroll streaming (sequential processing):CPU 0 1 2 3 Average 0. among other factors.4% 96.8% 2.4% 7.4% 89. In the case mentioned above. The streaming option saves the processing time by making use of the unused server capacity in the sequential processing.0% 92.6% 3. if we assume an ideal scenario with 4 load sharing CPUs.6% SYS 3. under normal sequential payroll run.2% 1.0% 92.2% 1. From the database aspect.8% IDLE CPU states after implementing payroll streaming (parallel processing):CPU 0 1 2 3 Average 94. please note that the amount of time saved by implementing streaming.4% 10.2% 3.Fig 12 Payroll Engine Processing With Streaming Having said that.2% 3.

PS_GPCH_RP_FK01 29. PS_GP_PYE_PRC_STAT 13. PS_GP_PI_GEN_HDR 10. PS_GP_PYE_SEG_STAT 16. PS_GPCH_RP_SI07 31. PS_GPCH_RP_MT This list may need addition or deletion for a different version of payroll or for customized applications. PS_GP_RUNCTL 27.The solution referred above includes the reference to the list of the tables required to be partitioned for streaming to run successfully. In this case. PS_GP_PYE_RUN 15. PS_GPCH_RP_TX01 33. PS_GP_PYE_RCLC_WRK 14. run the streams again and check for success. PS_GPCH_RP_FK02 30. PS_GP_PI_GEN_SOVR 12. it was found that the following tables are required to be partitioned for streaming to run successfully. PS_GP_JOB2_WRK 5. PS_GP_OLD_RTO_WRK 8. PS_GP_RTO_TRGR 25. PS_GPCH_RP_0002 36. Case begins:In one of the tuning exercises. PS_GPCH_RP_TX05 34. PS_GP_RTO_TRGR_WRK 26. PS_GP_RSLT_PIN 22. PS_GP_RSLT_ERN_DED 21. PeopleSoft Global Payroll Performance 15 TATA CONSULTANCY SERVICES . PS_GP_RSLT_ACUM 19. PS_GPCH_RP_0001 35. 1. The shortest way of getting to know which tables have to be partitioned is by hit and trial method. you need to find out if the table was partitioned or not. PS_GP_NEW_RTO_WRK 7. PS_GP_RSLT_ABS 18. PS_GPCH_RP_SI08 32. PS_GP_HST_WRK 4. PS_GP_PI_GEN_DATA 9. PS_GP_GRP_LIST_RUN 3. PS_GP_RTO_TRG_CTRY 24. PS_GP_MESSAGES 6. Let us suppose you partition the tables listed above and still at least one of the payroll engine streams fails indicating that a table is locked by another process. PS_GP_RSLT_DELTA 20. PS_GP_PI_GEN_REF 11. PS_GP_RTO_PRC_WRK 23. PS_GP_EXCL_WRK 2. PS_GP_SEG_WRK 28. Partition the table. PS_GP_PYE_STAT_WRK 17.

● If a table is not partitioned. Populate the new table with the ‘old’ rows from the original table (insert into tab new select . the PeopleSoft metadata would not match with the table definitions on the database. It is not possible if an attribute needs to be eliminated or if changes are done for attributes with the types CHAR. FLOAT or if a varchar is being reduced in length. Diagnostic tools to be used in conjunction could be DB2 explain or any other tool recommended by your DBA. The new table may then be populated and the old table space dropped. this is how you alter it with ‘alter by rename’ option: 1.Another learning drawn from this exercise is the run control table for payroll engine . unload. One solution is to change the original table with an ALTER Table command. Rename new table to original name This process is no longer possible with tables in a partitioned TS. This table needs to have lock size of not more than 1 row per page for 2 or more streams to run in parallel. This is required to avoid one of the processes from locking the run control table while reading the parameters which can happen because the table size is small (usually not more than a couple of rows). You can find out which SQL is running slow using PS traces. temp tables) in a partitioned TS the process is shorter because no data is affected. partitioned tables had the following disadvantages: ● In a partitioned tablespace. SQL Tuning – Diagnostic step 6 The above 5 diagnostic and tuning exercises should result in fairly high degree of performance gain. load can be processed on a specific partition or can process the partitions in parallel to reduce elapsed time.PS_GP_RUNCTL. new table.. There is one advantage related with partitioned TS for the housekeeping process. This is possible only if new attributes are added to the table or if varchar attributes are to be enlarged. create new TS. re-organization. Case ends. Also it needs precise impact analysis since the dynamically generated SQLs in payroll engine may impact the performance in multiple dimensions at multiple instances. is to create a new table space (with the specific partitioning parameters set) and create the new table in it (partitioning index is mandatory. ● PeopleSoft application does not support making table partitioning through its development environment. From the database perspective. DECIMAL.. Further tuning can be made by diagnosing and tuning long running SQLs in the program. a table cannot be dropped explicitly. but the only solution for all kinds of changes. indexes. ● In partitioned TS. drop TS (table included). new index name is needed because original one cannot be dropped). 2. However. only one table can be created (table space (TS) and table definitions are related and dependent). Drop original table. Another time consuming solution. from tab old). please note that this exercise can be time consuming.I In a normally segmented TS you can create more than one table. It needs the TS to be dropped which drops the table implicitly. 4. PeopleSoft Global Payroll Performance 16 TATA CONSULTANCY SERVICES . 3. Create a table with the new structure (new attribute definitions) with a similar name in the same table space as the original table. Utilities like image copy. Rename the new table to original table name. DB2 historical traces or DB2 real time traces. For empty tables (work tables. Therefore after the tables are partitioned at the database level.

.8=Row Fetch (indicates that it occurred.16=All other API calls except SSBs .More information on the topic can be obtained from the PS customer connections. if you want statements. you would specify TraceSQL=137 (1+8+128). The parameter name is TraceSQL with value set as desired according to the following: TraceSQL is implemented as a bit map with the following values -1=SQL statements . Once you find the point of the problem. on the other hand. PeopleSoft Global Payroll Performance 17 TATA CONSULTANCY SERVICES . the next step is locating the clues provided for the problem at hand. For troubleshooting. not data) . Tracing can be used for trouble shooting logic issues also. sometimes it is best not to guess which values you want so 255 will set all values on -. :2 and so on) with appropriate values. disconnect.32=Set Select Buffers (identifies the attributes of columns to be selected. Break down the statement into smaller statements as needed to determine the cause of the problem. but that is another chapter. select ‘Product Related’.4=SQL connect.512=Sybase Fetch information So. note the cursor number -. As discussed above.64=Database API specific calls -128=COBOL statement timings .and the COBOL TraceSQL results. TraceSQL is not normally invoked during processing so the first step is to recreate the problem with TraceSQL invoked. It is that statement that needs to be further analyzed for the cause of the problem. having a low commit frequency (committing less often) may result in a conflict with payroll streaming. Working your way on up in the file. Once you have the cobsql file -. Therefore there remains a risk of clash on a un-partitioned table. Locate the SQL consuming high processing time. then select ‘Global Payroll’ and then click ‘Installation Settings’.2=SQL statement variables . A high commit frequency set at this place degrades the engine’s performance. Review the frequency set here and revise it to the optimal for a successful run. Lower the commit frequency. This is the basic for problems with SQL. Note that. Start by copying that statement into your SQL tool and replacing any variables (:1. Row Fetch and COBOL timings.except for the Sybase specific settings. the two (or more) streams run in parallel in case of streaming access the same tables at almost the same time.256=Sybase Bind information . locate the SQL statement that established this cursor. this is normally set in the file which sets parameters for the Process Scheduler. Below is a brief guide to using TraceSQL for trouble shooting.for example #12. For COBOL processes. higher the chances of such a clash. Commit level – Diagnostic step 7 To access the commit frequency for the payroll engine: Browse to ‘Set up HRMS’. commit and rollback .

Usually. GP_PIN record) only when it is required in situations where you encounter the element multiple times within the same slice or segment and you expect its resolved value to change. If the element has not been resolved. it first checks to see if that element has already been resolved for the payee for the appropriate slice. it becomes essential to look for potential payroll setup improvements. the system uses the previously resolved value. ● Arrays Arrays must be set up correctly in order to maximize performance.There are two attributes on the Element Name page that can affect performance and data volume: Always Recalculate and Store/Don’t Store. ● All Elements .It is important to find the appropriate order of your rows to minimize the call to the formula.Fictitious calculations .You should only be storing an element if it is needed in one of these situations: .You should select the Always Recalculate option (on the Element Name page. either in result tables or in a writeable array . Apply All Formulas Options . (b) When to store data . the system checks the Always Recalculate setting.Chart fields . with earnings and deductions you can indicate whether you want to check the resolved value or all individual component values to determine whether to store the element. (a) Calling the Lookup Processing Option Formula .Reporting. regardless of the Always Recalculate setting.Historical rules . The most important thing you can do to enhance performance is to reduce the number of times you call the lookup formula. When the PIN manager encounters an element. (c) Using the By Formula. PeopleSoft Global Payroll Performance 18 TATA CONSULTANCY SERVICES .Other payroll setups – Diagnostic step 8 Having worked on most of the possible technical tuning options. (b) Ordering the Fields Retrieved .There are multiple ways to set up an array. If the goal of your array is to return only one row by segment or slice. Unless you need the individual component values for purposes of reporting or historical rules. segment or period. if you do not see a considerable performance gain. If the setting is ‘No’. when you check an effective date it is better to order the date field by descending value. If the element has been resolved.Retroactivity . Each resolution slows down the performance. you should only be storing earnings and deductions if the resolved value is not zero. it is best to avoid the lookup formula process by using the key page with the appropriate conditions and the return page with the appropriate logical order.You may use By Formula or Apply All Rows if you need a first reading before handing the array. (a) Always Recalculate . The following sections have some tips to revise your payroll setup. the system automatically resolves the element.Audits In addition. If the setting is ‘Yes’. the system resolves the element. Apply All Rows and the By Row.

Thus you read the work schedule information only once. (e) Min/Max functions . ● Generation Control versus Conditional Section Logic As you know.● Formulas Consider the following options: (a) using variables with default values (b) formulas that use other formulas . the conditional sections skip element resolutions. (d) IF functions . Conversely.When you are using If logic in a formula. generation control and conditional section logic are two of the various ways that you can control if an element is resolved for a payee. select the Trace All option on the Payroll/Absence Run Control and execute your calculation. PeopleSoft Global Payroll Performance 19 TATA CONSULTANCY SERVICES . there is a big difference between generation control and conditional section logic. In fact. (b) the frequency at which your historical rule will be resolved. workdays and work hours for the same slice periods. you should try to read the work schedule only once in order to improve performance. ● Checking the Performance of Your Rules To check the performance of your rules. This will help you determine whether using a historical rule makes sense.When you need to retrieve the smaller or larger value of two or more elements. such as a termination. ● Proration Rules/Counts If you must access Work Schedule information. ● Historical Rules Before deciding whether to use a historical rule. You typically read a Work Schedule through a Count Element (which uses a formula that checks to see Scheduled Hours and so on). However. in order to help resolve Proration Rules. you should remember to use exit logic whenever applicable so that the system does not resolve any unneeded elements. But make sure that you understand the implications of conditional section logic before using it. so the PI will be ignored. If you have PI for an element in a section and the condition is false. If you are sure about your needs it is quicker to use a conditional section. you need to consider the following: (a) the number of periods or segments that your historical rule must read. it is better to have one count element to resolve all proration rules. The same concept is true for retro adjustments. (c) exit functions . if you have a group of elements that you know should never be resolved except in a specific situation.When you have multiple conditions. When you need to have multiple proration rules such as calendar days.You should always think about this when making the decision on whether to create a separate formula. it might make sense to use conditional section logic because it is easier and faster to bypass a subset of elements than to resolve generation control for each. Maintenance is also a consideration. such as scheduled hours and so on. you should always put the most popular condition at the top so that you match the majority of your population at the very beginning. it is better to use the Min/Max function as opposed to IF/Then logic. the element will not be resolved.

B.DIFF_SECONDS > 0 GROUP BY A. COUNT(*) “Count Nb”.110000 3. B.124400 .150000 . A.130000 .RECALC_IND.SUM_INSTANCE_IND ORDER BY 1.CAL_RUN_ID.124800 .It is recommended that you do not have more than 100 rows for the same effective date by bracket. PS_GP_PIN B WHERE A.140000 .550000 .PIN_NUM and A.After that you can utilize the SQL below to help analyze the performance of your rules. B.RECALC_IND.140000 .PIN_TYPE.SUM_INSTANCE_IND “Call From Process”.150000 .CAL_RUN_ID Like @CAL_RUN_ID and A. B. 1 2 3 4 5 6 7 8 9 10 11 12 CAL_RUN_ID KDG0101 KDG0101 KDG0101 KDG0101 KDG0101 KDG0101 KDG0101 KDG0101 KDG0101 KDG0101 KDG0101 KDG0101 PIN_NM DE_DV_DATA DE_SI_SETUP DE_INIT_PA DE_GR_EE DE_SI_EE_DATA DE_FL_INIT_ELIG DE_AB_DISABILITY_G DE_SI_RATE_FUND DE_SI_K_STATUS DE_SI_PROV_KEY DE_SI_A_PROV DE_CC_COND PIN_TYPE AR FM FM AR AR FM AR FM VR VR VR FM RECALC_IND Y Y Y Y Y Y Y Y N N N N Call From Process Y Y Y Y N Y N N N N N Y 1 25 1 1 1 1 1 25 25 25 25 1 Count No. PeopleSoft Global Payroll Performance 20 TATA CONSULTANCY SERVICES . you should consider using an array instead.DIFF_SECONDS) “Delay in Second”.100000 Average .130000 3.100000 Fig 13 Payroll Engine – Performance of Payroll Rules Brackets . DECLARE @CAL_RUN_ID VARCHAR (18) SET @CAL_RUN_ID = ‘KD%’ SELECT A.CAL_RUN_ID. B.110000 . Delay in Second . The payroll setup recommendations above have been extracted from the ‘Tuning PeopleSoft Global Payroll’ document available over customer connections.130000 .PIN_NUM = B.110000 3.120000 3.150000 . If you have more than 100 rows for a bracket.DIFF_ SECONDS) “Average “ FROM PS_GP_AUDIT_TBL A.PIN_NM.370000 4.124400 .PIN_NM.124400 . B.PIN_TYPE.150000 .130000 . 8 DESC No.182000 . AVG (A. SUM (A. Additionally please see the document referred above to find details on the sections mentioned above and also to find information on ‘Methods for Reducing the Size of Result Tables’ and ‘List of Tables to Aid in Archiving Solutions’. A.370000 .

Address the processing time 3. Systems Engineer with server capacity. Find the culprit area 4. Freeze The following would be an optimal task force for the tuning activities to guarantee success: 1. PS payroll business analyst 3.6 Other payroll setups – Diagnostic step 8 References PS 8. the tuning exercise can be structured in the following way: 1. Benchmark the target 2.peoplesoft. Address the DB2 wait time – Diagnostic step 2 3.5 Commit level – Diagnostic step 7 3. To ensure that the correct node is looked at and the culprit issue is found and corrected without wasting effort at non important subjects.Summary & Conclusion PS payroll engine performance tuning is a vast subject with multiple nodes.2 Database statistics – Diagnostic step 4 3. utilization insight Also.1 Environment health check – Diagnostic step 3 3. Address the system Idle time (tuning z/ http://www. Disk I/O etc) – Diagnostic step 1 2. Fix and compare against the benchmark 6.3 Global Payroll PeopleBook Oracle PeopleSoft website .http://www.db-consulting.4 SQL Tuning – Diagnostic step 6 3. Identify the best fit solution 5. Some of the nodes may not be applicable at a particular installation. Team lead/coordinator 2. PS payroll technical developer 4. identifying the loophole and applying the best fit solution should be carried out in the following sequential fashion: 1. PS DBA PeopleSoft Global Payroll Performance 21 TATA CONSULTANCY SERVICES . Identify the task force 3.3 Payroll partitioning – Diagnostic step 5 3.

republished. Karnataka. The 350+ consultants in TCS PeopleSoft are spread across different geographies and they offer solutions focusing on Human Resource Management (HRMS). its internal systems with its customers. No.18. The PeopleSoft Practice specializes in implementation. Retail and Healthcare. modified. All content / information present here is the exclusive property of Tata Consultancy Services Limited (TCS). reproduced. trademark and other applicable laws. upgrade and production support services of PeopleSoft applications. uploaded. posted or distributed in any form without prior written permission from Website : www. No material from here may be copied. Supply Chain Management (FSCM) and Customer Relationship Management (CRM). Financial Services / Insurance. services and business process outsourcing organizations. and could result in criminal or civil penalties.tcs.srinivasan@tcs.600 009. India Phone: +91-80-5660 6421 Fax: +91-80-2220 7510 Email: natarajan. suppliers and business partners is a huge challenge. Sheshadri Road.About PeopleSoft Practice Building an internet-based real-time enterprise is a DREAM! Connecting and synergizing the enterprise. Tata Consultancy Services (TCS) is among the leading global information technology consulting. Pioneer of the flexible global delivery model for IT services that enables organizations to operate more efficiently and produce more value. Pharmaceuticals. The content / information contained here is correct at the time of publishing. PeopleSoft Practice consists of more than 350 consultants addressing the needs of global customer base in verticals as Telecom. Copyright © 2004-05 Tata Consultancy Services Limited PeopleSoft Global Payroll Performance 22 TATA CONSULTANCY SERVICES . About Tata Consultancy Services For more information contact Natarajan Srinivasan Tata Consultancy Services Limited SJM Towers. Unauthorized use of the content / information appearing here may violate copyright. Bangalore . Gandhinagar. Financials. TCS focuses on delivering technology led business solutions to its international customers across varied industries. The PeopleSoft practice at TCS helps organizations translate this dream into reality through PeopleSoft applications. transmitted.