Limit the Use of Data Areas – and Boost Performance

Kaare Plesner
Kaare Plesner
June 14, 2025

Data areas are a familiar tool for many Power i developers—but in terms of performance, they’re not always your friend. When we analyze customer systems, we’re often surprised by how frequently data areas show up in performance-critical parts of the code. If your application accesses a data area inside the main loop of a program, chances are you're slowing things down more than you realize.

‍

Why data areas can be costly

Data areas have been around since the System/38 days, and they still follow the same rules: every usage generates a disk access. That might not sound like much, but if your program is hitting a data area repeatedly—especially in a tight loop—that overhead adds up fast.

‍

Our tool GiAPA frequently highlights this issue in its reports. One customer job, for example, showed a dramatic performance gain potential simply by replacing the data area with a more efficient object.

‍

The better alternative: user spaces

Instead of data areas, we recommend using user spaces. Many developers aren’t familiar with them, but they’re essentially large, memory-resident data areas—up to 16 MB in size—that offer much better performance.

‍

Why are they so fast?

You can access a user space without involving any I/Os via a pointer obtained using the QUSPRTUS API. Our tests run doing 100.000 both updates and reads show that a data area is 196 times slower than a user space.”

‍

User spaces are normal permanent objects. You can save and restore them like any other object, and they can be shared across jobs (given the right authority).

‍

‍

How to identify data area hotspots

GiAPA automatically flags inefficient data area usage by analyzing the call stacks of CPU-intensive jobs. You can also identify data area activity yourself:

  • Use DSPPGMREF to list which programs reference data areas.
  • Use *DSPJOB OPTION(PGMSTK) and press F5 repeatedly to see which programs are active.
  • Frequent entries like QCLRTVDA, QWCCCHVC, QWCCCRVC, QWCCDSVC, QWCRDTAA or QWCSRTVR can be signs of performance bottlenecks due to data area use.

‍

Final tip

If you’re aiming for better system performance and still rely on very frequent use of data areas, now is a great time to explore user spaces. It’s a simple switch that could save you serious CPU—and help your applications scale more efficiently.

Share THIS Article