• ベストアンサー

SQLの速度を調べるには…

ただいまオラクルマスターのブロンズSQL基礎Iを勉強中です。 インデックスについて覚えたのですが、インデックスをつけた状態とそうでない状態の差が実感できません。 大量にデータが存在しないとわからないものだとは思いますが、なにか実感できる手段はないでしょうか? SQLをたたいてから結果が返ってくる時間をしらべることができれば、ミリセックの違いでも感じられると思うのですが。 よい方法をご存知でしたら教えてください。

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

質問者が選んだベストアンサー

  • ベストアンサー
  • 3rd_001
  • ベストアンサー率66% (115/174)
回答No.1

SQLの実行はSQL*Plusですか? 簡単な方法は以下です。 SQL> set timi on SQL> select count(*) from tab; COUNT(*) ---------- 96 経過: 00:00:00.02 あとは実行計画をとれば索引を使っているかわかります。 以下を参考にしてください。 http://www.shift-the-oracle.com/sqlplus/tutorial/autotrace.html

その他の回答 (1)

回答No.2

以下のようなSQLを実行すれば一番体感できると思います。 インデックスが有るか無いかで十分体感できるほどの差があるかと思います。 検証用テーブル作成 create table test (col1 number); データ挿入 declare i := 1; begin for i in 1..100000 insert into test values (i); if mod(i,1000)=0 then commit; end if; end loop; end; / インデックス無しでのSELECT(フルスキャン) select * from test where col1 = 100; インデックス作成 create index ind_test on test (col1); インデックスありでのSELECT(インデックススキャン) select * from test where col1 = 100; 検証用テーブル削除 drop table test purge; 実際には上記のようにインデックスを張ればすぐに使ってくれるとういうほど易しいものではないので いかに自分が意図した実行計画(この言葉も勉強しているかと思います。)となるように操作できるかにかかっています。

関連するQ&A

  • オラクルマスター・ブロンズSQL基礎Iについて

    オラクルマスター・ブロンズSQL基礎Iについて オラクルマスター・ブロンズ11gを取得したいと思っています。 試験のカテゴリを見ると、 「1Z0-017J Bronze SQL基礎I」または「1Z0-051J 11gSQL基礎I」 と 「1Z0-018J Bronze DBA11g」 に合格し試験合格申請すれば良さそうですが、 「1Z0-017J Bronze SQL基礎I」に関しては旧バージョンの10gの試験に思えます。 ある参考書には 「1Z0-051J Bronze 11gSQL基礎I」が必要と書いていますが、 オラクルのサイト http://www.oracle.com/global/jp/education/certification/path/11g_dba_path.html#Bronze には 「1Z0-017J Bronze SQL基礎I」と「1Z0-051J 11gSQL基礎I」のどちらでも良いとなっています。 本当に 「1Z0-017J Bronze SQL基礎I」 「1Z0-018J Bronze DBA11g」 の組み合わせで オラクルマスター・ブロンズ11gが貰えるのでしょうか? 「1Z0-017J Bronze SQL基礎I」の参考書は貰えるので、 「1Z0-017J Bronze SQL基礎I」で行けるなら「1Z0-017J Bronze SQL基礎I」で行こうと思います。

  • オラクルマスター ブロンズ SQL基礎I の試験は自宅で可能???

    オラクルマスター ブロンズのSQL基礎Iの試験は 自宅で受けることは可能なのでしょうか? ↓こちらに「Bronze SQL 基礎Iだけは会場に出向くことなく自宅からネットで受験することが可能」と書かれておりますが・・・ http://www.shift-the-oracle.com/tutorial/oracle-master.html 現在も自宅から試験は受けられるのですか? また、自宅から試験を受けるのであれば、どのように申し込みを行えばよいのでしょうか? iStudyで学習しており、試験用のチケットは1回分持っております。

  • オラクルマスターのブロンズ

    オラクルの勉強をしようと思っています。 オラクルマスターのブロンズの勉強をしようと思って本屋に行ったのですが、「SQL基礎I」と「DBA11g」の2種類がありビックリしました。 基本情報処理の「午前」と「午後」のように、ブロンズの試験も「SQL基礎I」と「DBA11g」の両方に合格しないといけないのでしょうか? また、受けるならやっぱり新しいバージョンのほうがよいのでしょうか?

  • オラクルマスタ-資格

    こんにちは オラクルマスターブロンズが取りたいと思いますが、 試験科目Bronze SQL基礎IとBronze DBA10gですよね。 まったく初心者なので、お勧めの参考書やサイドがありましたら、 教えてください。 よろしくお願いします。

  • SQL学習にOpenOfficeのBASEは?

    オラクルマスターブロンズ目指してSQLを勉強中です。 SQLの勉強にOpenOfficeのBASEはどうなのでしょうか。 パソコンはwindows 7ホームプレミアム64bit版です。 基本情報技術者再挑戦の勉強中です。 アクセス2010の試用版の期限が切れてしまいました。 よろしくお願いします。

  • Oracle 10g SQL基礎I 1Z0-017Jお勧めの参考書は?

    来月Oracle 10g SQL基礎I 1Z0-017Jを受けます。 問題集はiStudyを購入したのですが参考書も欲しい所です。 そこで、お勧めの参考書があれば教えてほしいです。 私が今購入を検討しているのが、 オラクルマスター教科書 Bronze Oracle Database 10g【SQL基礎I】編 オラクルマスター教科書 株式会社システム・テクノロジー・アイ 林 優子 (著) ですがどうでしょうか? よろしくお願い致します。

  • オラクルマスターと小規模ウェブサイト構築の就職について

    オラクルマスターと小規模ウェブサイト構築の就職について こんにちは。 自分は現在、オラクルマスターのブロンズ(SQL基礎1)の勉強をしていますが、希望としては、30人程度の企業でウェブ作成をしている企業さんにPG,SEとして入りたいと思っています。 MySQLが主流とのことですが、SQLさえできればデータベースは応用が利くと思い、オラクルマスターを取ろうと思ったのですが、実際には、どうなのでしょうか? 小規模WEBサイトの作成でもオラクルマスターの知識は評価されるのでしょうか? チケットを買ってしまったので後戻りはできませんがww 現状を知りたく質問させていただきます。 お詳しい方、是非ご回答お願いします。m(__)m

  • 索引の再作成について

    Oracle 8iを使用してます。 大量データをDBに登録するのに非常に時間が掛かってしまうためSQL*Loaderを使用しようと思っているのですが、 インデックス作成時に一時領域を多く使用してしまう為、使用出来ないかもしれない状態でおります。 ご教授して頂きたい事は、 (1)一時領域を余り使用せずインデックスの再作成をする手段はありますか。 (2)一時領域を余り使用せず大量データを高速に登録する良い方法はありませんか。

  • オラクル データベース アンインストールの仕方

    オラクルマスター ブロンズ取得のため オラクルのデータベースをノートPCにインストールしたのですが 今回それをアンインストールしたく、その方法がわからない状態です。 黒本と呼ばれる、Oracle Database Bronze [11g SQL基礎I] を購入し、付属DVDからオラクルのデータベース(ライセンスが一か月期限のもの)をインストール したのですが、ノートPCがかなり重くなったためアンインストールしたくなったものの、やり方がわかりません。  以前、同じことを違うノートPCで行ったのですが、そのノートPCはレジストリなどにごみが残ってしまったようで重いままになってしまいました。 今回、同じ過ちを犯さないように、サイトなどを見ながらアンインストールしようと試み、 http://www.shoeisha.co.jp/book/qa/69364/thread 上記サイトに従いながら作業していると、 「Universal Installer」がなく、「空」という状態だったのです。 どうすれば、きれいにPCからオラクルデータベースを取り除くことができるでしょうか。 よろしくお願いいたします。

  • SQL文につける「''」について

    SQL文につける「''」について質問させてください。 WHERE句でPublisherNoが100の行を指定する場合、「'100'」と一重引用符で囲むのか「100」とそのままで良いのかわかりません。 WHERE PublisherNo=100; WHERE PublisherNo='100'; 見ている参考書は、「一週間でオラクルマスターの基礎が学べる本」です。P.205では引用符なし、P.206では引用符ありになっているので混乱しています。どっちでもいいってことなのか…