最近のハードウェアはディスク性能が向上して、ディスク I/O がネックになることも少なくなってきたかと思います。
ディスクが高速になることで大量のデータを短時間で読み取れるようになりましたが、その分負荷が CPU に表れてくることになったかと。
簡単にではありますがこの辺のデータをとってみたいと思います。
SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿
最近のハードウェアはディスク性能が向上して、ディスク I/O がネックになることも少なくなってきたかと思います。
ディスクが高速になることで大量のデータを短時間で読み取れるようになりましたが、その分負荷が CPU に表れてくることになったかと。
簡単にではありますがこの辺のデータをとってみたいと思います。
最近、実行プランを見ていて気づいたのですが、SQL Server 2012 以降では実行プランに [NonParallelPlanReason] という情報が増えていたようです。
詳細については、SQL Server 2012 Execution Plan’s NonParallelPlanReason が参考になります。
PowerShell から SQL Server に SQL を実行する場合、データベース エンジン PowerShell を使用することがあるかと思います。
ほかにも System.Data.SqlClient を使用した方法 (Windows PowerShell: Windows PowerShell からデータベースにアクセスする) や、SQLSMO を使用した方法 (Using PowerShell with SQL Server Management Objects (SMO)) もあります。
今回は、データベースエンジン PowerShell の Invoke-Sqlcmd を sqlcmd.exe に置き換えた際のメモを。
以下の情報を参考にさせていただいています。
SQL2005のSQLCMDオプションについて質問
Passing varibles with special characters and or embedded spaces in powershell 2.0 with SQL Server
How to stop the “Changed database context to …” message
PowerShell や SQLSMO を使用したスクリプトを作成すればよいと思うのですが古い環境などでもどうさせる必要があったので、SQLCMD で実行する方法を。
とはいってもバッチ用実行用のコマンドラインを生成しているだけですが。
以前、SQL Server 2014 のデータベースのファイルを BLOB に配置する構成について という投稿をしました。
この投稿ではデータベースを作成するパターンで記載したのですが、BLOB ストレージへの配置はデータベースのデタッチ/アタッチ方式でも使用することができます。
今回の投稿ではこの方法をまとめてみたいと思います。
技術情報については レッスン 6: 内部設置型のソース コンピューターから Windows Azure のターゲット コンピューターにデータベースを移行する が参考になります。
SQL Server 2014 では管理対象バックアップ (マネージバックアップ) という機能が追加されています。
SQL Server 2012 SP1 CU2 以降では、BLOB ストレージへバックアップを取得することが可能となりました。
SQL Server 2014 ではこの機能が強化され、GUI やメンテナンスプランから設定が可能となりましたが、それに加えて管理対象バックアップという機能が追加されました。
# 以前は Smart Admin Backup といわれていたような。
SQL Server の待ち事象は sys.dm_os_wait_stats / sys.dm_os_latch_stats というような動的管理ビューを利用して確認することができます。
パフォーマンスモニターの SQL Server: Wait Statistics からも確認をすることができますが、こちらは一部の項目しか取得することができません。
一時テーブルや PowerShell 等を使用すれば定期的に DMV の情報を出力するということもできますが、環境に依存せずに SSMS だけで実行するための方法をまとめてみたいと思います。
案件として、SQL Server の診断を実施させていただくことがあるのですが、その際にはパフォーマンスモニターの情報を取得して解析することがあります。
詳細については DELL (もともとは Quest の資料) が公開している SQL Server Perfmon Counters Poster が参考になりますが、私が取得している情報をメモとして。
PowerShell で SQL Server がバックアップ/リストア中かを取得するサンプルです。
サービスやサーバーの停止をする際に処理が実行されているかを判断するのに使えるかなと思います。
SQL Server 2014 ではデータベースのファイルを Microsoft Azure の BLOB ストレージに配置することができるようになりました。
以前、[SQL Server 2014 CTP2]Azure 連携の強化 という投稿で少し触れたのですが、RTM 版でまとめてみたいと思います。
技術情報としては Windows Azure 内の SQL Server データ ファイル になるかと。