• ベストアンサー

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

主キーを定義すればレスポンスは問題ないといっていいものでしょうか? システムのテーブル検索処理の設計で 保有期間を延長し、5百万件近いのテーブルを保有し検索する処理をつくり 過去分の検索処理を作ろうとしているのですが 「主キーがあるのだから問題あるはずはない」という意見が出ていました。 出来るだけ検索量(サイズ、件数)を絞り込み行おうとしたのですが却下されていまいました。 主キーにすれば問題ないという考えは正しいものなのでしょうか?

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

  • ベストアンサー
  • Siegrune
  • ベストアンサー率35% (316/895)
回答No.3

>過去分の検索処理を作ろうとしているのですが >「主キーがあるのだから問題あるはずはない」という意見が出ていました。 そんなことはありえません。 オペレータは何をするかわかりません。 例えば、検索条件なしで検索してしまって、500万件全部を画面上に表示しようとしてしまったら、 どんな高速なDBサーバを使っていても、高速のLAN回線を使っていても、 回線がパンクしておだんまりになってしまうでしょうから、 やっぱり、検索画面に制限をいれるほうがいいと考えるのが普通と思います。 (何で画面を作るか、あるいは画面の作り方にもよりますが、Out Of Memoryとかでるのかも。) 但し、サイズや件数の制限というのがいいのか、条件を必ず入力させて、この条件で間接的に、 検索結果の制限をかけるのがいいのか、は考え方しだいです。 例えば、1万件以下という件数制限がいいのか、検索する期間を1ヶ月以内にして、 1ヶ月間で検索対象となるのは多い月でも1万件以下であるとするのがいいのか、 は決め事の話になります。

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

その他の回答 (3)

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.4

先にいわれてる方もいますが 主キーだけでの検索(主キーだけなので検索結果は1件か0件)なら問題ないかと。 でも質問内容からすると主キーでの検索どうこうな話じゃない気がしますけど。 例えDBからのレスポンスには問題なかったとしても それを受け取る側で問題あるのではないでしょうか。

すると、全ての回答が全文表示されます。
  • nora1962
  • ベストアンサー率60% (431/717)
回答No.2

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

YagamiNote
質問者

お礼

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

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

>「主キーがあるのだから問題あるはずはない」という意見が出ていました。 「主キー(だけ)で検索するのであれば問題ない」であれば正しいです。

YagamiNote
質問者

お礼

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

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

関連するQ&A