質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
DB2

DB2(IBM Database2)は、IBMのリレーショナルデータベース管理システム製品です。 UNIXとWindows、IBM社のメインフレームOS用が用意されており、 幅広いプラットフォームに対応しています。

Q&A

解決済

1回答

20225閲覧

シーケンスオブジェクトの現在値確認

a802

総合スコア15

DB2

DB2(IBM Database2)は、IBMのリレーショナルデータベース管理システム製品です。 UNIXとWindows、IBM社のメインフレームOS用が用意されており、 幅広いプラットフォームに対応しています。

0グッド

0クリップ

投稿2017/03/03 03:13

DB2で、シーケンスオブジェクトを使っている場合
そのシーケンスオブジェクトが何番まで採番されているか
確認する方法を教えてください。

具体的にSQL文を書いて頂けると助かります。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

DB2 for LUWであれば、以下のSQLで次に割り振られる値が取得できます

sql

1SELECT NEXTCACHEFIRSTVALUE FROM SYSCAT.SEQUENCES WHERE SEQNAME = 'シーケンス名'

SYSCAT.SEQUENCES カタログ・ビュー

投稿2017/03/03 03:38

SVC34

総合スコア1149

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

a802

2017/03/05 21:53

回答ありがとうございます! そのSQLは試してみたのですが、CACHEの値ごとに飛ばされて表示され、上手く表示されないのです。 例えばスタート値100、増分値1、CACHE20の場合、 NEXTCACHEFIRSTVALUEに101~120が表示されてほしい時は120が表示され、 NEXTCACHEFIRSTVALUEに121~140が表示されて欲しい時は140がずっと表示される、 といったような感じです。 伝わりますでしょうか・・・? この問題の対処方法も教えて頂けると幸いです。 宜しくお願いします。
SVC34

2017/03/06 01:53 編集

DB2は1回目のNEXT VALUE要求に対して、CACHEで設定された分の連番をまとめてメモリ上にキャッシュします。この時、NEXTCACHEFIRSTVALUEもCACHEの分一度に増加します。2回目以降のNEXT VALUE要求では払い出し済みのキャッシュが使用されますが、そのうちどこまでを実際に使用したかはNEXT VALUEを要求しなければ分かりません。しかし、NEXT VALUEを要求すると番号が新たにひとつ使用済みになってしまいます。PREVIOUS VALUE要求でも、これで確認できるのは1コネクション内で最後にNEXT VALUEで取得した値です。 本当にどこまで採番されたかをトラッキングする必要がある場合は、CACHEオプションをNO CACHEに変更してください。ALTER SEQUENCEでも変更可能です。NO CACHEであれば、常にNEXTCACHEFRISTVALUE - 1が最後に払い出された番号になります。ただし、NO CHACHEでもNEXT VALUE要求したトランザクションがROLLBACKした場合、払い出された番号は再使用されないため、その部分は歯抜けになります。 一見不便に見えますが、これらはシーケンスオブジェクトのスループット向上とのトレードオフになっています。これらが許容されない場合は、シーケンスオブジェクト以外の手段(採番用テーブル等)を検討してください。 シーケンスの設計 https://www.ibm.com/support/knowledgecenter/ja/SSEPGG_11.1.0/com.ibm.db2.luw.admin.dbobj.doc/doc/t0023352.html
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問