Comments
Description
Transcript
SQL パフォーマンスチューニング - AG-TECH
SQL パフォーマンス チューニング 〜 パフォーマンス改善 最初の⼀歩 〜 1 概要 パフォーマンスに関する悩み デモ シナリオ 1: インデックスの設定 シナリオ 2: 統計情報の更新 シナリオ 3: 断⽚化の解消 まとめ 2 パフォーマンスに関する悩み 開発においてパフォーマンスが向上しない → 適切なインデックスの設定 運⽤においてパフォーマンスが低下してきた → 統計情報の更新 → 断⽚化の解消 3 デモ シナリオの流れ Management Studio からクエリを実⾏ 下記オプションを使⽤して実⾏時の情報を確認 SET STATISTICS IO SET STATISTICS PROFILE SET STATISTICS TIME 対処を実施 4 シナリオ 1: インデックスの設定 クラスタ化インデックス未設定 (ヒープ) Table Scan 読み取りページ数 : 多い データページ クラスタ化インデックスの設定 Clustered Index Seek 読み取りページ数 : 少ない リーフノード 5 シナリオ 1: インデックスの設定 1. クエリを実⾏ 2. 実⾏プランを確認 3. インデックスを設定 4. クエリを実⾏して効果を確認 6 シナリオ 2: 統計情報の更新 古い統計情報 統計情報更新 Clustered Index Seek 読み取りページ数 : 多い Clustered Index Scan 読み取りページ数 : 少ない 7 シナリオ 2: 統計情報の更新 1. 統計情報の⾃動更新を OFF にしてデータ挿⼊ 2. クエリを実⾏ 3. 統計情報を確認 4. 統計情報を更新 5. クエリを実⾏して効果を確認 8 シナリオ 3: 断⽚化の解消 断⽚化 Clustered Index Scan 読み取りページ数 : 多い 断⽚化解消 Clustered Index Scan 読み取りページ数 : 少ない 9 シナリオ 3: 断⽚化の解消 1. 断⽚化を作成 2. クエリを実⾏ 3. 断⽚化情報を確認 4. 対処策としてインデックスの再構築 5. クエリを実⾏して効果を確認 10 まとめ インデックスの設定 create clustered index データベース エンジン チューニング アドバイザ 統計情報の更新 update statistics 断⽚化の解消 alter index reorganize alter index rebuild 11 参考情報 パフォーマンスの監視およびチューニングの概要 http://msdn.microsoft.com/ja-jp/library/ms189303.aspx データベース エンジン チューニング アドバイザの使⽤ http://msdn.microsoft.com/ja-jp/library/bb500296.aspx クエリのパフォーマンスを向上させるための統計の使⽤ http://msdn.microsoft.com/ja-jp/library/ms190397.aspx インデックスの再編成と再構築 http://msdn.microsoft.com/ja-jp/library/ms189858.aspx 12 13