Skip to Main Content
IBM Power Ideas Portal

This portal is to open public enhancement requests against IBM Power Systems products, including IBM i. To view all of your ideas submitted to IBM, create and manage groups of Ideas, or create an idea explicitly set to be either visible by all (public) or visible only to you and IBM (private), use the IBM Unified Ideas Portal (

Shape the future of IBM!

We invite you to shape the future of IBM, including product roadmaps, by submitting ideas that matter to you the most. Here's how it works:

Search existing ideas

Start by searching and reviewing ideas and requests to enhance a product or service. Take a look at ideas others have posted, and add a comment, vote, or subscribe to updates on them if they matter to you. If you can't find what you are looking for,

Post your ideas
  1. Post an idea.

  2. Get feedback from the IBM team and other customers to refine your idea.

  3. Follow the idea through the IBM Ideas process.

Specific links you will want to bookmark for future use

Welcome to the IBM Ideas Portal ( - Use this site to find out additional information and details about the IBM Ideas process and statuses.

IBM Unified Ideas Portal ( - Use this site to view all of your ideas, create new ideas for any IBM product, or search for ideas across all of IBM. - Use this email to suggest enhancements to the Ideas process or request help from IBM for submitting your Ideas.

Status Not under consideration
Workspace IBM i
Categories Db2 for i
Created by Guest
Created on Jun 17, 2021

Improve Performance of QSYS2.BOUND_SRVPGM_INFO

The performance of QSYS2.BOUND_SRVPGM_INFO is really bad when you're using it in order to get all programs that use a specific BOUND_SERVICE_PROGRAM. More details can be found in the defined Use Case.

However, using the same View with the given statement below performs just fine:

Use Case:

Trying to automate our RPG deployment, I figured it would be great to use QSYS2.BOUND_SRVPGM_INFO in order to get a list of programs that need to be recompiled due to changes to other programs that just got deployed. Therefore, I would need to execute the following SQL statement:

Executing this SQL statement lasts between 2 to 4 minutes on our system, which would lead to ernormous long deployment times in larger automated scenarios.

Idea priority High
  • Guest
    Aug 5, 2021

    IBM does not intend to provide a solution to this request at this time, so it is being closed.

    When you use this view without restricting the libraries it needs to examine, it finds every program and service program in every library on the system at the time the query is run. Gathering live data can take some time.

    One option that should help is to use the WHERE clause to include or exclude libraries the request uses.
    WHERE PROGRAM_LIBRARY IN (lib1, lib2, lib3, etc)
    WHERE PROGRAM_LIBRARY NOT IN (QSYS, , testlib1, userlib1, etc)
    This limits the search to only the libraries that the WHERE clause allows.

    This query can help you find libraries that might be worth adding to the NOT IN list:
    select count(*), program_library from qsys2.program_info
    group by program_library
    order by 1 desc;

    A second option is to run this view in the background to maintain a data mart, similar to what you appear to be doing today.

  • Guest
    Jul 20, 2021

    The CAAC has reviewed this requirement and recommends that IBM not implement this request. To do this, you really need a Datamart that is updated at deployment time, as do many/most change management products.

    Background: The COMMON Americas Advisory Council (CAAC) members have a broad range of experience in working with small and medium-sized IBM i customers. CAAC has a key role in working with IBM i development to help assess the value and impact of individual RFEs on the broader IBM i community, and has therefore reviewed your RFE.

    For more information about CAAC, see

    Nancy Uthke-Schmucki - CAAC Program Manager