0

すべての SQL オブジェクトを含む .sqlproj ファイルを作成した場合、mdf ファイルや ldf ファイルを VS Team Services ソース リポジトリに配置する必要があるのはなぜですか? .mdf にすべてのデータが含まれていませんか? それが本当なら、おそらくすべてのデータをリポジトリに保存したくないでしょうか? データベースを再作成する必要がある場合は、いつでもデータベースを localdb に公開できますか? ここでのベストプラクティスは何ですか?

4

1 に答える 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 に答える