database - Problema de rendimiento con RavenDB
lucene (2)
Bueno, está realizando una consulta que tiene que obtener 5000 elementos, enviarlos a través de la red y deserializarlos de Json a un POCO escolar. 1000 elementos por / seg. No es tan malo, por todo esto.
Habiendo dicho eso, ¿qué vas a hacer con la lista de artículos escolares que recibes? En general, no es necesario usar 5000 elementos en 1 intento, es por eso que RavenDB tiene paginación incorporada
Creé una aplicación simple basada en RavenDB donde tengo 3000 documentos que constan de 15 cadenas y propiedades int. Una de las propiedades (CType) tiene el mismo valor para todos los documentos y estoy usando este campo como una manera de cargar todos los documentos en una matriz usando una consulta Lucene:
var store = new DocumentStore { Url = "http://localhost:8080", DefaultDatabase = "GIS" };
store.Initialize();
using (var session = store.OpenSession())
{
var school = session.Advanced.LuceneQuery<School>()
.Where("CType:School") // all documents have CType = "School"
.Take(5000)
.ToArray();
Este código funciona porque lee los 3000 documentos en la matriz, sin embargo, demora 5 segundos o más para completar la carga.
¿Hay alguna forma de hacer esto más rápido?
En realidad, usa un índice dinámico para hacer eso, por lo que es probable que la primera vez que lo obtenga utilice un índice dinámico. Y realmente debería considerar hacer cualquier filtrado en el servidor, no en el cliente.