• 締切済み

CREATE TABLEのUSING INDEXについて

題名通りなのですが、実際に CREATE TABLE テーブル名 (各種列作成, 制約) USING INDEX ~ USING INDEX以降に列と関係のないものをごちゃごちゃと置いていて 何をやっているかがいまいちよく分かりません。 色々とサイトなど調べたのですがいまいちよく分かりませんでした。 分かる方いらっしゃいましたら、教えていただけると幸いです。 どうかご教授よろしくお願い致します。

  • Oracle
  • 回答数1
  • ありがとう数0

みんなの回答

  • ishi7474
  • ベストアンサー率32% (71/216)
回答No.1

SQLのマニュアルに書かれています。

関連するQ&A

  • テーブルにはったインデックスは、ビューに対しても効力があるのか

    環境: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」は踏襲されるのでしょうか? ビューに対してインデックスは作成できないようなので、 テーブルに対してはられたインデックスはビューでも生きている のではないかと考えたのですが、 上記認識で合っているかどうか ご存知の方がいらっしゃいましたらご教授頂けると助かります。 宜しくお願い申し上げます。

  • UNIQUEをつけたときのINDEXテーブル

    テーブル作成時、カラムにUNIQUEをつけると自動でインデックステーブルが作成されますが、このインデックステーブルで、通常のselect検索も早くなるのでしょうか? 具体的には、ユニークなカラムidを持つテーブルtableA create table tableA( id INTEGER UNIQUE, some_column INTEGER ); を作ったあとで、そのidにあらためて CREATE INDEX id ON tableA (id); と、インデックスを張る必要があるのでしょうか。 よろしくお願いします。

  • テーブルを作ろうとしたら。

    下記のようなエラー文が表示されます。 NOTICE: CREATE TABLE will create implicit sequence 'テーブル名とフィールド名をくっつけたような名前' fo r SERIAL column 'テーブル名.フィールド名' NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index 'テーブル名_pke y' for table 'テーブル名' このデーターベースには他にもテーブルがありますが、 名前が主キーで名前が同じものがあるからエラーがでると思い、名前を変更して実行しましたが、同じような エラーがでました。 テーブル名とフィールド名をくっつけたような名前はもともとなかったものなのですが、実行後にデータベースに作成されました。 どなたかわかる方がいたら、ご教授お願いいたします。

  • SQLでCREATE TABLE文の作成

    ログインしているユーザーが保有する テーブル名、列名、列の定義(PK、FK、INDEX等) を取得してCREATE TABLE文を作成したいのですが どのような方法があるのでしょうか? 自分で検索した時に"DBMS_METADATA.GET_DDL"を使用しての CREATE TABLE文の作成は見つかったのですが これだとOracleが文を自動生成しているようで CREATE TABLE文が複雑な物になってしまいました。 何かアドバイス等ありましたら宜しくお願いします。

  • インデックスを用いたbetween検索について

    Cで1~360000までのランダムな整数の列(col1)を含む100万件のデータを作成し(50MB弱)、 create table table1(・・・, col1 integer not null, ・・・); で作ったテーブルにload data infile文で挿入し、 create index index1 on table1(col1); でインデックスを作成しました。 select * from table1 where col1 between 1000 and 2000; といったような検索(約2500件ヒット)をしたいのですが、この検索ではインデックスを作らないテーブルのほうが速く検索できてしまいます。 select * from table1 where col1 between 100 and 200; のような検索(約250ヒット)ではインデックスの効果があり、高速検索ができますが。 環境はMySQL-5.0.26、ノートPC(256MB)、Fedora Core5、設定ファイルはMy-large.cnfを、ほぼそのまま使用しています。 上記のような少し大きめの検索範囲でもインデックスを用いた検索を改善する方法をご教授お願いします。何かのパラメータが決定的に足りないと思うのですが。

  • INDEXの無効化

    Oracle11gを使用しています。 制約と同じようにINDEXも無効化することは出来るのでしょうか。 テーブル名と、フラグ(無効化/有効化)を引数として、制約、INDEXの無効化、有効化 を行うプログラムを作成したいと考えています。 制約は、「ALTER TARBLE テーブル名 DISABLE(又はENABLE ) CONSTRAINT 制約名」 にて無効化、有効化することが出来ますが、INDEXも同じように無効化、有効化することは 出来るのでしょうか? よろしくお願いします。

  • create temporary tableについて

    MYSQL5.0を利用して、PHPから以下の作業をしています。 create temporary table tempで作成された一時的なテーブル(temp)は削除しなくても問題ないのでしょうか? もし削除する必要がある場合は、drop temp で大丈夫でしょうか?

    • ベストアンサー
    • MySQL
  • Create table文をエクセルから自動生成

    システム開発で、エクセルのテーブル定義から自動で、Create tableのSqlを自動生成したいと思ってますが、効率的な方法があれば、ご教授頂けないでしょうか。 エクセルからフリーソフト等のツール等を、介す方法でも構いません。 できるだけ容易にできるものを探しております。 テーブル定義に、入力されている項目には、以下のものがあり、これらをCreate table文に反映したいと考えてます。 テーブル名、項目名、型、桁数、Null制約、初期値、主キー

  • インデックス名の重複(MySQL5.1+Windows2008)

    インデックス名の重複(MySQL5.1+Windows2008) テーブルを次のSQLでコピーしました。 mysql>create table 新テーブル名 like 元テーブル名; インデックスもコピーされたのですが、インデックス名が重複します。 これは、問題ないのでしょうか? 新テーブルにも、同じインデックスを張りたいので、問題がなければこのままにしておきたいと思っています。 よろしくお願いします。

    • ベストアンサー
    • MySQL
  • テーブルが存在していたらDROPしてからCREATEするには?

    作成しようとするテーブルが既に存在している場合 一度DROP TABLEを行いたくて、以下のSQLを作成したのですが 削除が実行されません。 そもそものやり方自体が間違っているのでしょうか? 実行後のメッセージは テーブルが存在しなかった場合→コマンドは正常に完了しました。 テーブルが存在した場合→データベースにオブジェクト名 'SLIP_ITEMXX' が既に存在します。 と、表示されます。 --テーブルが存在した場合削除する ※ストアド使用 CREATE PROCEDURE SP_SLIP_ITEMXX AS DECLARE @TableName varchar DECLARE @Sql varchar set @TableName = 'SLIP_ITEMXX' SET @Sql = 'if exists (select * from dbo.sysobjects where id = object_id(N' + @TableName + ') ' + 'DROP TABLE ' + @TableName EXEC(@Sql) GO --テーブル生成 CREATE TABLE SLIP_ITEMXX( [slip_no] [int] NOT NULL ) GO --ストアド削除 DROP PROCEDURE SP_SLIP_ITEMXX GO