SQL Server では、affinity mask オプションまたは、PROCESS AFFINITY を使用して、ハードウェアスレッドの関連付けを変更することができます。
今回の投稿ではこの設定がどのように動作に影響するのかを確認してみたいと思います。
実際の環境だとデフォルトの設定のまま変更することは少ないと思いますが。
SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿
SQL Server では、affinity mask オプションまたは、PROCESS AFFINITY を使用して、ハードウェアスレッドの関連付けを変更することができます。
今回の投稿ではこの設定がどのように動作に影響するのかを確認してみたいと思います。
実際の環境だとデフォルトの設定のまま変更することは少ないと思いますが。
2/25 (土) に SQLTO 第4回勉強会 を開催させていただきます。
今回はエディション/BI/会計データ/カラムストアインデックスと広いセッション内容となっております。
BI のセッションに関しましては日本マイクロソフト様のプレミアフィールドエンジニア (PFE) の方にご担当いただけることになりましたので個人的にも期待大です!!
私はSQL Server 2012で初めて実装されるカラムストアインデックス (CSI) の基本についてお話させていただく予定です。
今回は LT の募集も行っておりますので、お話しいただける方がいらっしゃいましたらぜひぜひお願いいたします。
SQL Server のサポートチームのブログに DO’s&DONT’s #1: やらない方がいいこと ? 運用環境で、Profiler GUI を使用してトレースする という記事が公開されています。
この記事の中に
多数のクライアント接続があり、多数のリクエストを受け付けている SQL Server が生成するすべてのイベントをひとつの Profiler で受け取ることになるため、Profiler がボトルネックとなり、SQL Server 全体のパフォーマンスが著しく悪化し、実行中のクエリがタイムアウトする、ログインがタイムアウトする、場合によっては、クラスタやミラーリングのフェールオーバなどを招くこともあります。Profiler GUI は、ひとつの普通のクライアント接続を通じて、SQL Server からトレースイベントを受け取ります。当然、その接続で転送できる量は限られており、また、それをグラフィカル表示しなければならないため、SQL Server 側で生成されるイベント量が、Profiler が処理できるイベント量の限界を超える状況になると、SQL Server 側では新たなイベントを Profiler に渡せなくなり、イベントを生成している一般のクライアントは、イベント書き込み待ち状態になります。
という記載があります。
イベント書き込み待ちが発生するということは待ち事象が出ないかなと思ったので少し調べてみました。
先週、技術ひろば.net 2012年1月 勉強会 に参加させていただいた際に某 SQL Azure な方からカラムストアインデックスのバッチモードについてキラーパスを受けましたので調べてみました。
以下の情報が詳しいのですが、英語がたくさんで理解できていないのでひとまず実機ベースで調べてみました。
カラムストアインデックスの勉強も途中で止まってしまっているので再開しないといけないですね~。
列ストア インデックス
SQL Server Columnstore Index FAQ
SQL Server Columnstore Performance Tuning
本投稿は SQL Server 2012 RC0 (Release Candidate) での現象となります。
RTM 版の動作について記載したものではありません。
昨日、SQL Server 2012 RC0 の データベースエンジン チューニング アドバイザ (Database Engine Tuning Advisor : DTA) を起動したところエラーが発生し、DTA を実行することができませんでした。
なんでだろうと思って調べたことを残しておきたいと思います。
# 英語がものすごい苦手なので、Bing Translator さんに翻訳こんにゃくしてもらい、Connect に報告してみました。
SharePoint 2010 のデータベース メンテナンス を読んでいてそういえば、SQL Server 2012 でオンラインインデックス操作の機能強化があったなと思って調べてみました。
SQL Server 2008 R2 と SQL Server 2012 RC0 のパフォーマンスモニタと町事象のカウンタを比較してみました。
# 2012 をベースに比較しています。
SQL Server の AWE オプションについて軽くまとめてみたいと思います。
詳細については以下の記事がとても参考になります。
SQL Server のメモリ管理 – Part 3
SQL Server でストアドプロシージャやパラメータ化クエリを実行する場合、パラメータ スニッフィング (パラメータ傍受) によって、初回に実行された際のパラメータを元に実行プランが作成されます。
MVP Erland氏がSQL Serverのパフォーマンス概念について検討
そのため、初回の実行時に特殊な結果を返すようなパラメータでクエリが実行されると、それが他のパラメータでも効率的な最適化されたプランとならない可能性があるため、RECOMPILE ヒントや OPTMIZE FOR ヒントを使用して非効率なプランで実行されないような対応をすることがあるかと思います。
SQL Server 2008 以降では、OPTMIZE FOR ヒントに UNKNOWN というオプションが追加されています。
今回は SQL Server 2005 SP3 CU9 / SQL Server 2008 SP1 CU7 / SQL Server 2008 R2 CU2 以降で使用できるようになった、トレースフラグ 4136 と合わせてこの動作を見ていきたいと思います。
SQL Server 2012 の可用性グループの状態ですが、ダッシュボードで確認をすることができます。