sql チューニング

14
SQL チチチチチチ チチチチチチチチチチチチ SQL 2009.03.02 チチチチ

Upload: inga-summers

Post on 01-Jan-2016

34 views

Category:

Documents


0 download

DESCRIPTION

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

TRANSCRIPT

Page 1: SQL チューニング

SQL チューニング

パフォーマンスを考慮した SQL

2009.03.02  まつけん

Page 2: SQL チューニング

アジェンダ

データベースのおさらいSQL についてSQL のチューニング

Page 3: SQL チューニング

データベースのおさらい

データベースを使うシステムは、大きく 2 つに分類されます。

  ・ OLTP (オンライントランザクション処理)    WEBアプリケーションのような、処理結果を即時に表示するよう

な    システム

  ・ DWH (データウェアハウス)   半年間の売り上げ上位の商品は?といった集計するためのシステム

Page 4: SQL チューニング

データを更新、登録するための言語標準規格: SQL2003分類すると以下のパターンに分かれる

概要

SQL について

QUERY :データ抽出 ( SELECT )DML :データ操作 ( INSERT, UPDATE,

DELETE)

DDL :データ定義 ( CREATE , TRUNCATE)

Page 5: SQL チューニング

SQL について

データベース

オプティマイザ

SQL

実行計画

テーブル

結果セット

①解析フェーズ

②実行フェーズ

③フェッチフェーズ

実行イメージ

Page 6: SQL チューニング

SQL のチューニング

ポイント

SQL の実行回数を減らすINDEX 検索するFULL 検索を速くする

Page 7: SQL チューニング

SQL のチューニング

SQL の実行回数を減らす

省略できるものは省略しましょう。

例)修正前SELECT COUNT(*)

IF( あったら) UPDATEELSE( なかったら ) INSERT

修正後TRY INSERTEXCEPTION( 重複エラー ) UPDATE

Page 8: SQL チューニング

SQL のチューニング

INDEX 検索するINDEX のイメージ( B-Tree INDEX )

1 2 3 4

2

5 6

5

1

Page 9: SQL チューニング

SQL のチューニング

INDEX 検索するメリット

① 全体の 1 割 ~ 2 割のデータを抽出する場合に高いパフォーマンスが得られる。

Page 10: SQL チューニング

SQL のチューニング

INDEX 検索するデメリット  ① DML のパフォーマンスが劣化する。    → INDEXがない場合と比較すると、 3 倍~ 4 倍時間がかかることも。

② 定期的な縮小が必要になる。    → 定期的にメンテナンスしないと、サイズが肥大化する。

  ③抽出対象件数が多くなると、逆に遅くなる。

Page 11: SQL チューニング

SQL のチューニング

FULL 検索を速くするFULL 検索とは?

テーブルの先頭レコードから、最後( HWM)まで検索する方法

HWM(ハイウォータマーク)

テーブル HDD の格納領域

Page 12: SQL チューニング

SQL のチューニング

FULL 検索を速くするポイント

①テーブルをきちんと正規化する。② 巨大なテーブル(履歴テーブル等)は、月度等で

テーブルを分けてしまう。(参照は結合 VIEW 等で行う)

③ 定期的にテーブルを Truncate する。④ 抽出に必要なキー項目のみをあらかじめ専用テーブ

ルに退避し、それを基に検索する。

Page 13: SQL チューニング

最後に

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

Page 14: SQL チューニング

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