- PR -

SQL文の書式によるデータベース側の解釈

1
投稿者投稿内容
ac廃止。
会議室デビュー日: 2006/05/16
投稿数: 18
投稿日時: 2006-11-29 10:21
Oracleの場合、ということで。
同じ検索文の select句を大文字で書いたり、小文字で書いたり、
同様に、テーブル名称も大文字小文字の統一性がなかったり、
同様に、テーブル名の別名もそうだったり、、、、。

というような書き方をしていた場合、その後、困るのは、
メンテナンスする人間だけ、でしょうか。
データベース側にも大文字小文字の解釈で何らかの負荷がかかるのでしょうか。

人から見れば、動けばいいのかもしれませんが。


[ メッセージ編集済み 編集者: ho_on 編集日時 2006-11-29 16:01 ]
るぱん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 1370
投稿日時: 2006-11-29 10:28
るぱんです。

実際に試してみて、どれ位スループットが変わるものでしょうか?
大文字小文字に関しては、やってみたら良いと思います。
適当にテーブルを作って、
10個ぐらいJOINしたり、UNIONしてみたらわかると思います。
テストデータだって、意図的なものとそうでないものとは
エクセルでデータを作ればできると思いますが・・・。

作成時の規約が有るのとないのとで、
違ってくるのは保守性の高さであることは間違いがないと思います。

SQLがばらばらだったら、たしかに、保守の時に面食らいますね。
項目に、必ずテーブル名をつけて呼び出したりとか・・・?

試してみたらいいと思いますよ。
shimix
ぬし
会議室デビュー日: 2004/08/05
投稿数: 512
お住まい・勤務地: 大分市
投稿日時: 2006-11-29 10:30
#Oracleを触らなくなって長いのですが(汗)
引用:

未記入さんの書き込み (2006-11-29 10:21) より:
データベース側にも大文字小文字の解釈で何らかの負荷がかかるのでしょうか。


「大文字・小文字を問わない」となっている場合にはどちらで書いていてもデータベース側の負荷に違いはありません。どちらかといえば「人間が見易く」するために使い分けると思います。
ぶさいくろう
ぬし
会議室デビュー日: 2005/11/22
投稿数: 1232
お住まい・勤務地: 川崎市(は俺も含めてロクな人間が住んでないよw)
投稿日時: 2006-11-29 10:31
引用:

未記入さんの書き込み (2006-11-29 10:21) より:
Oracleの場合、ということで。


同一人物としか思えないのだが、ということで。(プ
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=35185&forum=26

件名にも「ということで。」があるのはおもしろいね。
http://www.atmarkit.co.jp/bbs/phpBB/search.php?term=&addterms=any&forum=all&search_user_id=273005&sortby=-1&searchboth=both&submit=Search

ハンドルを使い分けているのはなぜ?(そんでもって利用規約違反だったような気がする)
ac廃止。
会議室デビュー日: 2006/05/16
投稿数: 18
投稿日時: 2006-11-29 10:43
引用:

ぶさいくろうさんの書き込み (2006-11-29 10:31) より:
引用:

未記入さんの書き込み (2006-11-29 10:21) より:
Oracleの場合、ということで。


同一人物としか思えないのだが、ということで。(プ
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=35185&forum=26

件名にも「ということで。」があるのはおもしろいね。
http://www.atmarkit.co.jp/bbs/phpBB/search.php?term=&addterms=any&forum=all&search_user_id=273005&sortby=-1&searchboth=both&submit=Search

ハンドルを使い分けているのはなぜ?(そんでもって利用規約違反だったような気がする)




ぶさいくろうさん、ありがとうございます。
自宅とそうでない場所から、で使い分けていたつもりだったのですが、
かぶっていたこともあったかもしれません。
規約違反だったのでしょうか。知りませんでした。
shimix
ぬし
会議室デビュー日: 2004/08/05
投稿数: 512
お住まい・勤務地: 大分市
投稿日時: 2006-11-29 10:53
引用:

未記入さんの書き込み (2006-11-29 10:43) より:
規約違反だったのでしょうか。知りませんでした。


登録している以上知りませんというのは(例え利用規約を読み飛ばしていたとしても)書く方が恥ずかしいと思うのですが、そういう意識はないのでしょうか?契約書を読まずに契約したから知らないって言うのと同じでしょうに・・

http://www.atmarkit.co.jp/aboutus/termofuse/termofuse.html

[ メッセージ編集済み 編集者: shimix 編集日時 2006-11-29 10:54 ]
想馬
大ベテラン
会議室デビュー日: 2003/05/29
投稿数: 245
お住まい・勤務地: 神奈川・東京
投稿日時: 2006-11-29 10:57
第2条 @ITクラブ・メンバー入会と登録情報の提供

5 メンバー登録は、利用者1人につき1件に限ります。

第9条 メンバー資格の抹消

1 メンバーが以下のいずれかの事由に該当した場合には、当社は、当該メンバーを、@ITクラブから退会させ、当社サービスの利用を中止させることができます。

 (4) 本規約に違反した場合
Desmo
大ベテラン
会議室デビュー日: 2004/03/24
投稿数: 149
投稿日時: 2006-11-29 11:47
厳しい指摘が続いていますが、まあ規約云々は別にしても 複数のIDでエントリーするのはマナー違反でしょうね。せっかくハンドル名も取られたようですので、こちらに統一されるのをお勧めします。

本題ですが、
Oracleの場合、SQL文を発行すると、
1. 文の解析
2. 実行計画の立案
3. データの読み込み
が行われます。(大まかですが)
この内の 1.の解析結果ですが、SGAの中の共有プールにキャッシャされ、次に誰か全く同一のSQL文を発行した場合には再利用されます。
この"全く同一のSQL文"の意味ですが、大文字と小文字の違いや 空白や改行の位置の違いがあると、別ステートメントとして見なされるため、再度解析が発生します。
このような理由から、Oracleのパフォーマンス関連の記事を読むと 記述の統一を推奨しています。
但し この"解析"にどれ程のコストを要しているかは判りません。もしかすると殆ど気に留める必要もないレベルなのかもしれません。

[ メッセージ編集済み 編集者: Desmo 編集日時 2006-11-30 13:47 ]
1

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