自由気ままに書いちゃおう

好きなことをつらつらと・・・

OracleDatabase12.2 セグメントアドバイザについて

前回、下記の記事を記載致しました。

www.guri2o1667.work


この中の一つの機能である「セグメントアドバイザ」について記載致します。

 

■セグメントアドバイザとは?

再生可能な領域が存在しているセグメントを識別し、
それらのセグメントの断片化を解消する方法について推奨事項を生成します。

■断片化(フラグメンテーション)について

ハードディスク内の空き領域がバラバラになり、空き領域の有効活用ができていない状態(=未使用領域の放置)を示します。

フラグメンテーション(フラグメント)とは - IT用語辞典 e-Words

■Oracleにおける断片化とは?

Oracleの内部仕様に触れますが、
以下の通り断片化が発生している箇所に応じて、対応方法も異なってきます。

f:id:guri2o1667:20200615132906p:plain

Oracleにおける断片化の種類と解消方法~表領域、セグメント、エクステント、ブロック、テーブル、索引 | Oracle オラクルエンジニア通信 - 技術資料、マニュアル、セミナー Blog

■未使用領域の再利用について

セグメント・アドバイザによって、
自動ワークロード・リポジトリ(AWR)の使用状況と増加に関する統計情報を調べ、
セグメントのデータをサンプリングして、分析を実行します。

大事なのは、分析&分析結果の提案のみであること!
分析結果の提案に対するアクションは各々が判断し実行する必要があります。
※提案内容には、実際に実行するSQL文が含まれています。

スキーマ・オブジェクトの領域の管理

■セグメントアドバイザの具体的な結果(=生成物)について1

スキーマ・オブジェクトの領域の管理
以下の通りです。()内はビュー名です。

① 推奨事項(DBA_ADVISOR_RECOMMENDATIONS)

推奨事項の例は以下にございます。

スキーマ・オブジェクトの領域の管理(表19-5)

 

② 結果(DBA_ADVISOR_FINDINGS)

分析対象のセグメントでセグメント・アドバイザが観察した内容のレポートです。
結果の内容は、上記URL内の「表19-5」にあります。

③ 処置(DBA_ADVISOR_ACTIONS)

セグメントの縮小または表の圧縮を実行するために使用できるSQL、またはオブジェクトを再編成するための提案が表示されます。

④ オブジェクト(DBA_ADVISOR_OBJECTS)

上記①、②、③が紐づけられたものです。

■セグメントアドバイザの具体的な結果(=生成物)について2

セグメントアドバイザの結果を確認する際、
前述の通り、「②結果(DBA_ADVISOR_FINDINGS)」を確認してもよいのですが、
ASA_RECOMMENDATIONSプロシージャを利用する方が結果が見やすい場合があります
ASA_RECOMMENDATIONSプロシージャは、
自動セグメントアドバイザーの保存された結果を使用して推奨を返します。
指定されたオブジェクトに対する最新の実行の結果を返します。

DBMS_SPACE
⇒ 148.3.1 DBMS_SPACE ASA_RECOMMENDATIONS Function

select tablespace_name, segment_name, segment_type, partition_name,
recommendations, c1 from
table(dbms_space.asa_recommendations('FALSE', 'FALSE', 'FALSE'));


以上です。