Posts

Showing posts with the label performance

Reorganising database reduces IO load by a huge factor

Image
Today I learned that an IO bottleneck in Oracle can be reduced significantly if the database is reorganized. We had a problem with a badly designed database file layout. SAP application, Oracle data files and the redo logs were all configured to be stored on a single disk. A higher than normal load on SAP system caused the entire system to crawl. Quickly checking a few transactions, which included ST06, showed that the response time of disks was very high, more than 500 ms. Before planning to redistribute the data files and redo logs away to a new disk, someone wanted to try a DB reorganization. When you reorganize the database, the fragmentation of data is reduced. So a read requires fewer blocks to be read and thus reduces the load on the disk. After the DB was reorged, problem was gone!

SYSTAT IDocs Causing High IO Load

Image
The status idocs processed by SAP PI/XI can cause high CPU wait times (because of increased I/O activity). If you notice high CPU usage with most of the CPU spent on wait, check if there are SYSTAT IDocs are being processed (you can check SMQ1/SMQ2 with slow moving queues) If you check the SQL statements being executed at that moment, you might notice the following statement: SELECT * FROM IDXRCVPOR WHERE IDOCNUMBER = <some IDOC number> You might notice the SQL statement showing up in SM66 for 5-6 seconds and the explain statement would show very high IO-Costs in it is performing a full table scan. To address this performance problem, create an index on IDOCNUMBER column of the table IDXRCVPOR

SAP Memory Parameters Tuning - Part 1

Image
Roll and Extended Memory ztta/roll_first - This is the first area of memory assigned to a work process. This parameter is usually set to 1 as a technically necessity as the modern applications will end up using more memory than the first roll segment. Even if ztta/roll_first is set to 1, the minimum amount required for administrative data is allocated from roll memory. It is best to leave the parameter at 1. ztta/roll_extension - Further memory allocation to the work process is done from Extended Memory, after first roll segment is used up. ztta/roll_extension parameter determines how much memory can be used by a user context in the extended memory. In other words, this is the limit of the SAP Extended Memory for each work process. This is true in most cases, however, ztta/roll_extension is Extended Memory limit for a single "i-mode". Depending on the number of i-modes, normally up to 6, the value of maximum extended memory can raise up to 6*ztta/roll_extension theoret...