1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

IBM i 駆け出し日記:物理ファイルのテーブル行数を調べる

Last updated at Posted at 2025-02-13

はじめに

メモ書き記事です。

QSYSOPRで「レコード件数が閾値に達している」とエラーメッセージが表示され、「物理ファイルのテーブル行数値について上手いハンドリングはないか」とご質問をいただきました。

そもそもIBM i の上限値というものが存在するとのことです。上限値行くことなんてあるんだ、とびっくり。歴史あるシステムだからですね。
上限値について噛み砕いたわかりやすい記事

調べる方法

ACS

ACSのスキーマ機能を使って調べます。
image.png
対象ライブラリー配下(SAKURALIB)の表を選択すると、ライブラリ配下の物理ファイル一覧が並びます。一番右の行カウント列が物理ファイルのテーブル行数値です。
image.png

右上の真ん中のアイコンから列に表示する項目のカスタマイズができます。そこで行カウントを選択すると行数表示が出ます。
image.png

SQL

SYSTABLESTATビューを利用しました。

SELECT 
    TABLE_NAME, 
    NUMBER_ROWS
FROM 
    QSYS2.SYSTABLESTAT
WHERE 
    TABLE_SCHEMA = 'SAKURALIB';  -- 対象のスキーマ名を指定

実行結果はこちら、ACSと同じ行数が表示されています。
image.png

CL

DSPFD FILE(*ALL/*ALL) TYPE(*MBR) OUTPUT(*OUTFILE) FILEATR(*PF) OUTFILE(SAKURALIB/DSPFD)

OUTFILE出力にしないとQPDSPFDが最大レコード数に達したとのことで表示できません。
またCLですとFILE(*ALL/*ALL)でライブラリー全件に対して一気に検索をかけられます。

実行したのちDSPFを見た結果です。
image.png

1
0
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?