すべての SQL オブジェクトを含む .sqlproj ファイルを作成した場合、mdf ファイルや ldf ファイルを VS Team Services ソース リポジトリに配置する必要があるのはなぜですか? .mdf にすべてのデータが含まれていませんか? それが本当なら、おそらくすべてのデータをリポジトリに保存したくないでしょうか? データベースを再作成する必要がある場合は、いつでもデータベースを localdb に公開できますか? ここでのベストプラクティスは何ですか?
1 に答える
0
実際の .MDF および .LDF ファイルをソース管理することはありません。それらには実際のデータが含まれています。
ただし、ディスク上のどこに.MDF および .LDF ファイルが存在するかを制御することが望ましい場合があります。このような場合、MDF/LDF ファイルの場所を定義する FileGroup ファイルを .sqlproj ファイルに含めることが理にかなっている場合があります。
たとえば、データを保存する大容量の D: ドライブと、インデックスを保存する SSD で構成された高速な E: ドライブがあるとします。.sqlproj ストレージ フォルダーから、次のことができます。
- [新しい項目を追加] > [ファイル グループ] を選択し、データという名前のファイル グループを作成します。
- [新しい項目を追加] > [FileGroup] をクリックし、Index という名前のファイル グループを作成します。
- [新しいアイテムを追加] > [ファイル グループ ファイル] を選択し、$(DatabaseName).Data.ldf という名前のファイルを作成します。
- [新しい項目を追加] > [ファイル グループ ファイル] を選択し、$(DatabaseName).Indexes.ldf という名前のファイルを作成します。
次に、テーブルを変更して、次のように ON {FileGroup} 句を含めることができます。
CREATE TABLE [dbo].[MyTable] (
MyTableID INT IDENTITY(1,1) NOT NULL,
OtherIndexField NVARCHAR(50) NULL,
...
CONSTRAINT [PK_MyTable] PRIMARY KEY CLUSTERED ([MyTableID] ASC)
) ON [Data];
CREATE NONCLUSTERED INDEX [IX_MyTableByOtherIndexField]
ON [dbo].[MyTable]([OtherIndexField] ASC)
ON [Index];
于 2014-07-27T14:36:11.930 に答える