2023.07.20

【 Majesty For Oracle Ver6.1 】

■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■

■ 注意 : セットアップファイルは、PARTITIONモデルのみ提供しています

■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■

■ V6.1の変更内訳

ー DB Objectの変更及びエージェントのBugfix

ー 「INDEX(アクセスパス)」と「アクセスルート」のデータ分布分析機能追加

統計情報(NUM_DISTINCT、NUM_ROWS)を活用して、INDEXとアクセスルートのデータ分布を分析します。

1)INDEXのデータ分布

・INDEXの項目順の単位でSelectivity(%)とCardinalityを分析します。

Selectivity = 「1項目の (1/NDV)」「n項目の (1/NDV)」

Selectivity(%) = Selectivity*100

Cardinality = Selectivity*TotalRows

・INDEXの効率性を分析することができます。

INDEX活用時の性能効果の程度を把握することができます。

さらに、INDEX項目順毎に分析できるので各CASEの効率性を分析できます。

・ Selectivity(%) >= 10 % は、要注意のケースです。

TotalRows、Cardinality、実行頻度などを共に判断する必要があります。

・ 反映画面

アクセスパターン分析、INDEXの効率分析(新規)

2) アクセスルートのデータ分布

・ アクセスルートのSelectivity(%)とCardinalityを分析します。

Selectivity = 「項目が=条件の場合は、(1/NDV)」「その他の場合は、0.1固定」

※注意: INDEXのSelectivityの計算式と異なります。

Selectivity(%) = Selectivity*100

Cardinality = Selectivity*TotalRows

・ アクセスルートの効率性(業務仕様の効率性)を分析することができます。

・ Selectivity(%) >= 10 % は、要注意のケースです。

TotalRows、Cardinality、実行頻度などを共に判断する必要があります。

・ 反映画面

アクセスパターン分析

★ 注意1: 統計情報(NUM_DISTINCT、NUM_ROWS)を活用した分析ですので、統計情報を収集する必要があります。

統計情報収集をジョブスケジューラーに登録して運用してくだだい。

(お勧め: 月1回、06時前後実行、できるだけ既存ジョブと実行時間が衝突しないように)

★ 注意2: 既存運用中のプロジェクトに「Selectivity(%)とCardinality」情報をすぐ反映するためには、

アップグレード後に、プロジェクト・ブラウザー画面で統計情報収集を手動実行してくだだい。

テーブル数の多いプロジェクトの場合は、処理時間を要します。

目安の処理時間の確認は、「その他ージョブスケジューラ画面-ジョブ実行統計」画面を開き、

上段グリッドで「PROCESS項目=STATISTICS、UNIT=GatherStats、P_NO=該当プロジェクトNO」

となっている行を探し、LAST_ELAPSED、MAX_ELAPSEDの時間をご参考ください。

ー 20180703 (PATCH_REPO_DATE : 20180612)

テーブルアクセス分析画面でアクセスパターン0件テーブル選択時に発生するトラブル対応(アプリのみ改修)

ー 20180712 (PATCH_REPO_DATE : 20180612)

SQLテキストの件単位収集処理オプション追加(リポジトリのみ改修)

ー 20180724 (PATCH_REPO_DATE : 20180612)

・ アクセスパターン出力のSCRIPTバージョンの変更: テーブル名を全アクセスルート出力行に共に出力する(リポジトリ)

・ 一部グリッドで1番目の列の幅が固定されてしむ現象を改修(アプリ)

ー 21080828 (PATCH_REPO_DATE : 21080828) USID自動取得の機能変更・追加

・ USID取得対象範囲を、SQLテキストの前方256byteから1024byteに変更

・ USID取得対象範囲を、SQLテキストの後方も追加(前方か後方かどっちか選択)

・ USID設定画面の修正あり

ー 20180912

・ oracle 18c 対応 確認

ー 20180921

・ オブジェクト情報収集の未完了、または非正常に終了後に、実行されたジョブの中止メッセージを変更

・ 「プロジェクト登録処理がまだ完了していません。登録処理(オブジェクト情報収集)がまだ実行中か、非正常終了しています。

ジョブ実行ログを確認してください。当ジョブを中止します。」

■ V6.1 20180612 アップグレード手順

※リポジトリモデルをご確認のうえ、該当セットアップファイルを入手してください。

1.リポジトリのアップグレード

※注1:このパッチは、[V6.0 20180110] リポジトリを最新バージョンへアップグレードするパッチです。

[V6.0 20180110]までアップグレードした後に適用してください。

※注2:実行時に「すでに存在している」[存在しません」などのエラーが発生する場合がありますが、不具合ではありません。

※注3:マジェスティのジョブが実行中の場合は、ジョブの終了後、またジョブをDisableした後にに行ってください。

① エージェントプロラムを停止する。

② iaRepoFilesUpgフォルダーをSQLPlusで参照できる場所にコピーします。

③ sqlplusを起動します

④ iaRepoMig.sqlファイルを実行し、リポジトリをアップグレードします。

sql>@iaRepoMig.sql

2.クライアントのアップグレード

・ 設置のためのインストーラはありません。Portableバージョンです。

・ セットアップファイルのiaclientFilesの下の「Sysbank\Majesty for Oracle\vX.X」を

ProgramFiles以外の場所にコピーしてください。

「MaestroAgent.exe」を実行してエージェントを起動します。

※V5.Xがらアップ時は、.NetFramework 4.0を追加してください。(Winodws8以上では不要)

・ 古いバージョンがある場合は、できるだけ既存のディレクトリ構造に合わせてコピーしてください。

EX)

C:\Sysbank\Majesty for Oracle\v5.4

C:\Sysbank\Majesty for Oracle\v6.0

・ 古いバージョンを使用しない場合は、該当バージョンのフォルダーを削除してください。

V5.X以下を使用しない場合は、Windowsアプリからアンインストールしてください。

3.★ 注意 ★

既存運用中のプロジェクトに「Selectivity(%)とCardinality」情報をすぐ反映するためには、

アップグレード後に、プロジェクト・ブラウザー画面で統計情報収集を手動実行してくだだい。

■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■

■ Selectivity、Cardinalityに関する補足説明

■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■

1.NDV(Number Of Distinct Value、項目表現)

・Table Statistics (dba_tables, dba_tab_statistics )の Num_Distinct

2.Density(密度、項目表現)

・1 / NDV , 0 <= Density <= 1

・Table Statistics (dba_tables, dba_tab_statistics )のDensity

3.Selectivity(選択度、条件表現)

・ある条件を満足するデータが占める比率

・0 <= Selectivity <= 1, 0 : 0件, 1 : 全件

※マジェスティ画面上は、%(Selectivity*100)に変換して表現しています

0 <= Selectivity(%) <= 100, 0 : 0件, 100 : 全件

4.Cardinality(条件表現)

・ある条件を満足する処理対象の行数

・Selectivity * Total Rows

・E-Rows(Estimate-Rows)

Optimizerが算定した予想件数

最適の実行プランを作成するための最も重要な情報

・A-Rows(Actual-Rows)

・Selectivity → Cardinality → Cost → Access Path、Joinなど選択

・もし、Optimizerが正確なE-Rowsを予想できたら、Optimizerが作成した実行プランより、良いプランを作成することはできない。

(勿論、最適のOptimizing Factorを用意するのは我々の責任)

・CF: NDVをCardinality表現するケースもあるので、要注意