問1 ..................................................................................................
自動UNDO管理を有効にするためのパラメタを選びなさい。
a. UNDO_AUTO
b. UNDO_MANAGEMENT
c. UNDO_MANAGE
d. UNDO_TABLESPACE
→回答と解説
問2 ..................................................................................................
下記の文を実行しました。正しい説明文を選びなさい。
CREATE TABLESPACE TEST_TBS
DATAFILE '/u01/oradata/test_tbs.dbf' SIZE 1024M REUSE
EXTENT MANAGEMENT DICTIONARY ONLINE;
a. ディクショナリ管理の永続表領域が作成される
b. ローカル管理の永続表領域が作成される
c. ディクショナリ管理の一時表領域が作成される
d. ローカル管理の一時表領域が作成される
→回答と解説
問3 ..................................................................................................
コストベースを使用するため、EMP 表の統計情報を収集します。
すべての行の統計情報を収集するために、正しい文を選びなさい。
a. analyze table emp estimate statistics;
b. analyze table emp estimate statistics sample 50 percent;
c. analyze table emp compute statistics;
d. analyze table emp compute statistics sample 50 percent;
e. analyze table emp validate structure;
→回答と解説
問4 ..................................................................................................
SGA の中で、解析済みSQL文を保存する領域を下記から選びなさい。
a. REDOログバッファ
b. データベースバッファキャッシュ
c. ディクショナリキャッシュ
d. ライブラリキャッシュ
e. SQL キャッシュ
→回答と解説
問5 ..................................................................................................
Oracleデータベースの起動において、初期化パラメタファイル(init.ora)を
読み込むのは、下記のどの段階か。
a. インスタンス起動時(NOMOUNT)
b. データベースマウント時(MOUNT)
c. データベースオープン時(OPEN)
d. データベースクローズ時(CLOSE)
e. データベース停止時(SHUTDOWN)
→回答と解説
問6 ..................................................................................................
新規にデータベースを作成する際、データディクショナリビューを作成するために
実行する必要のあるスクリプトを下記から選びなさい。
a. catproc.sql
b. catalog.sql
c. pupbld.sql
d. utlpwdmg.sql
→回答と解説
問7 ..................................................................................................
下記の SQL文により、監査証跡を設定しました。
実際に、監査が実行されるものを選びなさい。
AUDIT UPDATE, DELETE ON scott.EMP BY ACCESS WHENEVER NOT SUCCESSFUL;
a. 任意のユーザによるEMP表へのINSERT文(正常)の発行
b. ユーザSCOTTによるEMP表へのINSERT文(正常)の発行
c. 任意のユーザによるEMP表へのUPDATE文(失敗)・DELETE文(失敗)の発行
d. ユーザSCOTTによる任意の表へのUPDATE文(失敗)・DELETE文(失敗)の発行
e. 任意のユーザによるEMP表へのUPDATE文(正常)・DELETE文(正常)の発行
→回答と解説
問8 ..................................................................................................
各表領域の空き状況を調べるために使用するデータディクショナリビューを選びなさい。
a. DBA_EXTENTS
b. DBA_SEGMENTS
c. DBA_TABLESPACES
d. DBA_FREE_SPACE
e. DBA_DATA_FILES
→回答と解説
問9 ..................................................................................................
データベースで行連鎖が発生している場合、問題の解決に最適な方法を
下記の中から選びなさい。
a. pctfreeを増やす
b. pctfreeを減らす
c. pctusedを増やす
d. pctusedを減らす
e. pctincreaseを増やす
f. pctincreaseを減らす
→回答と解説
問10 ................................................................................................
Oracleデータベースを「ローカル管理表領域」として作成した場合、表領域の空き情報が
格納される場所について、正しいものを選びなさい。
a. SYSTEM表領域のデータディクショナリ
b. SYSTEM表領域のデータファイルヘッダー
c. ローカル管理表領域のデータディクショナリ
d. ローカル管理表領域のデータファイルヘッダー
→回答と解説
自動UNDO管理を有効にするには、初期化パラメタファイルの「UNDO_MANAGEMENT」パラメタ
に「AUTO」を設定します。このパラメタを明示的に設定しない場合は、デフォルトで手動
管理「MANUAL」が設定されます。
UNDO_MANAGEMENT = AUTO | MANUAL
また自動UNDO管理を実行する場合、少なくとも1つのUNDO表領域を作成し、利用可能(オ
ンライン)にする必要があります。使用するUNDO表領域を明示的に指定する場合は、
「UNDO_TABLESPACE」初期化パラメタを使用します。
UNDO_TABLESPACE = UNDO01
EXTENT MANAGEMENT句が「DICTIONARY」なので、ディクショナリ管理の表領域になります。
また、Oracle9iでローカル管理またはディクショナリ管理のどちらかを明示的に指定しない
場合は、デフォルトでローカル管理表領域が作成されます。
ちなみに、一時表領域を作成するには、下記のように実行します。
微妙な違いに注意して見てください。
※一時表領域の作成@
CREATE TABLESPACE TEMP
DATAFILE '/u01/oradata/temp.dbf' SIZE 1024M REUSE
TEMPORARY;
※一時表領域の作成A
CREATE TEMPORARY TABLESPACE TEMP
TEMPFILE '/u01/oradata/temp.dbf' SIZE 1024M REUSE
EXTENT MANAGEMENT LOCAL;
analyze table文は、表の統計情報を収集します。
表のすべての行を対象にする場合は「compute statistics」を、
一部の行を対象にする場合は「estimate statistics」を使用します。
「estimate statistics」を使用する場合、「行数」または「パーセント」を指定できます。
・analyze table emp estimate statistics sample 5000 rows; (5000行)
・analyze table emp estimate statistics sample 30%; (30%)
SGA 内の各領域の役割は、下記のようになります。
REDOログバッファ:REDOログエントリ(変更情報)を保存
データベースバッファキャッシュ:データブロックを保存
ディクショナリキャッシュ:データディクショナリ情報を保存
ライブラリキャッシュ:SQL文やPL/SQLに関する情報(SQL テキスト・解析済コード・実行計画)を保存
各起動段階での動作は以下のようになります。
1)NOMOUNT
データベース作成時、制御ファイルの再作成時に使用
・パラメタファイル読込
・SGA 割り当て
・バックグラウンドプロセス開始
・トレースファイルとALERT ファイルのオープン
2)MOUNT
データファイル改名、REDOログアーカイブオプション変更、DBの完全回復等メンテナンス実行時
・制御ファイルオープン(データファイルとREDOログファイルの名前&状態を取得)
・すでに開始したインスタンスにデータベースを関連付ける
3)OPEN
一般ユーザがデータベース使用可
・データファイル・REDOログファイルオープン
データベース作成時、データベースはオープンされ、 sql.bsqスクリプトにより管理者ユー
ザ SYSとSYSTEM、SYSTEMロールバックセグメント、データディクショナリが作成されます。
ただし、データディクショナリビューは自動では作成されないため、catalog.sqlスクリプ
トを SYSユーザで実行する必要があります。
答えは、「任意のユーザによるEMP表への、失敗したUPDATE文とDELETE文が記録される」です。
また、「BY ACCESS」とあることから、1つの文が監査されるたびに監査レコードが作成され
ます。「BY SESSION」の場合は、セッションで同種の SQL文が複数回実行された場合は、 1
件文の監査レコードが作成されます。
最後の、「WHENEVER NOT SUCCESSFUL」により、失敗した SQL文に対する監査が行われます。
表領域の空きを調べるには、DBA_FREE_SPACEビューを使用します。
DBA_TABLESPACES:表領域の定義情報
DBA_DATA_FILES:各表領域のデータファイルについての情報
DBA_EXTETS:各表領域内のエクステント情報
DBA_SEGMENTS:各表領域内のセグメント情報
行が大きすぎてブロックに入らない場合、Oracleサーバは行を断片に分割し、再組み立てに
必要なポインタと共に複数ブロックに格納します(行連鎖)。(1行のデータが複数ブロッ
クに格納される状況)
1つのデータにアクセスする場合でも、複数ブロックへアクセスする必要があるため、 I/O
オーバーヘッドが発生し、パフォーマンスが低下する原因となります。
PCTFREE を大きくしておくことで、既存データが更新されて行の長さが長くなった場合にも、
行連鎖を起こりにくくすることが可能です。
ただし、最終的な解決策ではありませんので、行連鎖を最小限にするには、ブロックサイズ
を大きくしたり、表の列数を減らす等の検討も必要です。
表領域の管理方法には、ローカル管理(デフォルト)とディクショナリ管理があります。
CREATE TABLESPACE 文のEXTENT MANAGEMENT句で「LOCALを指定or省略する」と、ローカル
管理の表領域になります。 Oracle 8i以前はすべてディクショナリ管理でした。
※ディクショナリ管理
Oracleにより作成され、SYSTEM表領域に格納されているデータディクショナリ表に依存し、
空領域の追跡をする表領域。
※ローカル管理
各データファイル内エクステントの割りあて状況を、データファイルのヘッダー内に格納
されるビットマップで管理する表領域。エクステントは、Oracleサーバに自動管理させる
ことも(AUTOALLOCATE(デフォルト))、ユーザが均一サイズを指定する(UNIFORM SIZE)
ことも可能。
ローカル管理の場合はデータディクショナリ表が更新されないため、ディクショナリに対
する競合が最小限ですむという利点があります。また、ローカル管理では、SMONプロセス
による空領域の結合が不要になり、どちらもパフォーマンスの向上が見込めます。
Copyright © 2006 mari. All rights reserved. |
|