使用In时,当集合元素过多时,执行效率会大幅降低

Abierto
#214 4 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
25/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
csharp, sql

Línea de trabajo

No se nombra ningún archivo ni prueba. Empieza por localizar los puntos de entrada de la expansión de In y de la generación de parámetros de SmartSql; después, inspecciona cómo se gestionan actualmente las colecciones grandes. Para darlo por terminado se requiere un comportamiento acordado y medido para las colecciones grandes de In, así como cobertura de regresión o de rendimiento; el issue no especifica los detalles de aceptación.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

在我实际应用中,In中的元素个数会有几百个甚至也许会更多。目前SmartSql中实现时,有多少个元素就会定义多少个参数,类似:@Ids_0,@Ids_1,@Ids_2…… 。这样执行效率会很低。相同条件的查询,使用EFCore时,它会把元素直接拼接到SQL中,不会使用参数化,类似 where id in (1,2,3……)。通过我的对比,EFCore这样的做法会有更好的性能。因此,我建议SmartSql对In也这样处理,不再使用参数化。

Lenguaje dominante
C#
Estrellas
1.1k
Forks
227
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

  • Sin Dockerfile ni archivo de Docker Compose
  • Tiene una plantilla de pull request
  • Sin guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de dotnetcore/SmartSql

Todos los issues de dotnetcore/SmartSql

Issues similares

Más issues de C#

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.