Oracleのパフォーマンスを最適化するORACLE MASTER Silver DBA講座(19)(2/2 ページ)

» 2007年08月01日 00時00分 公開
[有限会社 G.F.インフィニティ (Project - ∞)]
前のページへ 1|2       

問題

問題1

次のコマンドを確認してください。

SQL> ALTER TABLE emp SHRINK SPACE;

このコマンドを実行するために必要な条件を選択しなさい。

a.表に索引が作成されていないこと
b.表が自動セグメント領域管理の表領域に格納されていること
c.表の行管理が有効化されていること
d.表に主キー制約が存在すること

正解:b、c

解説

 前回、宿題とした問題です。

 ALTER TABLE ... SHRINK SPACEコマンドは、セグメントを縮小するコマンドです。セグメントの縮小においては、既存レコードを移動する「圧縮」、最高水位標(High Water Mark)を下げて空きブロックを解放する「解放」の2段階で操作が行われます。

 圧縮によるレコードの移動が行われるとレコードのROWIDが変化する可能性があることから、行管理の有効化(ALTER TABLE ... ENABLE ROW MOVEMENT)が必要です(正解c)。

 圧縮操作の結果は、ビットマップブロックと呼ばれるブロック内に格納されます。ビットマップブロックが用意されるのは、自動セグメント領域管理の表領域です(正解b)。

 そのほかの選択肢の不正解の理由は次のとおりです。

選択肢a:索引が作成されていてもかまいません。同時に索引の縮小も行うには、ALTER TABLE ... SHRINK SPACE CASCADEコマンドを使用します。索引のみをALTER INDEX ... SHRINK SPACEコマンドにて縮小することも可能です。

選択肢d:主キー制約が存在していなくてもかまいません。

問題2

DBA_TABLESビューにおいて、オプティマイザ統計が正常に収集されたことを確認するために使用できる列を3つ選択しなさい。

a.初期エクステントサイズ
b.行数
c.ブロック単位の表サイズ
d.最新分析時刻
e.平均レコードサイズ

正解:b、d、e

解説

 自動オプティマイザ統計収集情報やDBMS_STATSパッケージを使用したオプティマイザ統計情報は、データディクショナリに格納されます。表に関するオブジェクト統計はDBA_TABLESビューで確認できます。

 オプティマイザ統計情報を収集することで格納される代表的な列には次のものがあります。

NUM_ROWS レコード数(正解b
BLOCKS 使用ブロック数
AVG_ROW_LEN 平均レコードサイズ(正解e
LAST_ANALYZED 最後に統計情報が収集された日付(正解d

 そのほかの選択肢の不正解の理由は次のとおりです。

選択肢a:初期エクステントサイズ(INITIAL_SIZE)は、オプティマイザ統計情報を収集していなくても格納されます。

選択肢c:表に割り当て済みのブロック数を確認するには、DBA_TABLESビューではなく、DBA_SEGMENTSビューやDBA_EXTENTSビューを使用します。エクステントが割り当てられると変化する情報であるため、オプティマイザ統計情報を収集していなくても確認できます。

問題3

Database Controlのパフォーマンスタブにある「セッション:待機中と実行中」で「User I/O」が非常に多くなっているという結果が表示されています。この問題を解決するために調整する必要があるものを2つ選択しなさい。

a.RAIDシステムの使用
b.Automatic Storage Management(ASM)の使用
c.SQL文の再解析
d.セグメントの再構築

正解:a、b

解説

 User I/Oが多いということで、ディスクI/Oの競合に問題があると考えられます。この場合、ディスク競合の解決のためには、複数のディスクにまたがるように領域を確保していくストライピングが有効です。

 ハードウェアやOSの側で行うのであれば、RAID(Redundant Array of Independent Disks)が有効です(正解a)。RAID構成のタイプによっては、ストライピングとともに、ミラーリングによる高いデータの信頼性を実現できます。

 Oracle Database 10gからは、ASM(Automatic Storage Management)が提供されています。ASMを使用すれば、データベースファイルの格納のためのストライピングとミラーリングを提供できます(正解b)。

 そのほかの選択肢の不正解の理由は次のとおりです。

選択肢c:SQL文の解析が何度も行われると、共有プールに影響を与えます。この場合、アプリケーションで条件句として使用している値にバインド変数を使用することや、ストアドプログラムによるSQL文の汎用コード化などが必要です。

選択肢d:セグメントの領域使用がDMLの実行などにより不適切になっている場合もI/Oに影響を与えます。しかしこれはアクセスするブロックが多くなっているだけなので、User I/Oという形で明確に競合が起きている状態になることは少ないといえます。

宿題

 次回は、「予防的メンテナンス」を確認します。次の宿題を解いておいてください。

問題

本日、いままでで最もよいパフォーマンスでデータベース処理が実行できていました。このパフォーマンスデータと比較するようにメトリックしきい値を設定する方法を選択しなさい。

a.AWRスナップショットの保存期間を変更する
b.保存スナップショットセットを作成する
c.メトリックベースラインを作成する
d.AWRスナップショットを確認し、1つずつしきい値を変更する

IT資格試験の模擬問題をWebベースで学習できる@IT自分戦略研究所の新サービス「@IT資格攻略」では、「Silver DBA(Oracle10g)」をはじめOracle関連の資格をテーマとして取り上げています。「無料お試し版」もありますので、記事と併せてご覧ください。



前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。