Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A indexação em segundo plano é uma técnica que permite que um sistema de banco de dados execute operações de indexação em uma coleção sem bloquear outras consultas ou atualizações. O Azure DocumentDB aceita a solicitação de indexação em segundo plano e a executa de forma assíncrona em segundo plano.
Ao usar camadas ou cargas de trabalho menores com E/S alta, preedefine índices em coleções vazias e evite depender da indexação em segundo plano.
Importante
Crie índices exclusivos em uma coleção vazia, pois os índices exclusivos são construídos em primeiro plano e bloqueiam leituras e gravações. Defina índices com base em predicados de consulta antes de inserir dados enquanto a coleção ainda estiver vazia. Fazer isso reduz a contenção de recursos em grandes coleções com tráfego de leitura/gravação pesado.
Monitorar a construção do índice
Podemos aprender sobre o progresso da construção de índice usando o comando currentOp().
db.currentOp("db_name":"<db_name>", "collection_name":"<collection_name>")
-
db_nameé um parâmetro opcional. -
collection_nameé o parâmetro opcional.
// 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
}
Limitações
- Índices exclusivos não podem ser criados em segundo plano. É melhor criá-los em uma coleção vazia e carregar os dados.
- A indexação em segundo plano é executada sequencialmente em uma única coleção. No entanto, o número de builds de índice simultâneo em coleções diferentes é configurável (padrão: 2).