こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ORACLE 主キーにすれば遅くならない?

主キーを定義すればレスポンスは問題ないといっていいものでしょうか?

システムのテーブル検索処理の設計で
保有期間を延長し、5百万件近いのテーブルを保有し検索する処理をつくり
過去分の検索処理を作ろうとしているのですが
「主キーがあるのだから問題あるはずはない」という意見が出ていました。


出来るだけ検索量(サイズ、件数)を絞り込み行おうとしたのですが却下されていまいました。

主キーにすれば問題ないという考えは正しいものなのでしょうか?

投稿日時 - 2012-02-10 00:06:16

QNo.7296186

困ってます

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

>過去分の検索処理を作ろうとしているのですが
>「主キーがあるのだから問題あるはずはない」という意見が出ていました。

そんなことはありえません。
オペレータは何をするかわかりません。
例えば、検索条件なしで検索してしまって、500万件全部を画面上に表示しようとしてしまったら、
どんな高速なDBサーバを使っていても、高速のLAN回線を使っていても、
回線がパンクしておだんまりになってしまうでしょうから、
やっぱり、検索画面に制限をいれるほうがいいと考えるのが普通と思います。
(何で画面を作るか、あるいは画面の作り方にもよりますが、Out Of Memoryとかでるのかも。)

但し、サイズや件数の制限というのがいいのか、条件を必ず入力させて、この条件で間接的に、
検索結果の制限をかけるのがいいのか、は考え方しだいです。
例えば、1万件以下という件数制限がいいのか、検索する期間を1ヶ月以内にして、
1ヶ月間で検索対象となるのは多い月でも1万件以下であるとするのがいいのか、
は決め事の話になります。

投稿日時 - 2012-02-11 02:19:57

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

先にいわれてる方もいますが
主キーだけでの検索(主キーだけなので検索結果は1件か0件)なら問題ないかと。
でも質問内容からすると主キーでの検索どうこうな話じゃない気がしますけど。

例えDBからのレスポンスには問題なかったとしても
それを受け取る側で問題あるのではないでしょうか。

投稿日時 - 2012-02-11 14:09:17

ANo.2

主キーが検索項目でなければ全表検索になります。多分遅いでしょう。

投稿日時 - 2012-02-10 14:19:25

お礼

ありがとうございます。たしかに全件検索よりは早くなると思います。
ただ、主キーすれば何件でもOKという考え方が正しいのか疑問に思っていました。

投稿日時 - 2012-02-11 01:19:51

ANo.1

>「主キーがあるのだから問題あるはずはない」という意見が出ていました。

「主キー(だけ)で検索するのであれば問題ない」であれば正しいです。

投稿日時 - 2012-02-10 00:41:15

お礼

ありがとうございます。
主キーだけで検索するのだから問題ない。という考えが正しいのでしょうか?
何件あっても主キーだから問題ない。が但しのか疑問に思っていました。
例えば、主キーだけの検索だとしてもかなりの数になった場合、レスポンスは悪化すると思っていました。

投稿日時 - 2012-02-11 01:18:51

あなたにオススメの質問