SAP システムにおける SQL Server 運用ノウハウ マイクロソフト株式会社 SAP/Microsoft コンピテンスセンター Agenda • • • • • 統計情報の保守 インデックスの保守 ストアドプロシージャの保守 整合性チェックの実行 ブロッキング・デッドロック 1.統計情報 • データの分布状況を示します • クエリ実行にあたってのアクセスパス選択に 大きく影響します • データの変更が重なるに従い、統計情報は 最新ではなくなり、クエリ実行にあたっての オプティマイザの判断が最適でなくなります 統計情報の保守 • 統計情報自動更新のオプションについては、 通常以下の設定を推奨しています – master: OFF – msdb, tempdb, <SID> : ON • 但し VBHDR, VBDATA, VBMOD テーブルは OFF (SAP Note 327494) 統計情報の保守 • 統計情報の自動更新が起動するタイミングは、 以下の通りです(Microsoft KB 195565) – タイミングを事前に知る方法も記載してあります テーブル種別 自動更新が起動する為の テーブルへの変更回数 6行未満の 一時テーブル 6回 6行以上、 500行未満 500回 500行以上 (500+行数の20%)回 統計情報の保守 • 安定したパフォーマンスを得る為に、統計情報の 手動での更新も行なって下さい – 大量データの変更後に必ず実行するのが理想的です – もしくは1週~1ヶ月に1回定期的に更新するよう、通常の SAP のお客様に対してガイドしております – デフォルトでは SQL Server が適切なサンプリング割合を 判断します • より正確な統計情報を得てパフォーマンス問題を 解決するには、サンプリング割合を指定して下さい – 更新時間は長くなりますが Fullscan(100%)が堅いです 2.インデックス • SQL Server ベースの SAP システムには、 クラスタ化インデックスが必ず構成されています • 非クラスタ化インデックスは、セカンダリインデックス として構成されています • 追加・削除が重なる度に断片化が進行していきます クラスタ化インデックス セカンダリとしての非クラスタ化インデックス インデックスの保守 • インデックス再構築に先立って、その必要性 を判断する為に、”DBCC SHOWCONTIG” を実行して、インデックスの断片化の状況を 分析して下さい – “fast” オプションという簡易オプションを利用 すれば、この作業をすばやく済ませる事が できます インデックスの保守 • スキャン密度が低い or フラグメンテーション が大きい or ページ数が大きい or アプリケーションの使用頻度が高いテーブル (下記基準参照)に対して、 “DBCC INDEXDEFRAG”を実行して下さい – システムを停止する必要はありません – 基準(例) • 論理スキャンフラグメンテーションが15%以上かつ、 スキャンされたページ数が100ページ以上 インデックスの保守 • この“SHOWCONTIG” チェックを省略して、 全てのインデックスを(例えば)1~2週間に わたって毎日分割して実行していくような 運用も、考慮に値します – オンラインで再編成出来るからこそ可能な運用 3.ストアドプロシージャ • SQL Server ベースの SAP システムにおいて、 クエリはストアドプロシージャとしてデータベース上 に展開されます • このストアドプロシージャは、その初回実行時に 最適な実行プランを決定し、その後リコンパイル されるまで、同じ実行プランを利用し続けます – SAP on SQL Server パフォーマンス上のアドバンテージ – ただし、この事が逆にパフォーマンスを不安定に するケースもごく稀に存在しますので注意して下さい (SAP Note 159171) ストアドプロシージャの保守 • ストアドプロシージャのパフォーマンスに問題があり、 適切な実行プランが利用されていない事に原因が ある場合、下記の解決策を検討して下さい – ストアドプロシージャの実行時間が閾値を超えた場合に、 自動リコンパイルして再実行するようパラメータを設定 (Note 159171) – カーネル 4.6A 以降の場合、ABAP の中に SQL Server 向けのオプティマイザヒントを付加 (Note 159171) – カーネル 6.20 以降の場合、クエリを毎回最適化する ようパラメータを設定 (Note 28667) 4.整合性チェック • チェック対象 – – – – – インデックスとデータページのリンクが正しい事 インデックスが適切な並べ替え順に並んでいる事 ポインタに一貫性がある事 各ページ上のデータが適切である事 ページオフセットが適切である事 • SQL Server 7.0 より、定期的な整合性チェックは 必須ではなく、あくまで本番業務に影響を及ぼさない 範囲内で行うべき作業です 整合性チェックの実行 • SQL Server の特定のエラーメッセージ (SAP Note 142731参照)が表示された場合、デー タベースが破損している可能性があるので、 整合性チェックを実行して下さい – 「大半の場合、破損はハードウエアの問題により発生しま す。」(SAP Note 142731) – 必要に応じて “PHYSICAL_ONLY” オプションを指定して、 ハードウエアが原因のエラーであるか否かを、手早く 調査して下さい • 完全なチェックではなく、ページとレコードヘッダーの物理構造に 絞ったチェックです 5.ブロッキング・デッドロック • データベースエラー 1205(デッドロック)の 監視、問題解決にあたっては、SAP Note 565710 の記載に従って下さい – 全て運用で解決可能です
© Copyright 2024 ExpyDoc