Optimizar Nested Linq a SQL QUERY -- ptimization campo con linq-to-sql campo con nested camp Relacionados El problema

Optimize Nested Linq to SQL Query


0
vote

problema

Español

Tengo una consulta de Linq a SQL que estoy tratando de optimizar. He rastreado un problema importante que se relaciona con el número de consultas SQL que se llaman a la base de datos. Debido a la naturaleza anidada de la consulta, ¡es enorme! (Probar 14,000 líneas en SQL Profiler). ¡Ay!

Estoy mirando ansiosamente la carga y el uso de Loadwith, ¡pero parece haber una limitación con las consultas anidadas? (Error: System.InvalidOpesceptionception: los ciclos no se permiten en la carga de productos de carga. ¿Alguna idea sobre cómo obtener LINQ a SQL para cargar algunos de los datos relacionados y tener menos éxitos de DB? ¡Gracias!

  recvmsg9  

Perdón El código es un poco gnarly para mirar.

Original en ingles

I've got a linq to sql query that I'm trying to optimize. I've tracked down a major issue which relates to the number of sql queries being called to the database. Because of the nested nature of the query - it's huge! (try 14,000 lines in SQL profiler). Ouch!

I'm looking at eager loading and using LoadWith - but there appears to be a limitation with nested queries? (Error: System.InvalidOperationException: Cycles not allowed in LoadOptions LoadWith type graph.). Any ideas on how to get Linq to SQL to load some of the related data and have fewer db hits? thanks!

        List<EBCFPS> ebcfpsList = (from c in v3                                                                     group c by c.CId into g                                                                     select new EBCFPS()                                                                     {                                                                         CId = g.First().CId,                                                                         CName = g.First().CName,                                                                         CType = g.First().CType,                                                                         SortOrder = g.First().SortOrder == null ? 0 : (int)g.First().SortOrder,                                                                         EsGroup = (from q in g                                                                                          select new EFPS()                                                                                          {                                                                                              EId = (int)q.EId,                                                                                              EName = q.EName,                                                                                              CESGroup = (from s in db.CES                                                                                                               where s.EId == q.EId                                                                                                               && s.CId == q.CId                                                                                                               select new CESSFPS()                                                                                                               {                                                                                                                   CESId = s.CESId,                                                                                                                   CId = s.CId,                                                                                                                   EId = s.EId == null ? 0 : (int)s.EId,                                                                                                                   FSCId = s.FSCId == null ? 0 : (int)s.FSCId,                                                                                                                   SEV = s.SEV,                                                                                                                   Score = s.Score                                                                                                               }).ToList()                                                                                          }).ToList()                                                                     }).ToList(); 

Sorry the code is a bit gnarly to look at.

        
 
 

Lista de respuestas

0
 
vote
vote
La mejor respuesta
 

La respuesta fue consultas compiladas.

 

The answer was compiled queries.

 
 

Relacionados problema

6  Buscando la mejor clase de conjuntos de PHP (clase excluida)  ( Searching for the best php nested sets class pear class excluded ) 
Estoy buscando una clase de conjuntos anidados de PHP (con MySQL) con todas las funciones necesarias. Por ejemplo: createleftnode, createrightnode, createro...

7  ¿Cómo acceder a los controles dentro de una página maestra anidada? ¿Por qué se comportan de manera diferente a las páginas de contenido?  ( How to access controls inside a nested master page why does it behave different ) 
¿Hay una diferencia entre estos dos escenarios: (1) Acceso a una propiedad en una página maestra de un niño normal (2) Acceso a una propiedad en una págin...

1  Diccionarios anidados de trazado en 3D formados por diferentes matrices de longitud  ( 3d plotting nested dictionaries made up of different length arrays ) 
Tengo un diccionario anidado que se parece a esto: dictionary = {time: {pixels: {intensity}}} len(time) = 65 len(pixels) = 6/time len(intensity) = 6/pix...

7  Asignando ViewData a Masterpages anidadas  ( Assigning viewdata to nested masterpages ) 
¿Hay una buena manera de asignar a ViewData a las páginas maestras anidadas? Por ejemplo, en mi maestra de nivel superior, podría tener información sobre el u...

0  Seleccionar anidado Seleccionar  ( Nested select select ) 
Esta es una rama de una pregunta anterior - Tengo código que se parece a esto select EMPLOYEE_NAME, HIRE_DATE, IFNULL(SALARY,0), m...

0  El cursor de MySQL anidado ya está abierto  ( Mysql nested cursor is already open ) 
Tengo un SP con dos cursores anidados. El cursor exterior es clientes, y el cursor interno es periodos. Cuando se produce un error en el cursor interno, quier...

0  Análisis de NYTIMES Búsqueda API con GSON: ¿Cómo deserializar los elementos JSON anidados?  ( Parsing nytimes search api with gson how to deserialize nested json elements ) 
Me gustaría analizar una respuesta de la API de búsqueda de NYT dada en formato JSON. La cadena JSON se ve como sigue (Excertible): {"facets" : {"des_fa...

1  Imprima una lista anidada para que cada lista dentro de la lista esté en una columna diferente  ( Print a nested list so that each list within the list is in a different column ) 
Tengo el siguiente código F_list= [] C_list= [] C_approx_list = [] for F in range(0,101,10): F_list.append(F) C_approx_list.append((F-30)/2.) C...

0  No se puede imprimir datos JSON anidados con 6  ( Cant print nested json data with angular 6 ) 
Estoy aprendiendo a codificar y simplemente me encontré con este problema con la angular 6 que parece que no puedo resolver. Fui capaz de obtener los datos de...

0  La función de salida es la función con el índice de matriz como entrada  ( Output function is function with matrix index as input ) 
Necesito escribir un procedimiento iterativo que siga sumando el valor de una función en 2 variables a,b a otras funciones con las mismas entradas a,b . Pa...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos