• ベストアンサー

ORACLE接続速度

ORACLEのデータベースにアプリケーションで抽出条件を選択して表示させるという環境があるとして、例えばその抽出条件に日付、名前、出勤態度の3項目を選択させ、実行させます。それで、名前の抽出条件だけAさん、Bさん、Cさんと順に表示させていくとした場合、Bさんだけデータベースに接続するまでの速度がめちゃくちゃ遅いという現象が発生しました。Aさんも、Bさんも、Cさんも、どの名前の人でもレコード数が同じ位なのですが、特定の検索条件だけ接続速度が遅くなることってありえるのでしょうか?もちろん、接続の際のアプリケーション側の処理は同じ処理が実行されます。 OSはWindows2000Proffessional 接続環境はODBC接続で、アプリケーションはVBで開発されたものです。

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

  • ベストアンサー
  • PAPA0427
  • ベストアンサー率22% (559/2488)
回答No.2

経験より2つほど考えられます。 1:レコード数はほぼ同じということですが、検索条件に合致しない不要なレコードが存在している可能性。 2:HDDのハード的な不良がある。→一回登録されたレコードは更新されるまで同じHDDの特定位置にあると思われます。そこのHDDのセクターに不良がある場合、リードリトライが発生して遅くなっている。たまたまBさんが登録されているレコードの場所ということになります。 以上あくまでも可能性でのお話です。

mofu01
質問者

お礼

お返事ありがとうございます。 なるほど、HDDを疑ってみるのも一つの手かも知れませんね。一度確認してみます。

その他の回答 (2)

  • redraft
  • ベストアンサー率16% (9/55)
回答No.3

1.再編成をやってみる。 ⇒やる前に再編成で解決できそうかパフォーマンスチューニングの本でネックになっている個所があるか調べる。 2.データファイルを追加しテーブル配置を変える。 ⇒2つ以上のテーブルを使用している場合、有効(な場合有り)。追加するデータファイルは現在使用している物理ディスクとは別にする。追加したディスクにアクセス頻度の高い方のテーブルを配置する。これによってディスクの物理動作が分散される。 作業前にはパフォーマンスチューニングの書籍で作業内容を調べ作業計画、作業手順を明確にすること。 作業前はバックアップをちゃんと取って最悪、作業前状態に戻せるようにしておくこと。 現象から考えてデータの物理配置に起因しそうなのでパラメータレベルでの解決は難しいように思えます。

  • cse_ri2
  • ベストアンサー率25% (830/3287)
回答No.1

考えにくい現象ですが、実際発生している以上仕方がない ですね。 これはOracleサーバのログや、ODBCログなどを取得して こまめに解析していくしかないかと思います。 ただし解析には相応のスキルが必要になりますので、時間 をかけて自分でそのスキルを身につけるか、スキルのある 人の応援を頼むといった対応が必要となります。

mofu01
質問者

お礼

お返事ありがとうございます。 ORACLEログの確認してみます。

関連するQ&A

  • ORACLEのようにトレースがとれるでしょうか?

    ADO+ODBC接続でSQLサーバーからデータを抽出・更新するのですが、 ORACLEのように実行時のSQLのトレースは取れるでしょうか? SQL文の実行計画はクエリアナライザでわかるのですが… なぜトレースを取りたいかというと、以前ACCESS2000 + ORACLE + ODBC + DAO3.6で、 開発していたときに、コーディングで作成したSQLをODBCあるいはJETが SQLを勝手に書き換えて実行していたのでインデックスが効かないということがありました。 今回はADOを使用するのですが、勝手にSQL文を書き換えて、 インデックスが効かないという事象が発生しないか心配しております。 みなさんよろしくおねがいします。(つたない文章ですみません。m(_ _)m) 開発環境 ************************************************ OS:Windows2003 server Standard Edition SQLサーバー: SQLSERVER2000 クライアント VB.NET クライアントとサーバーの接続 Microsoft ActiveX Data Objects 27. Library ODBC接続 ************************************************

  • VPNでの接続速度が異なります。

    VPNでの拠点間接続で実行速度の違いで悩んでいます。 本店にSQL SERVERのパソコンを置いてB営業所からVPNで 接続しています。 B営業所から本店のデータベースに接続すると 1つのメニューボタンを押すと15秒くらいかかるのですが 1台だけ、3秒程度で済む、パソコンがあります。 何の違いでこうなるのか、いろいろ調べましたが原因が つかめません。 本店のデータベースのパソコンは XP Pro, MSDE2000-SP4です。アプリケーションはAccess projectで作成。 B営業所のパソコンはXP HEやXP ProでOffice XP Access で接続。 接続の早いパソコンはMSDE2000 SP4,Office2003,VB6が入っているので 遅いパソコンにそれらをインストールしてみたのですが同じでした。 これらの内容で何かご存知の方がおられたらご教授お願いします。 不足する情報がありましたらご指摘ください。

  • VisualStudioでoracleへ接続

    開発環境:VisualStudio2008 (Microsoft Visual C# 2008) OS:WinXP DB:Oracle11g (WinXP:localhost) 現在VisualStudio2008を使用し、 C#によるデータベースアプリケーションの勉強しております。 プロジェクトファイルのデータソースにoracleのテーブルを追加したいと思い、 下記手順で操作を行いましたが上手くいきません。 1.ツール(T)→データベースへの接続(D) 2.Oracleデータベースを選択→続行 3.サーバー名を「localhost:orcl」と入力し、   ユーザー名「system」,パスワード「******」を入力 4.接続失敗 oracle11gに関しては http://rina.jpn.ph/rance/index.php?OracleMaster11g%E8%AC%9B%E5%BA%A7 のサイトを参考にインストールを行い、 現在SQL*Plusを使用して各SQL文の実行が出来ているので、 インストール等は正常に出来ていると判断しております。 SQLPlusログインに成功しているので、ユーザー名やパスワードのミスは無いと思い、 恐らくはサーバー名の記載方法にミスがあるのではないかと エラー番号を頼りに調べているのですがなかなか解決できずに居ます。 どうすればOracleに接続し、 DB内のテーブルをデータソースとして追加できるのか教えてくださいませ。 初歩的な質問だとは思いますが、よろしくお願いします。

  • ODBCの接続

    WIN-NT + APACHE + Perl でACCESS2000を使って、WEBの開発を行っています。 当初の開発環境 WIN98 + APACHE +Perlでは、上手くデータベースへの接続が出来ました。 ところが、本番環境である、WIN-NTにセットアップしたところ、ODBCへの接続い失敗してしまいます。 WIN98環境と、WIN-NT環境のODBCドライバのバージョン等は同じです。 また、ODBCの設定も間違いはありません。 CGIはデータベースに接続しない限り、正常に稼動します。 原因はODBCへの接続にあると思いますが、ODBC接続失敗の原因が掴めません。 その他、私が見落としているチェックポイントがあれば、アドバイスをお願い致します。

  • VC++からのoracle接続方法

    初めまして。 助けてください。今日も帰れません。 現在VCアプリケーションでoracleデータベースの チェック処理の実現方法で悩んでいます。 connect及びselectする方法が力不足の為、 解りません。 (以下に実行環境を明記します。) OSはwindowsNT(SP6) APはVC++6.0 oracle8.0 です。 何方かご存知の方が要らしたら教えて頂けないで しょうか?

  • ODBCへの接続失敗

    WIN-NT + APACHE + Perl でACCESS2000を使って、WEBの開発を行っています。 当初の開発環境 WIN98 + APACHE +Perlでは、上手くデータベースへの接続が出来ました。 ところが、本番環境である、WIN-NTにセットアップしたところ、ODBCへの接続が失敗してしまいます。 WIN98環境と、WIN-NT環境のODBCドライバのバージョン等は同じです。 また、ODBCの設定も間違いはありません。 CGIはデータベースに接続しない限り、正常に稼動します。 原因はODBCへの接続にあると思いますが、ODBC接続失敗の原因が掴めません。 その他、私が見落としているチェックポイントがあれば、アドバイスをお願い致します。

    • 締切済み
    • CGI
  • テーブル作成クエリの処理速度

    フォームからの入力値を抽出条件にしてテーブル作成クエリを実行しています。 ※抽出元はリンクテーブル データ件数は60万件ほどあり抽出に相当な時間を要します。 処理速度を上げるためにはどのようにすればよいのでしょうか。

  • odbc接続処理が遅い

    vb.netにてプログラムを作成して使用しており、DBはpostgresqlをodbc接続にて使用しております。 ある端末で処理が極端に遅く、デバッグにて検証したところ、DB処理で時間がかかっていることがわかりました。 それに伴い同端末で別システムのoracleへのodbc接続も同じ現象となっている状況です。 この端末ではpostgresqlのodbcドライバの入れ替えを行ったことがあり、その頃から遅くなったようです。 また、別の全く同じ環境の端末では特に問題ない処理速度で稼働しております。 odbcドライバの入れ替えは何度か行っておりますが改善されません。 改善方法をご存じの方はおられますでしょうか?

  • CSE SQLEXPRESS ODBC接続ができません

    初心者です。 同じPCにSQLSERVER EXPRESS 2005を入れており、VISUAL STUDIOで使用しております。 そこでSQL作成ツールのCSEからSQLSERVERを使用するために、ODBC接続を作成してSQLSERVERで作成したデータベースに接続したいのですが、ODBC接続がうまく作成できません。 行っている設定方法は、 ユーザDSNでサーバ(local)を選択。 WINDOWS NT認証を使用を選択。 しかし、規定のデータベースの選択で、 master等は出て来て接続できるのですが、接続したい自分で作成したデータベース名が表示されません。 ほかに何らかの設定が必要なのでしょうか? よろしくお願いします。

  • JavaScript で接続速度を測る

    JavaScript で接続速度を測って、実行するスクリプトを自動選択するようにしたいと思っています、ここで検索したのですが、CGI での測定方法しか見つかりませんでした。JavaScript で測る方法をご存知の方がいらっしゃいましたら、お教えください。 よろしくお願いします。