Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
L'indicizzazione in background è una tecnica che consente a un sistema di database di eseguire operazioni di indicizzazione su una raccolta senza bloccare altre query o aggiornamenti. Azure DocumentDB accetta la richiesta di indicizzazione in background e la esegue in modo asincrono in background.
Quando si utilizzano livelli o carichi di lavoro più piccoli con operazioni di I/O elevate, definire indici predefiniti su raccolte vuote ed evitare di basarsi sull'indicizzazione in background.
Importante
Creare indici univoci su una raccolta vuota perché gli indici univoci vengono creati in primo piano e bloccano le operazioni di lettura e scrittura. Definire gli indici in base ai predicati di query prima di inserire dati mentre la raccolta è ancora vuota. In questo modo si riduce la contesa delle risorse in raccolte di grandi dimensioni con traffico di lettura/scrittura elevato.
Monitorare la compilazione dell'indice
È possibile ottenere informazioni sullo stato di avanzamento della compilazione dell'indice usando il comando currentOp().
db.currentOp("db_name":"<db_name>", "collection_name":"<collection_name>")
-
db_nameè un parametro facoltativo. -
collection_nameè un parametro facoltativo.
// Output for reviewing build status
{
inprog: [
{
shard: 'defaultShard',
active: true,
type: 'op',
opid: '10000003049:1701252500485346',
op_prefix: Long("10000003049"),
currentOpTime: ISODate("2024-06-24T10:08:20.000Z"),
secs_running: Long("2"),
command: {createIndexes: '' },
op: 'command',
waitingForLock: true
},
{
shard: 'defaultShard',
active: true,
type: 'op',
opid: '10000003050:1701252500499914',
op_prefix: Long("10000003050"),
currentOpTime: ISODate("2024-06-24T10:08:20.000Z"),
secs_running: Long("2"),
command: {
createIndexes: 'BRInventory', },
indexes: [
{
v:2,
key: {vendorItemId: 1, vendorId: 1, itemType: 1},
name: 'compound_idx'
}
],
'$db': 'test'
op: 'command',
waitingForLock: false,
progress: {
blocks_done: Long("12616"),
blocks_done: Long("1276873"),
documents_d: Long("0"),
documents_to: Long("0")
},
msg: 'Building index.Progress 0.0098803875. Waiting on op_prefix: 10000000000.'
}
],
ok: 1
}
Limitazioni
- Non è possibile creare indici univoci in background. È consigliabile crearli in una raccolta vuota e quindi caricare i dati.
- L'indicizzazione in background viene eseguita in sequenza all'interno di una singola raccolta. Tuttavia, il numero di compilazioni simultanee di indici su raccolte diverse è configurabile (impostazione predefinita: 2).