Puede ser una pregunta frecuente, sin embargo, hasta ahora no he podido encontrar una respuesta convincente.¿Cuál es la mejor práctica de clasificar datos con paginación, nivel comercial o nivel de base de datos?
En mi proyecto, necesito buscar paginación para un conjunto de más de 20,000 registros que es un resultado conjunto de varias tablas, y debe ordenarse de manera diferente en diferentes escenarios.
Actualmente, hay 2 opciones frente a mí:
1, lo hacen mediante el uso de procedimiento de almacenamiento en la base de datos de nivel ie. where dl.[row_number] between @index*@size+1 and @index*@[email protected]
. El problema de hacerlo es que tendrá que escribir Store Procs para cada clasificación por separado.
2, hágalo en el nivel de lógica de negocios, y realice paginación y clasificación por encima del resultado. (ie. skip(), take())
Pero tampoco es ideal, ya que puede terminar recuperando 20,000 registros, pero solo se usan 10 de ellos
¿Hay alguna mejor práctica estándar disponible para esto? gracias de antemano
No tiene que hacer un procedimiento almacenado por separado para cada "cláusula where" porque puede hacer cosas como sentencias case y o. – jcolebrand