Búsqueda lenta de artículos usando propiedad extendida en Exchange

Problema en la mano

Nuestra aplicación de Windows C # usaAPI 2.0 administrada de EWS para crear citas en el calendario de un usuario. Cada cita tiene una propiedad extendida con un valor único. Más tarde localiza una cita usandoFindItems y unItemView.

Los usuarios experimentan retrasos significativos la primera vez que se realiza esta búsqueda. Los tiempos de respuesta posteriores son totalmente aceptables.

(La "primera vez" es un poco vaga aquí, porque los usuarios pueden experimentar la demora de nuevo más tarde en el día)

// locate ID of appointment where extended property value equals 1234:
var filter = new Ews.SearchFilter.IsEqualTo(extendedPropertyDefinition, 1234);
var view = new ItemView(1, 0);
view.PropertySet = BasePropertySet.IdOnly;
var folder = new FolderId(WellKnownFolderName.Calendar, new Mailbox("..."));
var result = service.FindItems(folder, filter, view);

El servidor remoto es unExchange Server 2007 SP1.

Investigación

MSDN vincula algunos comentarios a las carpetas de búsqueda y las vistas restringidasSin embargo, no estoy seguro si esto se aplica a nuestra situación.

El acto deaplicar una vista a una carpeta crea carpetas de búsqueda en la tienda. Cuando se crea una carpeta de búsqueda, se almacena en caché para su uso posterior. Si un usuario intenta crear una carpeta de búsqueda que ya existe, se utiliza la carpeta de búsqueda en caché. Esto permite que las futuras visualizaciones sean bastante rápidas. De forma predeterminada, Exchange no almacena en caché todas las carpetas de búsqueda de forma indefinida.

Específicamentecon respecto a los SAT:

También es importante tener en cuenta el hecho de que la primera vez que se emite una consulta de búsqueda en el almacén de Exchange, se ejecutará muy lentamente y posiblemente se agotará, mientras que en futuras ejecuciones responderá sin problemas. Esto se debe a los procesos de back-end que se producen en el servidor de Exchange cuando se realiza una búsqueda en la tienda.

Sugieren crear carpetas de búsqueda para consultas no dinámicas y no cambiantes, lo que no parece adecuado en nuestro caso, ya que la consulta es diferente para cada cita.

Si una aplicación requiere una consulta específica que tiene un conjunto fijo de parámetros que no cambian, puede usar las carpetas de búsqueda. Las carpetas de [...] búsqueda son útiles solo para consultas no cambiantes, no dinámicas.

Lo que necesitamos es, en esencia, crear un "índice", en términos de base de datos, en la propiedad, asegurando que todas las búsquedasen esta propiedad especifica Son rápidos, no importa el tiempo o la frecuencia.

¿Es posible "indexar" esta propiedad? ¿Se puede configurar algo del lado del cliente o del servidor para eliminar este retraso inicial?

Respuestas a la pregunta(4)

Su respuesta a la pregunta