1

7列しかない複雑なテーブルがありましたが、本番環境では、100,000行を超える多くの行があります。

したがって、このために、2つの列に対してRUNSTATSを実行します。1つはPKで、もう1つはFKです。

RUNSTATS ON TABLE WEBSS.P0029_LOCATION  WITH DISTRIBUTION ON COLUMNS (LOC_ID, OUTLET_ID);

この後私が走るとき

SELECT * FROM SYSCAT.COLDIST WHERE TABSCHEMA = 'WEBSS' AND TABNAME = 'P0029_LOCATION' 

結果として、60行になりました。2列にそれぞれ30行あります。タイプがQとFであるという点で、分位数と頻度です。

しかし、私はこれについてもう少し入力する必要があります..それら(QとF)がどのような基準で定義されているか..どのような基準で最適化する必要がありますか。

あなたの提案を注いでください。

4

1 に答える 1

2

DB2には、2種類の列統計があります。列のカーディナリティとヌルの数を取得する単純なものと、上記で収集した分布統計です。

非常に偏ったデータでリテラル検索を行わない限り、ほとんどのアプリケーションでは単純な統計の方が適していることがわかりました。

PKとFKにインデックスが定義されている場合は、次のような単純な統計を取得します。

RUNSTATS ON MYTABLE ON KEY COLUMNS

また

RUNSTATS ON MYTABLE ON ALL COLUMNS

分位数はヒストグラムデータであり、デフォルトでそれぞれ20個のヒストグラム値を取得します。Fは列で最も一般的な値であり、デフォルトで10個を取得します。PKは独自のものであるため、ディストリビューションは必要ありません。また、FKでもディストリビューションが必要になる可能性はほとんどありません。最初に単純なものに固執します。

于 2012-12-01T15:47:50.153 に答える