SQL Server は内部で SQL Server 独自のスケジューラーとして SQLOS (または User Mode Scheduler) が起動しています。
通常、SQLOS のスケジューラーは各コアに対して起動しており、4 コア CPU の場合は以下のようになります。
# sys.dm_os_schedulers から取得可能です。
VISIBLE ONLINE となっているのがユーザーセッションで使用可能なスケジューラーとなり、この環境では 0 ~ 3 までの 4 個のスケジューラーを使用することが可能です。
# (DAC) となっているのは専用管理者接続用なので数に含めていません。
スケジューラーが複数あるということは複数コアが SQL Server に割り当てられているので、複雑な処理のクエリを実行する際に複数の CPU を使用した並列クエリ (Pararell Query) が使用できるようになります。
裏ワザで特殊なスタートアップオプションを使うと物理コア数以上のスケジューラーを起動することができたりもします。
# 下の画像は 1 コアの CPU の環境で 16 個のスケジューラーを起動した例になります。
SQL Server からは有効な CPU として認識しているので、1 CPU 環境でも並列クエリが実行できたりします。
このあたりが SQL Azure ではどのようになっているかを確認してみようというのが今回のお話です。
Read the rest of this entry »
Archive for 6月 6th, 2011
SQL Azure のスケジューラー数と並列クエリについて
2008 以降のクラスターのクライアント アクセス ポイント作成時のちょっとした注意点
Windows Server 2008 以降のクラスターではクライアントアクセスポイント (CAP) で作成されるネットワーク名は Kerberos 認証が有効になっているため Active Directory 上に仮想コンピューターオブジェクト (VCO) としてコンピューターアカウントが作成されます。
# Windows Server 2003 はデフォルトの設定では Kerberos 認証が無効な状態だったので、ネットワーク名のリソースを作成してもコンピューターアカウントは作成されていませんでした。
SQL Server 2008 以降をクラスターインスタンスとしてインストールした場合もコンピューターアカウントが作成されたりするのですが。
# Windows Server 2003 のクラスター上に SQL Server のクラスターインスタンスをインストールした場合も作成されます。
クライアントアクセスポイントを作成する際にちょっとした注意点があるのでまとめてみたいと思います。