Azure 仮想マシン上の SQL Serverのパフォーマンスを改善するためにTEMPDBを D ドライブに移動する

http://social.technet.microsoft.com/wiki/contents/articles/16088.azure-sql-iaastempdb-ja-jp.aspx

Azure仮想マシンでは、Dドライブが物理マシンのローカルストレージに割り当てられていてBLOBからやってくるドライブよりも高速ということになっている。SQL Server においては tempdb が暗黙的に多く利用されており、tempdb をD:ドライブに割り当てると効率的。

ただし、「一時ドライブ」との名称の通り、再起動時に消えることがある。具体的にはマシンのサイズを変更するとほとんどの場合空になる。
tempdb ファイルは自動的に再作成されるのだが、作成先のフォルダまでは自動作成してくれない。またD:\直下に置くという選択肢もあるが、この場合は SQL Server のサービスに管理者に近い高い権限を付与しなければならず、できれば避けたい。

今回はバッチファイルを作成し、タスクスケジューラを利用してOS起動時に実行するようにして対応した。(PowerShell に慣れねば…)

 

C:\mkdirtempdb.cmd の内容

  mkdir D:\MSSQL\MSSQL10_50.MSSQLSERVER\MSSQL\Data
  icacls D:\ /restore C:\icaclstempdb.txt
  sc start mssqlserver

C:\icaclstempdb.txt の内容

  MSSQL
  D:(A;;FA;;;BA)(A;OICIID;FA;;;BA)(A;OICIID;FA;;;SY)(A;OICIIOID;GA;;;CO)(A;OICIID;0x1200a9;;;BU)(A;CIID;LC;;;BU)(A;CIID;DC;;;BU)
  MSSQL\MSSQL10_50.MSSQLSERVER
  D:(A;;FA;;;BA)(A;OICIID;FA;;;BA)(A;OICIID;FA;;;SY)(A;OICIIOID;GA;;;CO)(A;OICIID;0x1200a9;;;BU)(A;CIID;LC;;;BU)(A;CIID;DC;;;BU)
  MSSQL\MSSQL10_50.MSSQLSERVER\MSSQL
  D:(A;;FA;;;BA)(A;OICIID;FA;;;BA)(A;OICIID;FA;;;SY)(A;OICIIOID;GA;;;CO)(A;OICIID;0x1200a9;;;BU)(A;CIID;LC;;;BU)(A;CIID;DC;;;BU)
  MSSQL\MSSQL10_50.MSSQLSERVER\MSSQL\Data
  D:(A;;FA;;;BA)(A;OICIID;FA;;;BA)(A;OICIID;FA;;;SY)(A;OICIIOID;GA;;;CO)(A;OICIID;0x1200a9;;;BU)(A;CIID;LC;;;BU)(A;CIID;DC;;;BU)

 

# Windows 8 の WordPressアプリから投稿してみた

コメントを残す