es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La tarea en segundo plano que estoy ejecutando en mi aplicación asp.net está tardando mucho tiempo en ejecutarse y se está atascando en una consulta linq.

La tarea en segundo plano que estoy ejecutando en mi aplicación asp.net está tardando mucho tiempo en ejecutarse y se está atascando en una consulta Linq. ¿Cómo puedo optimizar la consulta Linq o puedes sugerir algunas alternativas para que este método o Linq puedan acelerarse?

La consulta Linq es algo así:

Litigation i = litigationsNotClosed.SingleOrDefault(x => x.Idlocal == d.Idlocal && x.LegalEntityID_local == importEntity);
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    La optimización de la consulta Linq se puede realizar de varias maneras:

    1. Use el método AsEnumerable() para convertir la consulta en una colección en memoria antes de aplicar el método SingleOrDefault(). Esto reducirá el número de viajes de ida y vuelta a la base de datos.
    2. Use el método FirstOrDefault() en lugar de SingleOrDefault() si no necesita garantizar que solo se devuelva un resultado.
    3. Use el método Contains() en lugar de == si está comparando con una lista de valores.
    4. Use el método ToList() para convertir la consulta en una lista antes de aplicar el método SingleOrDefault(). Esto reducirá el número de viajes de ida y vuelta a la base de datos.
    5. Use el método Take() para limitar el número de resultados devueltos.
    6. Use el método Index() para crear un índice en la tabla para mejorar el rendimiento de la consulta.
    7. Use el método Include() para cargar entidades relacionadas de forma anticipada.
    8. Use el método AsNoTracking() para desactivar el seguimiento de cambios para la consulta.
    9. Use el método AsParallel() para ejecutar la consulta en paralelo.
    10. Use el método AsStreaming() para habilitar el streaming de los resultados de la consulta.

Comments are closed.