• ベストアンサー

パフォーマンスチューニング関連の資料

こんにちわ。 当方、IT業界歴5年、主にVBとOracle、その他のRDBを使用した プログラミング側を担当してきました。 このたび、既に動いているシステムのDBレスポンスが物凄く悪いので、 システム改修を依頼されました。 プログラム側とSQL文の改造は、何とかなりそうなんですが、 DBのインフラレベルから見直しをする必要があり、そちら方面は さっぱりで困っています。 そこでOracleの物理的設計、パラメータの設定、統計情報の取り方、見方等のチューニングに関する 参考書籍を購入しようと考えているのですが、お勧めの書籍などありませんでしょうか?

  • Oracle
  • 回答数2
  • ありがとう数0

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

  • ベストアンサー
  • joih
  • ベストアンサー率35% (37/105)
回答No.1

即回答がつかないようなので。 最近はチューニングに関してまとめた本は見かけない気がしますね(自分が関心なくなっているというのも原因ありなのですが)。 統計情報や、SQL実行計画をみるには、 SI Object Browser http://www.sint.co.jp/siob/default.asp がおすすめです。 ■基本的な考え方を学ぶのであれば、とんでもなく古いですが、下記がいいと思います。 よくまとまってる資料でオラクル社がまとめたもの: http://otn.oracle.co.jp/dba/performance/archive.html Oracle8簡単チューニング http://otndnld.oracle.co.jp/deploy/performance/pdf/o8tuning.pdf ↑以外にも「実行計画とトレースの取得方法」など懐かしいものが見れます。 書籍ではこれが今までで一番良かったと思います↓ ORACLE データベースチューニング(翔泳社) http://www.yfcbookshelf.com/database's%20books11.htm あまりおすすめしませんが、古典では Oracle パフォーマンスチューニング http://www.amazon.co.jp/Oracle-%E3%83%91%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%B3%E3%82%B9%E3%83%81%E3%83%A5%E3%83%BC%E3%83%8B%E3%83%B3%E3%82%B0-%E3%83%9E%E3%83%BC%E3%82%AF-%E3%82%AC%E3%83%AA%E3%83%BC/dp/4900900346 というのもあります。 辞書的な情報を知りたいなら、オラクルのHPでダウンロードできる「DBリファレンス」で。 ↓以外でバージョンにあわせて探してみてください。 http://otn.oracle.co.jp/document/products/oracle9i/920/general.html#performance パフォーマンスの改善でよく言われるのが、改善効率はアプリ8割・DB2割です。DBのチューニングを精一杯施しても大して速くならないのですが、一応。昔はストレージへのアクセスでチャネルがボトルネックになったので、チャネルごとに配置されたディスク上にまたがるようにして表を置いて速くしたものですが、最近はRAIDのおかげでそういうことも気にすることはほとんどなくなりました。 ディスクが速くなり、マルチスレッドを使ってパラレルにDBへのアクセスをするようになるアプリが増え始めてからラッチなどがチューニング対象になった時期もありますが、よほど大規模じゃないと扱わないですよね。 とりあえず、読取に関してはDBバッファをでかく、書き込みについては ログバッファを調整するくらいです(偏見が多く含まれていますが)。ぶっちゃけていえば、ハードを増強すれば(略)。頑張ってください。

その他の回答 (1)

  • entree
  • ベストアンサー率55% (405/735)
回答No.2

オラクルのノウハウ本は結構出ていて、私も立ち読みすることが時々あるものの、なかなか良書と言える本がないのが現状だと思います。 ただ、No.1 の joih さんが随分と出してくださっているようなので、その他のもので・・・書籍ではないのですが。 ■Oracle9i 物理設計 http://otn.oracle.co.jp/skillup/oracle9i/ 連載が完結していて非常に良くまとまっています。 それでいて、物理設計に必要な事項はほとんど網羅されていると思います。 ■Oracleデータベース 性能対策機能 ~ StatspackとDiagnostics Packを使いこなす ~ http://otn.oracle.co.jp/skillup/stats_diag/index.html Statspack についての記述がされています。 Oracle10g からは AWR、ADDM という機能が搭載されているものの、EE オプションなので、Oracle10g でも Statspack はボトルネックやパラメータの問題を探るのには最も効率的なツールの1つだと思います。 パラメータの問題、SQL の問題などの解決は、この Statspack のレポートをいかに活用するかが重要だと思います。(もちろんそれだけではダメですが・・・) ■Oracle SQLチューニング講座 http://www.atmarkit.co.jp/fdb/index/index-db.html#tuneorasql ハイ・パフォーマンスを実現するための物理設計と SQL 文のチューニングに関する記述があります。その上で必要となる実行計画や SQL トレースの取得方法と見方は非常に参考になると思います。 ■オラクルマスター教科書 Gold Oracle9i Database 【パフォーマンス・チューニング】編 http://www.amazon.co.jp/%E3%82%AA%E3%83%A9%E3%82%AF%E3%83%AB%E3%83%9E%E3%82%B9%E3%82%BF%E3%83%BC%E6%95%99%E7%A7%91%E6%9B%B8-Oracle9i-Database-%E3%80%90%E3%83%91%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%B3%E3%82%B9%E3%83%BB%E3%83%81%E3%83%A5%E3%83%BC%E3%83%8B%E3%83%B3%E3%82%B0%E3%80%91%E7%B7%A8-CD-ROM%E4%BB%98/dp/4798105023/ref=pd_sim_b_2/249-7977132-2313152 資格を取得するつもりはなくても、パラメータの設定について良くまとまっているので少し値は張りますがお勧めです。ちなみに、Oracle10g 向けの対策本はお薦めできません。

関連するQ&A

  • Oracle8.1.6のチューニング全般について

    Oracle8.1.6のチューニングについてお伺いした事があります。 既存のOLTP系システムのDB専用サーバがハード交換となり、 新しいサーバにてDBを再構築する事となりました。 これを機に以下のチューニングを行い、パフォーマンス向上を考えております。 現在検討している手段は以下となっております。 ・ANALYZEによる全表の統計情報の取得 ・SGAメモリ割り当ての見直し 上記以外でレスポンス全般に大きな影響を与える箇所というのは ありますでしょうか?(Windwsの設定等も含む) また、割り当て直したSGAメモリの主要となる値を記載させて頂きますのでご指導頂けますでしょうか? db_block_buffers = 64 (MB) shared_pool_size = 512 (MB) log_buffer = 3 (MB) sort_area_size = 1 (MB) db_block_size = 8 (KB) サーバスペックは以下となっております。 OS :Windows2003 Server CPU:Inter(R) Xeron(TM) CPU 3.40GHz, 3.39GHz メモリ:6GB(物理) Oracle8.1.6 Oracleへの同時接続セッション数:50~100(最大時) 上記以外に必要な情報があれば、ご指示願います。 長々となりましたが、よろしくお願い致します。

  • パフォーマンス・レスポンス向上技法勉強方法

    システムのレスポンス向上技法を勉強したいと思っています。 ゼロから始める形でオススメの書籍、講座、Webはありませんか。 最終的にはDB/クライアントハード・インフラ・DBソフト選択/設定・ロジック・SQL含めて全般的な知識を身につけたいとは思っていますが ・既存システムのボトルネック調査/切り分け方法 ・新規開発時のSQL・ロジック作成時の注意点 から学べればと思っています。 現在一番使うことが多い環境が下記の通りなので 下記のどれかに特化したものでもいいと思っています。 まずはどこから取り掛かれば・・・、という状態なので・・・。 ソフト側:Access/EXCEL(2000/2003), VB6 DB側:Access, (Oracle, SQLServer) 宜しくお願い致します!

  • Lotus NotesでのRDB利用

    現在、業務システムではRDB(Oracle)を利用し構築し、グループウェアではLotus Notesを利用していますが、Oracleに入っている社員DBをLotus Notesでも利用し、一元管理したいのですが、何か良い方法はありますか?

  • Apache、Tomcat連携時のチューニングについて

    よろしくお願いします。 質問ですが、Apache、Tomcatを連携させてイントラのWebを構築したのですが、アクセス数が増えるにしたがって、レスポンスが遅くなり、アクセス数が100未満にもかかわらず、クライアントのWeb画面が固まってしまう現象が起きました。 私はApache、Tomcatのチューニング(主にJVMのメモリ増加設定)である程度は解決するのでは、と思っていますが、この他にチューニングの方法はあるのでしょうか? もし、他の方法がありましたら、詳しく教えて頂けたらと思います。 ちなみに、Javaで開発を行い、OSにはMIRACLE LINUX、DBはORACLEを用いていますが、ORACLEはステータス管理程度にしか使用していないので、今回の件に関しては、特に関係はないと思います。 どなたかご教授ください。よろしくお願いします。

    • ベストアンサー
    • Java
  • SQLServer2008パフォーマンスUP方法

    データ出力プログラム(CSV)において、データ増加のため処理時間が長くなり、パフォーマンス改善を図らなければなりません。 そこで質問です。 以下の条件でパフォーマンス改善を図れる方法は御座いますでしょうか。 条件1:プログラムの変更は不可 (select分の改修などは不可ということです) 条件2:サーバスペックの見直しは不可 条件3:キー項目の見直しは不可 以前にオラクルでアナライズにより飛躍的に処理速度が向上した経験があります。 何かのコマンド、またはパラメータの値変更にて処理速度向上が図れる 手段をお教えください。 (SQLではアナライズは自動との認識は御座います。また、SQLServerのパラメータの類は 初期値のままです)

  • WebシステムにおけるOutOfMemoryエラーの回避策

    お世話になります。 Windows2000ServerSP4環境にて、SunONEApplicationServer7.0.0_02 PlatformEditionを用いたWebシステムにおけるOutOfMemoryエラーの回避策についてお伺い致します。 今まで講じた対策は、以下の通りです。 ・JVMパラメータ「NewRatio」のチューニング ・JVMパラメータ「Xms、Xmx」のチューニング ・JVMパラメータ「SurvivorRatio」のチューニング システムに拠って有効なパラメータは変わってくると思いますが、 今まで有効性が認めらたパラメータがございましたら、 何でも良いので情報を頂きたいです。 ※ただし、プログラム自体の改修は実施する予定はありません。 よろしくお願いします。

  • DB作成パラメータ値

    Oracle 9iを使用しています。 Win2000上で標準パラメータでDBを作成し、アプリケーションを稼動しています。このEXPORTファイルを使用して Win2003で、同じく標準パラメータでDB(同じくOracle9i)を作成し、 DBをインポートするとアーカイブログの空きがない、のエラーとなり、 IMPORTコマンドは異常終了してしまします。 同じOracle 9iでも稼動しているOSにより、各種領域設定はことなるのでしょうか?

  • ORACLEについて

    ORACLEでDBを構築しようと思っているのですが、 ORACLE8とORACLE8iとはどう違うのですか? 今手元にその二つのソフトがあるのですがどちらを使えばよいかわかりません。ちなみにwebサーバーでシステムを行おうと計画をしています。 よろしくおねがいします。

  • 全表走査のチューニング

    Oracle10gでA,B,Cという表があり、Aは50万件で80列、Bは50万件で15列、Cは30万件で15列という表があります。まず表Bを全表走査してGroup Byし、A,CとINNER JOINしてさらにA,B,CとINNER JOINして、ソートしています。諸事情があり、この方法以外選択肢はありません。 実稼働しており、あとはチューニングとしてパラメータの調整と物理的な配置の調整をするチャンスが1回だけあります。 DBサーバのCPUは2つで、ディスクはRAID1でEドライブのみ使用して、I/Oの分散はできません。インデックスは検索・結合列にすべて張っています。 特に気になるのは表Aの列が80列あり、2000文字格納する列も複数あって、列が長いです。DB_BLOCK_SIZEは8Kですがなんとか1ブロックに1レコードは収まっています。 このようなクセのある検索に効果のあるチューニングはありますでしょうか?

  • Oracleから見たOracleの優位性(SQLServerとの比較)

    OracleとSQLServerを比較したとき、Oracleが優れている点ってどんなところだと思いますか? また開発でOracleとSQLServerどちらかを提案するとき、どういった切り分けで2つを使い分けますか? 私が思うOracleの優位性は ・行ロックが確実 ・RowIDの存在 ・データが大容量でも比較的早い ・細かくチューニングができる です。 またOracleかSQLServerかのどちらかの選択で、私が自由に提案できるとしたら、行ロックがほとんど必要ない&データ件数が数万~数十万程度ならSQLServer、行ロックが頻繁に必要&データ件数が数十万以上ならOracleを提案します。 ちなみに私のDBを使った開発歴は、Access1年程度、SQLServer1年程度、Oracle4年程度です。 よろしければ、みなさんのDBを使った開発歴も教えてください。