■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■
■
■ 注意 : セットアップファイルは、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表現するケースもあるので、要注意