Ho un database abbastanza grande con ~ 2,6 milioni di documenti in cui ho due raccolte ogni 1,2 milioni e resto sono piccole collezioni (< 1000 documenti). Quando creo un nuovo indice per la piccola raccolta, è necessario molto tempo per completare l'indicizzazione (quindi gli indici temporanei sono inutili). Sembra che il processo di indicizzazione RavenDB legga ogni documento nel DB e controlli se dovrebbe essere aggiunto all'indice. Penso che potrebbe funzionare meglio per indicizzare solo le raccolte utilizzate dall'indice.Perché RavenDB legge tutti i documenti nel processo di indicizzazione e non solo le raccolte utilizzate dall'indice?
Anche quando si utilizza Smuggler per esportare i dati e voglio esportare solo una piccola raccolta, legge tutti i documenti e l'esportazione potrebbe richiedere molto tempo. La stessa app personalizzata che utilizza API e indici RavenDB Linq può esportare i dati in pochi secondi.
Perché RavenDB si comporta in questo modo? E forse c'è qualche impostazione di configurazione che potrebbe cambiare questo comportamento?
Vorrei squadra Raven aggiungerebbe una lista opzionale di "Collection" per definizione dell'indice. Se l'elenco è vuoto, il processo di indicizzazione funziona così com'è. Tuttavia, se tale lista è definita, solo le raccolte da tale elenco dovrebbero essere considerate per indice. Migliorerebbe notevolmente le prestazioni e dovrebbe essere molto semplice da implementare. Abbiamo problemi simili con Smuggler. La nostra implementazione utilizza Raven-Entity-Name ma con un filtro di raccolta ed è significativamente più veloce di Smuggler. –