- PR -

SQL文「Select *」を使用するのは邪道?

投稿者投稿内容
M@tch
会議室デビュー日: 2005/10/01
投稿数: 13
投稿日時: 2009-01-16 18:22
ゴン太さん
ご意見ありがとうございます。
引用:

ただ大量のデータを取得したい場合は、必要項目を書く場合と”*”とで「set timing on」等を使用し計って選んでます。


すいません、知識不足で「set timing on」というのを調べてみます。
ありがとうございました。
よっしー
大ベテラン
会議室デビュー日: 2007/05/17
投稿数: 143
投稿日時: 2009-01-16 19:51
SELECT * 反対派です。
私の環境ではJOINが入るSQLが多いので、2つのテーブルで同じ名前の項目があるとわけわかんなくなります。
あと、項目名でソースをGREPする時に*があると引っかからないし。

カバリング インデックスが効かないのももったいないですね。チューニングで付加列を追加しても意味ないし。
rozh
会議室デビュー日: 2008/12/09
投稿数: 1
投稿日時: 2009-01-16 21:15
インラインビューにおいて列名を列挙し
それに対するクエリで * を使うことならあります。
ROWNUM と ORDER BY で上位N件を取得する場合などです。

select *
from
(
select 列名の列挙
from 〜
order by 〜
)
where rownum < 100

M@tch
会議室デビュー日: 2005/10/01
投稿数: 13
投稿日時: 2009-01-19 09:36
よっしーさん
rozhさん
ご意見ありがとうございました。
参考にさせて頂きます。
deanna
大ベテラン
会議室デビュー日: 2004/08/23
投稿数: 118
投稿日時: 2009-01-19 11:50
「SELECT *」の場合、表やVIEWの変更によって項目の追加や属性変更、並びの変更などに対応できません。
よって、私は反対派です。
にゃー
常連さん
会議室デビュー日: 2008/06/26
投稿数: 32
投稿日時: 2009-01-20 13:21
>厳密にはどうなんでしょうか?
>SQLを書く上での持論をお聞かせ下さい
厳密なことは分かりませんが、持論で。

100項目もあるテーブルにおいて、5割以上使う場合などにおいて、
*を使用することはよいとは思います。
しかし、基本的には項目名を記述する派です。

>レスポンスやメモリ使用率等の観点から
との記載がありますが、可読性とエラー検出の観点もあるかと思います。

スキルアップ/キャリアアップ(JOB@IT)