Condividi tramite


Unità di query in Gemelli digitali di Azure

Questo articolo illustra le unità di query, il modo in cui vengono usate da Gemelli digitali di Azure e come trovare l'utilizzo di unità di query in Gemelli digitali di Azure.

Un'unità di query (QU) di Gemelli digitali di Azure è un'unità di calcolo su richiesta usata per eseguire le query di Gemelli digitali di Azure usando l'API Query.

Estrae le risorse di sistema, ad esempio CPU, operazioni di I/O al secondo e memoria necessarie per eseguire operazioni di query supportate da Gemelli digitali di Azure, consentendo invece di tenere traccia dell'utilizzo nelle unità di query.

La quantità di unità di query utilizzate per eseguire una query è influenzata da:

  • Complessità della query
  • Le dimensioni del set di risultati (quindi una query che restituisce 10 risultati utilizzerà più QU di una query con complessità simile che restituisce un solo risultato)

Questo articolo illustra come comprendere le unità di query e tenere traccia dell'utilizzo delle unità di query.

Trovare l'utilizzo dell'unità di query in Gemelli digitali di Azure

Quando si esegue una query usando l'API query di Gemelli digitali di Azure, è possibile esaminare l'intestazione della risposta per tenere traccia del numero di unità richiesta usate dalla query. Cercare "addebito query" nella risposta inviata da Gemelli digitali di Azure.

Gli SDK di Gemelli digitali di Azure consentono di estrarre l'intestazione di addebito query dalla risposta impaginabile. Questa sezione illustra come eseguire query per gemelli digitali e come eseguire l'iterazione sulla risposta impaginabile per estrarre l'intestazione query-charge.

Il frammento di codice seguente illustra come estrarre gli addebiti per le query addebitati durante la chiamata all'API query. Scorre prima le pagine di risposta per accedere all'intestazione di addebito delle query e scorre i risultati del gemello digitale all'interno di ogni pagina.

using Azure;
using Azure.DigitalTwins.Core;
using System;

namespace DigitalTwins_Samples
{
    public class GetQueryChargesSample
    {
        async public void Run(DigitalTwinsClient client)
        {
            AsyncPageable<BasicDigitalTwin> asyncPageableResponseWithCharge = client.QueryAsync<BasicDigitalTwin>("SELECT * FROM digitaltwins");
            int pageNum = 0;

            // The "await" keyword here is required, as a call is made when fetching a new page.

            await foreach (Page<BasicDigitalTwin> page in asyncPageableResponseWithCharge.AsPages())
            {
                Console.WriteLine($"Page {++pageNum} results:");

                // Extract the query-charge header from the page

                if (QueryChargeHelper.TryGetQueryCharge(page, out float queryCharge))
                {
                    Console.WriteLine($"Query charge was: {queryCharge}");
                }

                // Iterate over the twin instances.

                // The "await" keyword is not required here, as the paged response is local.

                foreach (BasicDigitalTwin twin in page.Values)
                {
                    Console.WriteLine($"Found digital twin '{twin.Id}'");
                }
            }
        }
    }
}

Passaggi successivi

Per altre informazioni sull'esecuzione di query su Gemelli digitali di Azure, vedere:

È possibile trovare limiti correlati alle query di Gemelli digitali di Azure nei limiti del servizio Gemelli digitali di Azure.