「使える?データディクショナリ集」の編集履歴(バックアップ)一覧はこちら

使える?データディクショナリ集 - (2005/11/18 (金) 20:49:53) の1つ前との変更点

追加された行は緑色になります。

削除された行は赤色になります。

---- *データディクショナリの基本 ■ユーザが見れるデータディクショナリを検索する。 SELECT * FROM DICT; ■テーブル名の接頭辞 -DBA_ データベース全てのオブジェクトを見ることができるデータディクショナリ -ALL_ ユーザがアクセス可能な(権限をもらっている)オブジェクトを見ることができるデータディクショナリ -USER_ ユーザが所有しているオブジェクトを見ることができるデータディクショナリ ---- *☆制約 ■テーブルに定義されている制約を調べる方法 SELECT * FROM DBA_CONSTRAINTS WHERE OWNER = 所有者名 AND TABLE_NAME = テーブル名; CONSTRANT_TYPE列に制約の内容が表示されます。 P --> PKEY C --> CHECK制約かNOT NULL制約(CHECK制約の場合、他の列にCHECK内容が入る。) R --> FOREIGN KEY制約 U --> UNIQUE ■テーブルのどの列に制約が定義されているか調べる方法 SELECT * FROM DBA_CONS_COLUMNS WHERE OWNER = 所有者名 AND CONSTRAINT_NAME = 調べたい制約名 AND TABLE_NAME = テーブル名; ■制約を無効にする。 ALTER TABLE 表名 DISABLE CONSTRAINT 制約名 ■制約を有効にする。 ALTER TABLE 表名 ENABLE CONSTRAINT 制約名 ※大量データのインポートなどの場合、制約を無効化しておきインポートすると、インポート時の制約チェックがなくなるためレスポンスが良くなる。 不正なデータを入れた場合には、制約を有効にした段階でエラーになる。 ---- ---- *☆インデックス ■テーブルに定義されている索引を調べる方法 SELECT * FROM DBA_INDEXES WHERE OWNER = 所有者名 AND TABLE_NAME = テーブル名; ■テーブルのどの列に索引が定義されているか調べる方法 SELECT * FROM DBA_IND_COLUMNS WHERE INDEX_OWNER = 所有者名 AND INDEX_NAME = 索引名 ; ■索引の再構築 ALTER INDEX 索引名 REBUILD (ONLINE); ※データの削除・更新が行われる表では、索引の断片化が発生しレスポンスが悪化する。 そのため定期的に索引の再構築をすることによって、レスポンスが良い状態にする。 ・ONLINEオプションをつけると、索引再構築中でも表の検索・更新処理が可能になる。 ・ONLINEオプションをつけないと、表の検索・更新処理は再構築終了までWAITとなる。 DBA_INDEXESのSTATUS列がINVALIDになっている場合も、再構築することで利用可能になる。
---- *データディクショナリの基本 ■ユーザが見れるデータディクショナリを検索する。 SELECT * FROM DICT; ■テーブル名の接頭辞 -DBA_ データベース全てのオブジェクトを見ることができるデータディクショナリ -ALL_ ユーザがアクセス可能な(権限をもらっている)オブジェクトを見ることができるデータディクショナリ -USER_ ユーザが所有しているオブジェクトを見ることができるデータディクショナリ ---- *☆制約 ■テーブルに定義されている制約を調べる方法 SELECT * FROM DBA_CONSTRAINTS WHERE OWNER = 所有者名 AND TABLE_NAME = テーブル名; CONSTRANT_TYPE列に制約の内容が表示されます。 P --> PKEY C --> CHECK制約かNOT NULL制約(CHECK制約の場合、他の列にCHECK内容が入る。) R --> FOREIGN KEY制約 U --> UNIQUE ■テーブルのどの列に制約が定義されているか調べる方法 SELECT * FROM DBA_CONS_COLUMNS WHERE OWNER = 所有者名 AND CONSTRAINT_NAME = 調べたい制約名 AND TABLE_NAME = テーブル名; ■制約を無効にする。 ALTER TABLE 表名 DISABLE CONSTRAINT 制約名 ■制約を有効にする。 ALTER TABLE 表名 ENABLE CONSTRAINT 制約名 ※大量データのインポートなどの場合、制約を無効化しておきインポートすると、インポート時の制約チェックがなくなるためレスポンスが良くなる。 不正なデータを入れた場合には、制約を有効にした段階でエラーになる。 ---- *☆インデックス ■テーブルに定義されている索引を調べる方法 SELECT * FROM DBA_INDEXES WHERE OWNER = 所有者名 AND TABLE_NAME = テーブル名; ■テーブルのどの列に索引が定義されているか調べる方法 SELECT * FROM DBA_IND_COLUMNS WHERE INDEX_OWNER = 所有者名 AND INDEX_NAME = 索引名 ; ■索引の再構築 ALTER INDEX 索引名 REBUILD (ONLINE); ※データの削除・更新が行われる表では、索引の断片化が発生しレスポンスが悪化する。 そのため定期的に索引の再構築をすることによって、レスポンスが良い状態にする。 ・ONLINEオプションをつけると、索引再構築中でも表の検索・更新処理が可能になる。 ・ONLINEオプションをつけないと、表の検索・更新処理は再構築終了までWAITとなる。 DBA_INDEXESのSTATUS列がINVALIDになっている場合も、再構築することで利用可能になる。

表示オプション

横に並べて表示:
変化行の前後のみ表示:
目安箱バナー