• ベストアンサー

Oracle 

 ここでお世話になったおかげで立派な(?)プログラマになれました。そこで、またしてもお願いなんですがOracleでのデータが返ってくるスピードについて伺いたいのです。10項目のフィールドがあるテーブルで、それらを1つずつ書いて指定するのと*を使って取得するのとでは、どちらが早いのでしょうか?データの量にも寄ると思いますが一考を伺いたいです。皆々様、宜しくお願い致します。

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

  • ベストアンサー
  • muyoshid
  • ベストアンサー率72% (230/318)
回答No.3

他の方もおっしゃられていますが、アスタリスクを使った問い合わせは 以下の理由から、プログラム内でのご使用はあまりお勧めできません。  1) 本来不要なデータも取り出すため、性能劣化の原因になります。    Client/Server 等で、データがNetwork を経由するような場合、    不要なトラフィックを増やす事にもなりますし、場合によっては    セキュリティ上の問題になる恐れもあります。  2) プログラムがテーブルの構造に100% 依存してしまうため、    テーブルに対して列の追加/削除があった場合、プログラムを    修正する必要があります。 (PL/SQL は除く)

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • misoka
  • ベストアンサー率35% (56/160)
回答No.2

アスタリスクを使うと、Oracleは、内部で 全列名を記述したSQLに置き換えてから抽出するので、 その分レスポンスが遅くなる、 という話を聞いたことがあります。 当たり前ですが、SQLを記述すること自体は、 「*」を使った方が早いし簡単なので、 用途によって柔軟に利用するのがよいようです。

すると、全ての回答が全文表示されます。
  • miuhr
  • ベストアンサー率19% (12/63)
回答No.1

oracleに限らず「*」での指定は遅くなりますよ。 データ量が増えるにつれて差がハッキリ分かると思います。 試しに10~100万件程度のデータで時間をはかるのも面白いと思います。

すると、全ての回答が全文表示されます。

関連するQ&A