販売管理データベースの検索時間改善のための対策は?

このQ&Aのポイント
  • 関係データベースを利用して作成した販売管理データベースの検索時間が増加している。対策として、以下の中で最も有効な方法はどれか。
  • 販売管理データベースの検索時間を改善するためには、テーブルのレコード数が増加していることや検索対象テーブルのすべてのレコードにアクセスしていることを考慮する必要があります。
  • 具体的な対策としては、関係データベースのDBMSを再インストールする、検索条件に応じたインデックスを追加する、販売管理データベースを格納するハードディスク装置を二重化してミラーリングの技術を導入する、販売管理データベースを利用するアプリケーションを再インストールするなどがあります。最も有効な対策は、インデックスの追加です。
回答を見る
  • ベストアンサー

文章問題

最近、関係データベースを利用して作成した販売管理データベースの検索時間がかかるようになってきたため、調査したところ、次のような調査結果を得た。販売管理データベースの検索時間を改善するために、もっとも有効な対策はどれか。 (調査結果) (1)テーブル(表)のレコード(行)数が、当初の約5倍に増加している。 (2)検索のたびに検索対象テーブルのすべてのレコードにアクセスしている。 ア 関係データベースのDBMSを再インストールする。 イ 検索条件に応じたインデックスを、販売管理データベースに追加する。 ウ 販売管理データベースを格納するハードディスク装置を二重化して、ミラーリングの技術を導入する。 エ 販売管理データベースを利用するアプリケーションを再インストールする。 答えは、イ。 解説をかかなければいけないんですが、よく分かりません。

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

  • ベストアンサー
回答No.1

検索条件に応じたインデックスが作成されていない場合、検索時間はレコード件数に比例して増加する。検索の都度、すべてのレコードを読み出さなければならないからである。 一方、検索条件に応じたインデックスが作成されている場合、検索時間はおおむねレコード件数に対して、その対数のオーダーで増加する(いわゆるツリー型インデックスの場合)。つまり、レコード件数に対して検索時間が増加する比率が非常に小さい。これは、所期のレコードに達するまでにインデックスの段数だけをたどればよいからである。 ……原理的にはこんな説明になりますが、これって情報処理試験の試験問題(午後一?)みたいに見えますが、学校の演習とか宿題?

love0210
質問者

お礼

そうなんです。 先生が作った問題です。 どう説明していいのか分からなかったので 助かりました☆ ありがとうございました(^.^)♪

関連するQ&A

  • エクセル関数で同一データーの複数表示

    エクセル素人、PC素人です。 エクセルの関数のみを使用してデーターベースから簡単な検索引表を 作ろうとしています。 物販業をしております。商品に添付されている札(各仕入先メーカーの 管理用札です)のバーコードを利用して商品管理データーベースを作っ ています。 検索キーはこのバーコード品番になります。品番でデーターベース 内に一致する品番を含んだレコードをまるまる引表する際、同一品番 (同一商品)のレコードを同時に引表するにはどうすればよいでしょうか。 引表したレコードに「販売先名」「販売日」などを書き込み 【販売済の独立したデーターベース】を作りつつ、販売先、販売日は関 数を使って自動的に元の商品管理データーベースにもフィードバックさ せたいのです。 素人過ぎる表現やお伺いで大変お恥ずかしく申し訳ございません。

  • データベース

    基本情報処理のデータベース技術についてなのですが、 次の問題の解答を教えて下さい。できれば簡単な解説もお願いします。 問1.データベースシステムを導入することによって期待できる効果を2つ選べ。   ア コード設計作業の軽減   イ 重複データの削減   ウ データ転送の高速化   エ プログラムとデータの独立性向上 問2.データベースのデータ構造に関係しない用語はどれか。   ア 表構造   イ ネットワーク   ウ 木構造   エ SQL 問3.次のデータベースに関する記述のうち、正しいのはどれか。   ア プログラムとファイルが密接な関係にあるので,プログラムがつくり易い   イ データに重複が無いので,業務によってデータ内容に矛盾が発生しない   ウ 適用業務ごとに専用のファイルがないので、ファイル管理がしにくい   エ データの扱いが標準化されるために、個別の業務処理がしづらい   

  • VBAでデータベースの構築をしています。

    VBAでデータベースの構築をしています。 全く同じフィールドを持つ2つのテーブルがあり、その2つのテーブルを 比較し、重複するレコードのみを3つ目のテーブルに抽出したいのですが、 可能でしょうか? 『重複するレコードを削除する』というのはウェブで検索すると出てくる のですが・・・ よろしくお願いいたします。

  • データベースの質問です。下記の四択について、どうい

    データベースの質問です。下記の四択について、どういうものか根拠を教えて下さい システム障害発生時には,データベースの整合性を保ち,かつ,最新の データベース状態に復旧する必要がある。このために,DBMSがトランザクション のコミット処理完了とみなすタイミングとして,適切なものはどれか。  ア アプリケーションの更新命令完了時点  イ チェックポイント処理完了時点  ウ ログバッファへのコミット情報書込み完了時点  エ ログファイルへのコミット情報書出し完了時点

  • 日付が直前のレコードを取得したい

    以下のテーブルがあります。商品名はシーズンで変わることがあり、商品マスタで管理されています。 ■購入テーブル(T1)  【商品コード】【購入日】   1000     2020/08/01 ・・・ア   1000     2022/01/04 ・・・イ   1010     2018/12/21 ・・・ウ   1010     2022/01/01 ・・・エ ■商品マスタ(T2)  【商品コード】【商品名】 【適用開始日】   1000     PC-1  2000/01/01   1000     PC-1a 2021/01/01   1010     PC-9  2000/01/01   1010     PC-9a 2021/01/01 この時、購入日直前に適用されていた商品名を取得して以下の結果を得たいのですがうまくいきません。   【商品コード(T1)】【購入日(T1)】【商品名(T2)】 ア: 1000        2020/08/01   PC-1 イ: 1000        2022/01/04   PC-1a ウ: 1010        2018/12/21   PC-9 エ: 1010        2022/01/01   PC-9a 【適用開始日】を降順ソートして先頭1件名のレコードを取得してみたり色々とやっているのですがうまくいきません。お力をお借りしたくよろしくお願いいたします。

  • 精度と再現率の問題です

    データベース全体に100件のレコードがあります。「ラーメン メンマ」で文献検索したところ、40件ヒットしました。このうち、要求に適合する結果(知りたい事がわかった)検索結果は10件、データベース全体で適合するはずの文献は20件です。この時の検索の精度、再現率はそれぞれどうなるでしょうか この問題を分かりやすく説明して答えを教えて下さい

  • データベースの設計方法について

     全くの初心者で、いろいろな書籍を参考に販売・在庫管理データベースをつくりたいと勉強しています。  環境はMicrosoft SQL Server 2008 R2 EE をサーバーにインストールして、別のクライアントパソコンから SQL Server Management Studio でデータを作成しています。  データベースとは閉じた空間で、1つのデータベース内で必要なテーブルを全て用意するものと思っていました(参考にした書籍もそうなっていました)。  しかし、ネットでいろいろ調べるとインスタンス内に複数のデータベースを作成し、それらデータベース内のテーブルは相互接続可能出来るみたいでした。  となると、データベースを設計する際 <販売管理データベース>  ・顧客情報テーブル  ・商品情報テーブル  ・在庫テーブル  ・単価テーブル  ・請求データテーブル  ・伝票テーブル  ・etc.  と1つのデータベースに全てのテーブルを用意する設計では無く <販売管理データベース>  ・伝票テーブル  ・請求データ  ・etc. <顧客情報データベース>  ・顧客情報テーブル  ・単価テーブル  ・etc. <商品情報データベース>  ・商品情報テーブル  ・在庫テーブル  ・etc.  みたいに、機能ごとにデータベースを分けて、インスタンス単位で1機能(もしくは複数機能の実装)の設計でも良いのでしょうか?  プログラム言語の、プロジェクト=インスタンス、クラス=データベースみたいな考え方が出来ればと思っています。  この方法が正しいのか誤りなのか、そもそも理解に誤りがあるのか全く見当が付きません。  一般的にはどのようにするものなのでしょうか?

  • すべてのテーブルのすべてのレコードを削除する方法

    データベースを扱うプログラムに対してユニットテストを行いたいと思っています。 それぞれのテストが終了するごとにすべてのテーブル内のすべてのレコードを削除したいのですが、 delete from table_a; delete from table_b; delete from table_c; ... のように書くと、外部キー制約に引っかかってしまい削除できないことがあります。 短いSQL文で複数のテーブル内のレコードをすべて削除する方法はないのでしょうか? よろしくお願いします。 ちなみに、私が現在使っているDBMSはPostgreSQL 8.1です。

  • Access2002のリレーションについて。

    販売管理のデータベースを作成しています。 『販売店マスターテーブル』 販売店コード(主キー) 販売店名 郵便番号 住所 電話番号 営業担当者コード 『営業担当者テーブル』 営業担当者コード(主キー) 営業担当者名 『販売伝票テーブル』 伝票番号(主キー) 売上日 販売店コード この中で、『販売店マスターテーブル』から、販売店コード,販売店名,郵便番号,住所,電話番号,営業担当者コードを、 『営業担当者テーブル』から、営業担当者名を使って、新しいクエリを作成しました。 そのクエリを基にフォームを作成しましたが、フォームに新規レコードを入力できません。 念のため、販売店コードを『販売伝票テーブル』からとってきたら、新規レコードが入力できるようになりました。 これは、何か主キーの関係で入力できないんでしょうか。 もし、『販売伝票テーブル』から販売店コードをとらなくちゃいけないとしたら、それはナゼでしょうか・・。 初歩的なことで申し訳ありませんが、とても困っています。 どなたかお分かりになる方、教えて下さい。 よろしくお願いします。

  • データベース数 or テーブル数

    こんにちは。よろしくお願いします。 ただいまデータベース連動型のCMSを利用しているのですが、1サイトあたり100テーブルほど利用します。 1000サイトのデータベースを 1、1000データベース作成して管理 2、データベースに1000×100テーブル作成して管理 のどちらで管理した方がサーバーに負担が少ないでしょうか? データベース数とテーブル数に限りはなかったと思うので、負担が少ない方で対応しようかと思ってます。 **現在、2の方法で行っているのですが、 phpMyAdminでデータベースを表示する際に、すごく時間がかかります・・・

    • ベストアンサー
    • MySQL