
環境:RedHat Linux AS3.0 / PostgresSQL 7.3.6
Publicスキーマにインデックス付きのテーブルを作成し、
複数のスキーマにビューを作成してそのテーブルをそのまま参照したいと思っています。
(スキーマの数が非常に多いので、実体をひとつにし、
ディスク容量を抑えるのが目的です。)
環境のイメージは以下の通りです。
◆Publicスキーマにテーブル作成-------
create table TEST_TABLE (
id int,
data varchar
);
◆test_tableにインデックスを作成-------
create unique index TEST_KEY on TEST_TABLE (
id
);
◆test_schemaスキーマを作成-------
create schema TEST_SCHEMA;
◆test_schemaスキーマにビューを作成-------
create view TEST_SCHEMA.TEST_VIEW as
select
id,
data
from TEST_TABLE
;
このような環境にて「TEST_VIEW」にSELECTをかけた場合、
「TEST_KEY」は踏襲されるのでしょうか?
ビューに対してインデックスは作成できないようなので、
テーブルに対してはられたインデックスはビューでも生きている
のではないかと考えたのですが、
上記認識で合っているかどうか
ご存知の方がいらっしゃいましたらご教授頂けると助かります。
宜しくお願い申し上げます。
No.2ベストアンサー
- 回答日時:
ビューは仮想的なテーブルで、呼ばれたときに、実際に定義部分に書かれた、SELECT文が実行されます。
したがって、踏襲もなにも・・・
select
id,
data
from TEST_TABLE
が、実行されるんですから、インデックスは活きます。
ご回答ありがとうございます。
下にも書いたとおり、実際に試してインデックスが使用されていることを確認しました。
よく考えてみれば、ビューは実際にテーブルにSELECTをかけに行くのだから、インデックスが使用できるのは当たり前ということですね。すこし勘違いしていた部分があったようですが、おかげさまで理解できました。
ありがとうございました。
No.1
- 回答日時:
使われると思いますよ。
とりあえず、EXPLAINしてみては?
この回答への補足
環境を作成しEXPLAINをしてみたところ、Index Scan されていました。
上のmasayuki0511さんからのご説明の通り、インデックスはビューからも使用可能なのですね。
zebedeerさん、ありがとうございました。
(恥ずかしながらEXPLAINを初めて使ったので、勉強になりました!)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
dumpでインデックスだけ抜きたい
-
ORACLEのスキーマーを別のORACL...
-
認知心理学で言うスクリプトとは?
-
アクセスのレポートの表示順
-
データベースからFOREIGN KEYの...
-
【SQL】他テーブルに含まれる値...
-
SELECT INTOで一度に複数の変数...
-
sqlに記述できない文字
-
フラグをたてるってどういうこ...
-
PostgreSQLのtimestamp型で時間...
-
UPDATEで既存のレコードに文字...
-
truncate tableを使って複数の...
-
JDBCを使ってdate型へのINSERT...
-
オラクルのUPDATEで複数テーブル
-
SQLで、Join句で結合したテ...
-
csvデータ不要列の削除をbatフ...
-
副問合せを使わずにUNIONと同様...
-
テーブル名が可変の場合のクエ...
-
結合したテーブルをSUMしたい
-
CASEでBETWEEN制約
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
データベース ユーザの「このユ...
-
dumpでインデックスだけ抜きたい
-
PostgreSqlのシステムスキーマ...
-
DB2でテーブルのサイズを見たい
-
ACCESSにおいてスキーマとは
-
ORACLEのスキーマーを別のORACL...
-
認知心理学で言うスクリプトとは?
-
スキーマ拡張後のExchangeサー...
-
XMLファイルとXMLスキーマ
-
データベースからFOREIGN KEYの...
-
アクセスのレポートの表示順
-
2つのDBにある値の差分値で並び...
-
勤務時間外勤務の回数の集計
-
全テーブルの列数を調査したい
-
テーブルの情報を取得したい
-
カラムサイズの取得
-
【SQL】他テーブルに含まれる値...
-
SELECT INTOで一度に複数の変数...
-
フラグをたてるってどういうこ...
-
sqlに記述できない文字
おすすめ情報