Skip to Main Content
IBM Data and AI Ideas Portal for Customers


This portal is to open public enhancement requests against products and services offered by the IBM Data & AI organization. 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 (https://ideas.ibm.com).


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

Post ideas and requests to enhance a product or service. Take a look at ideas others have posted and upvote them if they matter to you,

  1. Post an idea

  2. Upvote ideas that matter most to you

  3. Get feedback from the IBM team to refine your idea


Specific links you will want to bookmark for future use

Welcome to the IBM Ideas Portal (https://www.ibm.com/ideas) - Use this site to find out additional information and details about the IBM Ideas process and statuses.

IBM Unified Ideas Portal (https://ideas.ibm.com) - Use this site to view all of your ideas, create new ideas for any IBM product, or search for ideas across all of IBM.

ideasibm@us.ibm.com - Use this email to suggest enhancements to the Ideas process or request help from IBM for submitting your Ideas.

IBM Employees should enter Ideas at https://ideas.ibm.com


Status Not under consideration
Workspace Db2 for z/OS
Created by Guest
Created on Jul 14, 2020

Improve performance of except statement

Hi,

For the first time I had a use for the except statement. It is quite simple:

SELECT DISTINCT LOG_PGM

FROM BDSTB030_BDSLOG

EXCEPT

SELECT LOG_PGM

FROM BDSTB031_BDSLOG_SLET

I want all LOG_PGM from the first table, that is not in the second table. LOG_PGM is unique in the second table, not in the first.

There is 250 rows in the second table, and 370M rows in the first, spread over 380 LOG_PGM

This returns the following Processor Milliseconds: 1997980 and Processor Service Units: 73999264

I did not understand why this was happening.
In the first table there is an index on LOG_PGM, so doing the select distinct LOG_PGM should be fast.

I tried just that part of the SQL, and it is FAST, with the following processor numbers: 2 and 73.

So I did the following:

SELECT LOG_PGM

FROM (

SELECT DISTINCT LOG_PGM

FROM BDSTB030_BDSLOG )

EXCEPT

SELECT LOG_PGM

FROM BDSTB031_BDSLOG_SLET

This causes DB2 to materialize the first part of the except before doing the except

this gives processor numbers: 3 and 84, a great improvement to the first SQL.

I think DB2 should be able to determine this approach by itself, and therefore give better performance to all SQL of this type.

Thanks

Regards,

Rune Christensen

Needed by Date Oct 20, 2020
  • Admin
    Janet Figone
    Reply
    |
    Dec 10, 2020

    Thank you for submitting this Db2 for z/OS enhancement request.

    After giving the request a comprehensive review, we have determined that we cannot include it as a candidate in an upcoming product deliverable.

    While Db2 agrees that there are opportunities to improve the performance of EXCEPT, the low customer usage of this feature (and low number of votes for this requirement) means that Db2 will not be able to prioritize this enhancement within the next release.

    We appreciate your input to the Db2 for z/OS development team. We also hope that you will continue to submit ideas for improvements as customer feedback is a key component to shaping the future direction of Db2 for z/OS.

    Sincerely,

    Db2 for z/OS Team