Troubleshooting
Problem
Db2 V11.1 では、V10.5 以前では発生しなかった集約関数 SUM を使う SQL 文で、「SQL0802N 算術オーバーフロー、またはその他の算術例外が 発生しました。」のエラーが発生する可能性があります。
Symptom
V10.5では問題が無く実行できたSQL文がSQL0802Nで失敗しました。テーブル定義およびテーブルデータの変更はありません。db2exfmtを使ってOPTIMIZED STATEMENTを比較したところ以下の特徴がが見られました。
Original Statement:
------------------
SELECT ...
(SELECT SUM(T1.C1) FROM T1 WHERE T1.C2 = T2.C1)
...
(SELECT SUM(T1.C1) FROM T1 WHERE T1.C2 = T2.C1)
...
(SELECT SUM(T1.C1) FROM T1 WHERE T1.C2 = T2.C1)
...
) FROM T2
Original Stetementは、同じ副照会を複数指定していますが、Optimized Statement では、共通の副照会を一度に実行しGROUP BY で C1 の値でまとめた後、WHERE で抽出しているようです。V10.5では、このような変換は行われていませんでした。
Optimized Statement:
-------------------
SELECT ...
(SELECT
Q11.$C0
FROM
(SELECT
SUM(Q10.C1),
Q10."C2
FROM
(SELECT
Q9.C1,
Q9.C2
FROM
T1I AS Q9
) AS Q10
GROUP BY
Q10.C1
) AS Q11
WHERE
(Q11.C1 = Q8.C2)
) AS Q12
[{"Type":"MASTER","Line of Business":{"code":"LOB10","label":"Data and AI"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSEPGG","label":"Db2 for Linux, UNIX and Windows"},"ARM Category":[{"code":"a8m500000008Pl0AAE","label":"Compiler-\u003EQuery Rewrite"}],"ARM Case Number":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"11.1.0;11.5.0"}]
Log InLog in to view more of this document
This document has the abstract of a technical article that is available to authorized users once you have logged on. Please use Log in button above to access the full document. After log in, if you do not have the right authorization for this document, there will be instructions on what to do next.
Was this topic helpful?
Document Information
Modified date:
30 April 2025
UID
swg22011444