環境: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を探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
全テーブルの列数を調査したい
-
ACCESSにおいてスキーマとは
-
PostgreSqlのシステムスキーマ...
-
データベース ユーザの「このユ...
-
SELECT INTOで一度に複数の変数...
-
フラグをたてるってどういうこ...
-
sqlに記述できない文字
-
オラクルのUPDATEで複数テーブル
-
Accessの構成をコピーしたい
-
UPDATEで既存のレコードに文字...
-
【SQL】他テーブルに含まれる値...
-
AccessからOracle DB(View)を...
-
PostgreSQLのtimestamp型で時間...
-
既存データをINSERT文にして出...
-
実行時エラー:2517 プロシージ...
-
truncate tableを使って複数の...
-
limit offset はupdate文には使...
-
右向き、左向きの速度が最大と...
-
SELECT文で足し算をした場合、N...
-
Excelでしりとりを作る方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
dumpでインデックスだけ抜きたい
-
データベース ユーザの「このユ...
-
ACCESSにおいてスキーマとは
-
全テーブルの列数を調査したい
-
EBCDICとCCSIDの違いとは
-
PostgreSqlのシステムスキーマ...
-
DB2でテーブルのサイズを見たい
-
カラムサイズの取得
-
FROM句のスキーマ名、テーブル...
-
認知心理学で言うスクリプトとは?
-
SQLのスキーマって何ですか?
-
ORACLEのスキーマーを別のORACL...
-
スキーマ拡張後のExchangeサー...
-
アクセスからSQL Serverのデー...
-
テーブルのどの項目が主キーか...
-
SQL ServerのXMLスキーマがうま...
-
テーブルの情報を取得したい
-
PostgreSqlシステムカタログを...
-
2つのDBにある値の差分値で並び...
-
Excel のXMLメニューについて
おすすめ情報