.Net Core SDK を使用して CosmosDB でドキュメントを作成する場合、ドキュメント ID の自動生成を無効にするオプションがあります。これにより、開発者はid
プロパティに独自の値を設定でき、設定されていない場合は例外がスローされます。
たとえば、両方のアプローチを次に示します。
public class CosmosExample
{
private readonly IDocumentClient _docClient;
private Uri _collectionUri;
public CosmosExample(IDocumentClient docClient)
{
_docClient = docClient;
_collectionUri = UriFactory.CreateDocumentCollectionUri("MyDatabase", "MyCollection");
}
public async Task CreateWithId(DataModelWithId model)
{
model.id = Guid.NewGuid();
var result = await _docClient.CreateDocumentAsync(_collectionUri, model, disableAutomaticIdGeneration: true);
}
public async Task CreateAutoId(DataModel model)
{
var result = await _docClient.CreateDocumentAsync(_collectionUri, model);
}
}
public class DataModelWithId
{
public Guid id { get; set; }
public string Name { get; set; }
}
public class DataModel
{
public string Name { get; set; }
}
大量のドキュメントを作成するアプリケーションを作成しており、スループットと RU (リクエスト ユニット) コストを最適化したいと考えています。
自動 ID 生成を無効にして、代わりにコードで ID を生成すると、パフォーマンスやコストにメリットがありますか?