中継:第3回 Oracle勉強会 パフォーマンスチューニング@アクアシステムズ
アドレスを間違えてました。再掲載です。 DB友の会共催「Oracle勉強会 パフォーマンスチューニング」を1/22(土)に開催。 http://www.aqua-systems.co.jp/seminar.php?eid=00099
2011-01-13 08:36:23明日は、データベース友の会のOracle勉強会「パフォーマンスチューニング」です。会場セッティングは終了しました。(講演資料はまだ準備中のようですが...)
2011-01-21 18:22:08さぁ、パフォチューを始めよう! 始まりました。参加された方は、これからDBチューニングをやりたい、勉強したい、という方が多いようです。 #aquadbsemi
2011-01-22 13:12:41ディスク、CPU、メモリなど性能が向上し、インメモリDB等の新しい技術が出てきた中で、これからもパフォチーは必要か? #aquadbsemi
2011-01-22 13:14:35まだまだDBの性能に関しては厳しい状況が続く。まだまだDBAのやることはあり。チャンスは続く。 #aquadbsemi
2011-01-22 13:17:34なぜ、チューニングが難しいのか。一筋縄ではいかない、手順が面倒、完了目標がはっきのしない、なかなか練習できない、テスト環境で再現しなかったりする、突然発生し再発する... #aquadbsemi
2011-01-22 13:19:38今日まさにこの時間、Oracle社でOEMを使ったチューニングハンズオンをしているそうです。こちらにご参加いただき、ありがとうございます! #aquadbsemi
2011-01-22 13:26:38どうしようもなくなったら、ルールベースヒントをつける、なんてしてたそう。講師の個人的な経験からのネタでした。10g以降はコストベースなんで...でも、結構そういう話を聞きましたね、かなり前ですけど。 #aquadbsemi
2011-01-22 13:37:40バインドピークの話。Oracle 11gからの対策、adapted cursor sharing。 #aquadbsemi
2011-01-22 13:44:45性能の問題が発生するのは総合テスト、それではコスト(時間と労力)がかかってしまう。対策するには、SQLコーディング規約、総合テストの前からSQLを見直し... そして、データモデルも重要かな?→同意です! #aquadbsemi
2011-01-22 13:55:04第一セッション終了。Oracle 勉強会 パフォーマンスチューニング http://www.aqua-systems.co.jp/seminar.php?eid=00099 #aquadbsemi
2011-01-22 14:02:32次のセッション、Oracleパフォーマンスチューニングテクニック、始まります。講師は、アクアシステムズ Technology Division マネージャーです。 #aquadbsemi
2011-01-22 14:10:59アクアシステムズは、創業以来13年、Oracleのチューニングをやっています。チューニングの手法は色々変わってきたと感じます。 #aquadbsemi
2011-01-22 14:12:49性能劣化の原因で、5~6年前は、パラメータ、物理配置の問題が多かったのですが、最近はそういうことはほとんどないです。今は10%位でしょうか。今はほぼSQL。 #aquadbsemi
2011-01-22 14:14:12インフラで性能問題は起きにくくなった。HWの高速化、(Oracleの)メモリの自動管理がかなり使えるようになった、Oracleインストーラの改善、といったのがその理由。 #aquadbsemi
2011-01-22 14:15:49さらに、インフラ層のチューニングアイテムも減少。ストレージの仮想化。Oracle ASM、ディスクの仮想化... #aquadbsemi
2011-01-22 14:22:18SQLチューニングは重要だが、難しい。SQLは問い合わせ言語。主流言語、手続き型言語は、ソースを見て改修、単体で解決できるが、SQLだと、その実行をどのように行うかは、Oracleが行う。その手順を帰ることはできない。 #aquadbsemi
2011-01-22 14:26:02オフプティマイザが最適な実行計画をとるようSQLをチューニング、インデックスの設定、についてこれから具体的に紹介。 #aquadbsemi
2011-01-22 14:28:47まず「型変換」について。暗黙的変換を極力避ける。文字列に対する条件値に数値を入れると、暗黙的に(Oracleで自動的に)文字列側を数値に変換するため、列内すべてにアクセスした変換する。コストが大。 #aquadbsemi
2011-01-22 14:32:22「バインド変数」を利用する。リテラルを使うと毎回SQL解析、ハードパースがされ、その分コストがかかる。 #aquadbsemi
2011-01-22 14:34:18「バルク処理」主にバッチ処理で大量データを扱う時に利用される。plsqlにて、バインド値の代わりに配列を用意して、一括処理。 #aquadbsemi
2011-01-22 14:37:05