1 / 14

SQL チューニング

SQL チューニング. パフォーマンスを考慮した SQL 2009.03.02   まつけん. アジェンダ. データベースのおさらい SQL について SQL のチューニング. データベースのおさらい. データベースを使うシステムは、大きく 2 つに分類されます。 ・ OLTP ( オンライントランザクション処理) WEB アプリケーションのような、処理結果を即時に表示するような     システム   ・ DWH ( データウェアハウス ) 半年間の売り上げ上位の商品は?といった集計するためのシステム. データを更新、登録するための言語

Download Presentation

SQL チューニング

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SQLチューニング パフォーマンスを考慮したSQL 2009.03.02  まつけん

  2. アジェンダ データベースのおさらい SQLについて SQLのチューニング

  3. データベースのおさらい データベースを使うシステムは、大きく2つに分類されます。 ・OLTP(オンライントランザクション処理) WEBアプリケーションのような、処理結果を即時に表示するような     システム   ・DWH(データウェアハウス) 半年間の売り上げ上位の商品は?といった集計するためのシステム

  4. データを更新、登録するための言語 標準規格:SQL2003 分類すると以下のパターンに分かれる SQLについて 概要 QUERY :データ抽出 (SELECT) DML   :データ操作 (INSERT, UPDATE, DELETE) DDL :データ定義 (CREATE , TRUNCATE)

  5. SQLについて 実行イメージ データベース SQL オプティマイザ ①解析フェーズ 実行計画 ②実行フェーズ 結果セット テーブル ③フェッチフェーズ

  6. SQLのチューニング SQLの実行回数を減らす INDEX検索する FULL検索を速くする ポイント

  7. SQLのチューニング 省略できるものは省略しましょう。 SQLの実行回数を減らす 例)修正前 SELECT COUNT(*) IF(あったら)  UPDATE ELSE(なかったら) INSERT 修正後 TRY  INSERT EXCEPTION(重複エラー) UPDATE

  8. SQLのチューニング INDEXのイメージ(B-Tree INDEX) INDEX検索する 2 5 1 2 3 4 5 6 1

  9. SQLのチューニング メリット ①全体の1割 ~ 2割のデータを抽出する場合に高いパフォーマンスが得られる。 INDEX検索する

  10. SQLのチューニング デメリット ①DMLのパフォーマンスが劣化する。 → INDEXがない場合と比較すると、3倍~4倍時間がかかることも。 ②定期的な縮小が必要になる。 → 定期的にメンテナンスしないと、サイズが肥大化する。   ③抽出対象件数が多くなると、逆に遅くなる。 INDEX検索する

  11. SQLのチューニング FULL検索とは? FULL検索を速くする テーブルの先頭レコードから、最後(HWM)まで検索する方法 HDDの格納領域 テーブル HWM (ハイウォータマーク)

  12. SQLのチューニング ポイント FULL検索を速くする ①テーブルをきちんと正規化する。 ②巨大なテーブル(履歴テーブル等)は、月度等でテーブルを分けてしまう。(参照は結合VIEW等で行う) ③定期的にテーブルをTruncateする。 ④抽出に必要なキー項目のみをあらかじめ専用テーブルに退避し、それを基に検索する。

  13. 最後に INDEXは、万能ではない。 FULL検索を恐れない、嫌わない。 きちんとテーブルは正規化する。 DELETEは、ごみ箱に捨てているだけ。 実サイズは縮小しない事を忘れない。 SQLチューニングの心得

  14. ご静聴、ありがとうございました。

More Related