Hay muchos métodos de consulta de paginación y los uniré aquí.
Hay una configuración Establecer número de filas en SQL Server, lo que significa que el procesamiento del comando deja de procesar el comando después de responder al número especificado de filas. Con esta función, podemos usarla para lograr un alto rendimiento en decenas de millones de niveles de filas. tabla de datos. Consultas paginadas de rendimiento. Primero hablemos del método de implementación:
1. Supongamos que hay un ID de campo de clave principal (tipo entero) en la tabla que ha sido indexada. Obtendremos datos para paginación de acuerdo con este campo.
2. Ponemos el tamaño de la página en @PageSize
3. Ponemos el número de página actual en @CurrentPage
4. ¿Cómo desplazar rápidamente el puntero de registro a la fila al comienzo de los datos que queremos recuperar? ¡Ésta es la clave! Con Set RowCount, podemos implementarlo fácilmente.
5. Si desplazamos con éxito el puntero del registro hasta la fila al comienzo de los datos que queremos recuperar y luego registramos el valor del campo ID del registro en esa fila, entonces, usando Top y condiciones, podemos obtener fácilmente la página de datos especificada. Por supuesto, con Set RowCount, ¿seguimos usando Top?
Veamos cómo nos puede ayudar Set Rowcount:
Declare @ID int
Declare @MoveRecords int
--@CurrentPage y @PageSize son los parámetros entrantes
Establecer @MoveRecords=@CurrentPage * @PageSize+1
: las siguientes dos líneas permiten un desplazamiento rápido a la fila de datos que queremos recuperar y registran el ID.
Establecer recuento de filas @MoveRecords
Seleccione @ID=ID de la Tabla 1 Ordenar por ID
Establecer número de filas @Tamaño de página
--Odio usar * para reducir problemas, pero para facilitar la explicación, lo usaré temporalmente.
Seleccione * De la Tabla 1 Donde ID>=@ID Ordenar por ID
Establecer recuento de filas 0
Puede probarlo en una tabla con registros de 1000 W, puede pasar rápidamente la página 100 (100 entradas por página) y ver qué rápido es.
Fuente: BLOG de Nanfeng
http://name-lh.cnblogs.com/archive/2006/03/08/346059.html