Existem muitos métodos de consulta de paginação e irei juntá-los aqui.
Há uma configuração Set Rowcount no SQL Server, o que significa que o processamento do comando interrompe o processamento do comando após responder ao número especificado de linhas. Usando esse recurso, podemos usá-lo para obter alto desempenho em dezenas de milhões de nível de linha. tabela de dados de desempenho. Vamos primeiro falar sobre o método de implementação:
1. Suponhamos que exista um ID de campo de chave primária (tipo inteiro) na tabela que foi indexada. Buscaremos dados para paginação de acordo com este campo.
2. Colocamos o tamanho da página em @PageSize
3. Colocamos o número da página atual em @CurrentPage
4. Como rolar rapidamente o ponteiro do registro até a linha no início dos dados que queremos recuperar? Esta é a chave! Com Set RowCount, podemos implementá-lo facilmente.
5. Se rolarmos com sucesso o ponteiro do registro para a linha no início dos dados que queremos buscar e, em seguida, registrarmos o valor do campo ID do registro nessa linha, então, usando Top e condições, poderemos facilmente obter a página de dados especificada. Claro, com Set RowCount, ainda usamos Top?
Vamos ver como Set Rowcount pode nos ajudar:
Declare @ID int
Declare @MoveRecords int
--@CurrentPage e @PageSize são os parâmetros de entrada
Set @MoveRecords=@CurrentPage * @PageSize+1
--As duas linhas a seguir permitem a rolagem rápida até a linha de dados que queremos recuperar e registrar o ID
Definir contagem de linhas @MoveRecords
Selecione @ID=ID da Tabela 1 Ordenar por ID
Definir Rowcount @PageSize
--Eu odeio usar * para reduzir problemas, mas para facilitar a explicação, vou usá-lo temporariamente.
Selecione * Da Tabela1 Onde ID>=@ID Ordenar por ID
Definir contagem de linhas 0
Você pode tentar isso. Em uma tabela com registros de 1.000 W, você pode virar rapidamente a página para a página 100 (100 entradas por página) e ver como é rápido!
Fonte: BLOG Nanfeng
http://name-lh.cnblogs.com/archive/2006/03/08/346059.html