0

.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 を生成すると、パフォーマンスやコストにメリットがありますか?

4

2 に答える 2