SQLServerのスクリプト実行するならSSMSよりもsqlcmdの方が高速だった。


概要

SQLServerをメンテナンスするのに、SSMS(SQL Server Management Studio)を使うのが、定番だと思います。
ですが、本番DBからデータをスクリプト化して、デバックDBへ移して、という作業がデータ量の増加に従って徐々に辛くなってきました。
SSMSは、スクリプトのデバック機能を持っているので、実行が遅いしメモリを喰うのでしょう。
スクリプトを分割するなど騙し騙し作業していたのですが、sqlcmdを使えば、簡単に回避できました。

sqlcmdとは

sqlcmdは、SQLServerをコマンドラインから操作するユーティリティです。
たぶん、SSMSをインストールすると使えるようになります。

スクリプト投入例

SSMSでは、メモリオーバーになってしまう量のスクリプトを実行したい場合には、下記のようにパラメーターを指定して実行します。
認証などが必要な場合には、別途パラメーターを追加してください。

sqlcmd -S SERVERNAME -d SQLDBNAME -i C:\Users\user\Documents\data_20190304.sql

SSMSに比べて、スクリプトの分割の必要も無く、実行速度も速いです。