2016-08-16 28 views
1

私はデータベースを使用するプロジェクトに取り組んでおり、私はそれをユニットテストしています。現在、テストではデータベースが.mdfというファイルとして作成され、使用されています。.mdfファイルを上書きする方法

私がやりたかったのは、この.mdfのコピーを別の場所に作成することです。そして、各テストの前に元の.mdfファイルを置き換えてください。問題は、そうしようとすると、ファイルが別のプロセスで使用されているということです。私はプロセスがsqlservr.exeであることを知りました。

私の質問は:私はそれを置き換えることができるようにファイルを使用してサーバーを停止する方法はありますか?私はSQL Serverのバックアップと復元のオプションを試してみましたが、処理速度が遅すぎるために十分ではありません。

ご協力いただければ幸いです。

UPDATE:問題の

オクラホマので、もう少し情報。基本的には、単体テストのパフォーマンスを向上させることに取り組んでいます。ほとんどのテストではデータベースへの接続が必要なので、.mdfファイルにLocalDbがあります。このファイルはTestFixtureSetupの間に作成されます。次に、各テスト(SetUp中)の前に、データベースはSQLコマンドで消去されます。それは、各テストのために新しいデータベースを再作成する最も効率的な方法ではないようです。そこで、私は今のところ2つの異なる方法を試しました。

  1. SQL BACKUPとRESTOREコマンドを使用してください。これは動作しますが、テストの実行時間が長くなります。
  2. sqlservr.exeプロセスを終了し、ファイルをローカルにコピーしてからsqlservr.exeを再起動します。これも機能しますが、実行時間も長くなります。

基本的に、完全に空のデータベースを再作成するパフォーマンスを改善する方法についての提案を探しています。

+0

サービス、コピーを停止し、再度起動? –

+0

https://msdn.microsoft.com/en-AU/library/ms187858.aspxデタッチが動作する可能性がある –

答えて

2
  • あなたがサービスを.MDFファイルをコピーし、サービスを停止し、再起動することができ

  • あなたはまた、それをコピーし、データベースをデタッチし、再度

  • それを再接続することができますがすることもできますバックアップデータベース

更新:

SQL Server BrowserまたはSQL Serverエージェントのインスタンスを開始、停止、一時停止、再開、または再起動する。

上記の手順に従ってSQL Server Configuration Managerを起動します。 [ユーザーアカウント制御]ダイアログボックスが表示されたら、[はい]をクリックします。

SQL Server構成マネージャーの左ペインで、[SQL Serverサービス]をクリックします。名前付きインスタンスの結果ペイン、右クリックSQL Serverブラウザー、SQL Serverエージェント(MSSQLServer)、またはSQL Serverエージェント()で

次にスタート、停止、一時停止、再開、または再起動]をクリックします。

[OK]をクリックしてSQL Server構成マネージャを閉じます。

更新:

See This Pic

+0

このバックアップをより速く行う方法はありますか?私はプロセスを強制終了し、ファイルをコピーしてからプロセスを再開しようとしましたが、実際には以前よりも時間がかかります。 – SalysBruoga

+0

私はimgsで自分の答えを更新します。 –

+0

ポップアップメニューの@vstrimaitisをクリックして "Stop" –

関連する問題