中継:第3回 Oracle勉強会 パフォーマンスチューニング@アクアシステムズ

データベース友の会、株式会社アクアシステムズ共催のOracleチューニングについての勉強会の模様です。
1
アクアシステムズ @aqua_systems

アドレスを間違えてました。再掲載です。 DB友の会共催「Oracle勉強会 パフォーマンスチューニング」を1/22(土)に開催。 http://www.aqua-systems.co.jp/seminar.php?eid=00099

2011-01-13 08:36:23
アクアシステムズ @aqua_systems

明日は、データベース友の会のOracle勉強会「パフォーマンスチューニング」です。会場セッティングは終了しました。(講演資料はまだ準備中のようですが...)

2011-01-21 18:22:08
アクアシステムズ @aqua_systems

Oracle勉強会「パフォーマンスチューニング」始まりました。時々状況を配信していきます。

2011-01-22 13:00:47
アクアシステムズ @aqua_systems

さぁ、パフォチューを始めよう! 始まりました。参加された方は、これからDBチューニングをやりたい、勉強したい、という方が多いようです。 #aquadbsemi

2011-01-22 13:12:41
アクアシステムズ @aqua_systems

ディスク、CPU、メモリなど性能が向上し、インメモリDB等の新しい技術が出てきた中で、これからもパフォチーは必要か? #aquadbsemi

2011-01-22 13:14:35
アクアシステムズ @aqua_systems

まだまだDBの性能に関しては厳しい状況が続く。まだまだDBAのやることはあり。チャンスは続く。 #aquadbsemi

2011-01-22 13:17:34
アクアシステムズ @aqua_systems

なぜ、チューニングが難しいのか。一筋縄ではいかない、手順が面倒、完了目標がはっきのしない、なかなか練習できない、テスト環境で再現しなかったりする、突然発生し再発する... #aquadbsemi

2011-01-22 13:19:38
アクアシステムズ @aqua_systems

あと、本番にはなかなか適用できなかったりするのでは? というコメント。 #aquadbsemi

2011-01-22 13:20:08
アクアシステムズ @aqua_systems

今日まさにこの時間、Oracle社でOEMを使ったチューニングハンズオンをしているそうです。こちらにご参加いただき、ありがとうございます! #aquadbsemi

2011-01-22 13:26:38
アクアシステムズ @aqua_systems

パラメータ設定をいじったり、だけでは解決しない、やっぱり、SQL! #aquadbsemi

2011-01-22 13:27:29
アクアシステムズ @aqua_systems

どうしようもなくなったら、ルールベースヒントをつける、なんてしてたそう。講師の個人的な経験からのネタでした。10g以降はコストベースなんで...でも、結構そういう話を聞きましたね、かなり前ですけど。 #aquadbsemi

2011-01-22 13:37:40
アクアシステムズ @aqua_systems

バインドピークの話。Oracle 11gからの対策、adapted cursor sharing。 #aquadbsemi

2011-01-22 13:44:45
アクアシステムズ @aqua_systems

性能の問題が発生するのは総合テスト、それではコスト(時間と労力)がかかってしまう。対策するには、SQLコーディング規約、総合テストの前からSQLを見直し... そして、データモデルも重要かな?→同意です!  #aquadbsemi

2011-01-22 13:55:04
アクアシステムズ @aqua_systems

第一セッション終了。Oracle 勉強会 パフォーマンスチューニング http://www.aqua-systems.co.jp/seminar.php?eid=00099 #aquadbsemi

2011-01-22 14:02:32
アクアシステムズ @aqua_systems

次のセッション、Oracleパフォーマンスチューニングテクニック、始まります。講師は、アクアシステムズ Technology Division マネージャーです。 #aquadbsemi

2011-01-22 14:10:59
アクアシステムズ @aqua_systems

アクアシステムズは、創業以来13年、Oracleのチューニングをやっています。チューニングの手法は色々変わってきたと感じます。 #aquadbsemi

2011-01-22 14:12:49
アクアシステムズ @aqua_systems

性能劣化の原因で、5~6年前は、パラメータ、物理配置の問題が多かったのですが、最近はそういうことはほとんどないです。今は10%位でしょうか。今はほぼSQL。 #aquadbsemi

2011-01-22 14:14:12
アクアシステムズ @aqua_systems

インフラで性能問題は起きにくくなった。HWの高速化、(Oracleの)メモリの自動管理がかなり使えるようになった、Oracleインストーラの改善、といったのがその理由。 #aquadbsemi

2011-01-22 14:15:49
アクアシステムズ @aqua_systems

さらに、インフラ層のチューニングアイテムも減少。ストレージの仮想化。Oracle ASM、ディスクの仮想化... #aquadbsemi

2011-01-22 14:22:18
アクアシステムズ @aqua_systems

SQLチューニングは重要だが、難しい。SQLは問い合わせ言語。主流言語、手続き型言語は、ソースを見て改修、単体で解決できるが、SQLだと、その実行をどのように行うかは、Oracleが行う。その手順を帰ることはできない。 #aquadbsemi

2011-01-22 14:26:02
アクアシステムズ @aqua_systems

オフプティマイザが最適な実行計画をとるようSQLをチューニング、インデックスの設定、についてこれから具体的に紹介。 #aquadbsemi

2011-01-22 14:28:47
アクアシステムズ @aqua_systems

まず「型変換」について。暗黙的変換を極力避ける。文字列に対する条件値に数値を入れると、暗黙的に(Oracleで自動的に)文字列側を数値に変換するため、列内すべてにアクセスした変換する。コストが大。 #aquadbsemi

2011-01-22 14:32:22
アクアシステムズ @aqua_systems

「バインド変数」を利用する。リテラルを使うと毎回SQL解析、ハードパースがされ、その分コストがかかる。 #aquadbsemi

2011-01-22 14:34:18
アクアシステムズ @aqua_systems

「バルク処理」主にバッチ処理で大量データを扱う時に利用される。plsqlにて、バインド値の代わりに配列を用意して、一括処理。 #aquadbsemi

2011-01-22 14:37:05