• ベストアンサー

テスト環境と本番環境で、DBからのデータ取得にかかる時間に違いがある。

お世話になります。 WebサーバとDBサーバを使用して構築したシステムが あります。 テスト環境と本番環境があり、それぞれ、以下の様になってます。 テスト環境 Webサーバ   Windows2000 Server+IIS5.0+ .NET Framework DBサーバ   Windows2000 Server+Oracle8.0.6 本番環境は Webサーバ   Windows2000 Server+IIS5.0+ .NET Framework、 DBサーバ   Solaris(バージョン分からず)+Oracle8.0.6 となっています。 テスト環境と本番環境の違いについてですが、 Webサーバの方は、スペックは違いますが、 その他の環境は同じです。 DBサーバの方は、OSの違いとOracleのデータベースの定義に少し違いがあるかもしれませんが、 データの件数とテーブルの定義は同じです。 そこで肝心の質問の件なのですが、 テスト環境と本番環境で、同システムを実行した際に、 DBからのデータ取得にかなりの時間の差があるのです。 テスト環境で、2~3分で終わる処理が 本番環境だと、30分くらいかかってしまいます。 何が原因でこのような状態になっているか分からず、 すごく悩んでいます。 ネットワークの速度にはそれほど違いはないのですが・・・。 また、マシンスペックは本番環境の方が高いです。 どんな細かい情報でもかまいませんので、 ここが怪しいのではないか?とかありましたら、 ご教授お願いします。 また、他に必要な情報とかありましたら、 できる限り調べますので、どうぞよろしくお願いします。

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

  • ベストアンサー
  • muyoshid
  • ベストアンサー率72% (230/318)
回答No.2

こんにちわ。 先ずは#1 の方が言われているように、検索条件となる 項目に索引が定義されているか確認して下さい。 本番環境にも索引が定義されているようであれば、念のため 索引を再作成してみてください。 → alter index 索引名 rebuild; で再作成できます。 それでも性能が悪いようであれば、Oracle の初期化 パラメータファイルを見直してみてください。 バッファサイズや、shared pool サイズに問題がある 場合もあります。 それでも解決しなければ、SQL Trace を取って tkprof するしかないですね。

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

その他の回答 (3)

  • muyoshid
  • ベストアンサー率72% (230/318)
回答No.4

こんにちわ。 #2 のmuyoshid です。 索引を使用しなかった場合、データ件数が同じでも 検索時間に差が出る事があります。 Oracle は、「最後のデータ」と言う管理を行って いませんので、索引を使用しない検索 (全表検索) した場合、高水準位指標までの読込みを行います。 一度100万件のデータが登録されると、データが削除 されても、100万件分のデータブロックの読込みが 行われます。 exp user/pass tables=(表名) file=data.dmp としてデータを一旦バックアップして、 SQL> truncate table 表名 imp user/pass file=data.dmp ignore=y としてデータの復旧をしてみて下さい。 デーブルのアクセスパターンに応じて、適宜 索引の定義も検討して下さい。

全文を見る
すると、全ての回答が全文表示されます。
  • ARC
  • ベストアンサー率46% (643/1383)
回答No.3

インデックスじゃないとすると、そうですねぇ… もし可能であれば、本番系のデータ全部エクスポートして、テスト系に丸々インポートしてみたらどうなんでしょうか。 これによって、表定義とか統計情報については同一に出来ると思うんで。 それでもまだ違いが出るっていうのであれば、テーブルスペースとかのDB定義の方の設定が違ってるんじゃないかなぁ。(先に書いたように、この辺に関してはさほど強くは無いんで、あまり突っ込んだ話は出来ないんですが。) インポートしたテスト系のほうでもパフォーマンスの低下が起こるようであれば、多分、なんかのデータが悪さをしてるんじゃないかと(^^;

全文を見る
すると、全ての回答が全文表示されます。
  • ARC
  • ベストアンサー率46% (643/1383)
回答No.1

それほどまでに差があるとすると、例えば、インデックスの張り忘れなんかが頭をよぎります。 他にもリーフ分割など、インデックスがらみで遅くなる可能性はありますので、一度再生成されてみたらいかがでしょうか。 あとは、メモリやディスク領域の設定とか、あるいは統計情報なんかもパフォーマンスに関わってくるんですが… Oracleのチューニングについてはさほど詳しくは無いので、他の方にお任せします。

burger_street
質問者

お礼

>例えば、インデックスの張り忘れなんかが頭をよぎります。 テスト機、本番機ともにインデックスは貼っていない模様です。 でもデータベースの設計などが、問題の原因なのかもしれないんですね。 ご回答ありがとうございました。

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

関連するQ&A

  • テストプロジェクトのテスト環境から本番環境への移行

    現在開発環境においてVisualStudio2005 TeamEditionで、 テストプロジェクトを作成し、システムテストを行っています。 このプロジェクトを使い、本番環境でも同様のテストを行いたいと思っています。 しかし、本番環境にはVisualStudioがインストールされていません。 それでもテストを行うことは可能なものなのでしょうか。 言葉足らずかもしれませんが、 よろしくお願いいたします。

  • チューニングでテスト環境でOKなのに本番環境で駄目です。

    こんにちは。 Oracleのチューニングについてお伺いします。 本番データをImportしてテスト環境を作成し、 SQL文を変更しての速度アップのチューニングを行っています。 テスト環境では問題なく速度向上ができましたが、 本番でやったところ思ったような速度向上ができませんでした。 実行計画を見るとやはり違っていますので、ここらへんが問題とは思いますが、原因不明のため本番でのテストも仕方なくしています。 この先PL/SQLなど複雑に呼び出している部分があり、この部分に踏み込まなければいけない状況まできていますが、本当はテスト環境で何とかしたく思っています。 そのような状況ですが、テスト環境を使っての何か良いデバック方法や対策などご存知の方いましたらご教授願いたく思っております。 Oracle8i/VB6.0環境です。

  • 「本番・開発・テスト」の英訳

    システム業界ではシステムを開発運用していくために、主に以下の3つの環境を作ります。ここで言う本番機は、英語ではどのように表現されるものでしょうか? 本番機(?) テスト機(test server) 開発機(development server)

  • DBサーバーのOracleからのデータ取得について

    WEBサーバー(Linux)とDBサーバー(WindowsServer2003)が分かれている環境で、WEBサーバーのPHPからoci8で、DBサーバーのOracleからデータ取得をしており、データ取得量?が多いとエラーとなってしまします。 SQL自体はOracle環境で実行して正常にデータ取得することは確認しているのですが、10万行程度のレコード数でもレスポンスの時点?でエラーとなります。 (レスポンスの情報が無いので、エラー内容が分からず、データ件数を絞ると抽出が出来ます) 解決方法をご存じの方や、PHPもしくはLinuxの設定で取得データサイズの設定方法について分かる方がおりましたら、ご教授ください。 宜しくお願い致します。

  • VB .NETとOracleを使用したシステム構築

    お世話になります。 現在、VB5とOracle8.0.6で稼動しているシステムがあるのですが、このシステムをVB.NETを使用してWEB化したいと考えております。 質問なのですが、 VB5+Oracle8.0.6のシステムをVB.NETでWEB化する場合、 どういう環境が必要なのでしょうか? また、注意点などありましたら、是非教えてください。 言葉足らずだとは思いますが、何卒、よろしくお願いします。 環境 クライアント  Windows XP Pro SP1  IE6.0 WEBサーバ  Windows2000 Server  IIS 5.0 DBサーバ  Oracle 8.0.6

  • テスト環境でIISが必要なのですが

    Webコンテンツの動作検証のためASPやVBscriptが使えるように IISとNT4.0で環境の構築をする必要が有りそうなのです。 一応社内にNT3.5があるのですがこれにIISをインストールする ことはできるのでしょうか? LinuxやFreeBSDでWebサーバーを立てるなんて朝飯前なのですが WindowsのServer事情については全く素人ですのでIISは購入する ものなのかOSに付属するものなのかNT4.0と2000serverや 2000advansedserverの違いすらわかりません。 すみませんがよろしくお願いいたします。

  • ASPを用いてSQLServerからのデータ取得ができません。

    ASPを使ってSQLServerからのデータ取得ができません。 クライアントのPCから、Webサーバ経由でDBサーバへアクセスすると、 『[Microsoft][ODBC SQL Server Driver]分散トランザクション エラー』 というエラーメッセージが表示されます。 WebサーバとDBサーバが同一PC上にある場合は、問題なく実行できます。 また、同じテーブルを使って、簡単なサンプルコードを実行した場合では、WebサーバとDBサーバが別々のPC上にあっても問題なく動きます。 原因はIIS、もしくはSQLServerの設定にあるのか、それともASPファイルのソース自体にあるのか、わかりません。 どなたかご存知の方、よろしくお願いします。 DBとの接続はADO接続で、環境は、 Webサーバ/WindowsXP Pro、IIS 5.0 DBサーバ/WindowsXP Pro、SQLServer2000 を使っています。

  • Windows2000サーバー + ASP.NET2.0 環境構築

    お世話になります。 現在、開発を進めております、とあるWebアプリケーションの環境構築方法について質問させていただきます。 そのアプリケーションは前提として以下の条件です (1)Windows2000サーバー【IIS5.0】 (2)ASP.NET2.0【VisualStudio2005 VB.NET】 (3)Oracle8.1.7【Oracle8i】 弊社にはWindows2000サーバーがありません 仕方が無く、Windows2003サーバーをテスト環境として開発を進めていました。(この時点で問題だが・・・。) 来月中旬に導入予定なのですが、Windows2000サーバーにWebアプリケーションを載せる場合に必要な 環境構築の設定を確認している次第です。 ユーザー様のWindows2000サーバは既にIISとOracleはインストールされていると聞いています。 ■ユーザー様の設定  I.Microsoft .NET Framework 2.0のインストール  II.アプリケーションの配布方法の確認、IISに仮想ディレクトリを指定しアプリケーションの配布を行うこと。  III.Oracleデータベース定義   IIの部分で、IISのユーザー作成が必要となりますか?? また、これ以外で作業が抜けていると思われるところをご教授いただけないでしょうか?? 皆様のお知恵をお貸しください。 どうかよろしくおねがいいたします。

  • PuTTYを使用して、テストサーバーのデータを本番サーバーに移動させた

    PuTTYを使用して、テストサーバーのデータを本番サーバーに移動させたいのですが、やり方が分かりません。どなたか教えていただけませんでしょうか?

  • ダンプリストア時のDBデータ不整合

    環境 CentOS5系 64bit DBバージョン 8.3.3 本番DBサーバからpg_dump -c -D でダンプしたデータを、ローカルテストDBサーバ へpsql にてリストアした際、データ不整合が、一部のテーブルに発生しました。 前のデータが一部クリアされずに残っている状況です。 ダンプのデータは、DBの内容と同じなのですが。 因みに、pg_dump パラメータ無しのダンプのリストアでは、発生しません。 何が、原因でしょうか? もしかしてバグ? ご教授願えれば幸いです。 宜しくお願い致します。

印刷面の汚れ
このQ&Aのポイント
  • 【HL-L2375DW】印刷すると三箇所、汚れが付着します。
  • お使いの環境はMacOSで、無線LANで接続されています。
  • ブラザー製品についての質問です。
回答を見る