Paginação de registros no SQL Server

Pessoal, a muito tempo eu venho sendo questionado sobre a mesma funcionalidade, como fazer uma query para criar a paginação dos dados igual ao recurso limit do MySQL – “No mysql temos o limit… blá, blá, blá”, sempre a mesma história.

 

Então, ai esta o código.

with ctLimit(
ordem, [client-IP], [client-hostname])
as (
select row_number()over(order by datetime asc) as Ordem ,
[client-IP]
, [client-hostname] from dbo.MsgTrackingLogs
)
select * from ctLimit where ordem between 10000 and 200000

E por falar nisso, fiz o teste desta query em uma tabela sem índices de 2313457 registros e para pegar uma faixa de 100 registros demorou menos de um segundo.

 

Por fim, me resta dizer que t-SQL possuí diversos recursos a serem explorados nas mais diversas situações do dia-a-dia. Em algumas aplicações pode-se analisar a implementação deste recurso para paginação diretamente o t-SQL ao invés de carregar um DataSet com milhões de linhas.

 

 

Abraço, Rodrigo.

Ps. Um abraço especial para um grande desenvolvedor, o meu amigo Pablo!

Author: SQLCrespi

Rodrigo Crespi é MVP Data Platform, MCT, MCSE, MCSA, MCIT, MCDBA e MCP em SQL Server, possuí outras certificações em .NET Framework, Dynamics CRM e etc. Iniciou trabalhando com SQL Server na versão 6.5 na época como desenvolvedor, logo direcionou a sua carreira para a área de administração de bancos de dados. Atualmente é Sócio da CrespiDB – Soluções em Plataformas de Dados, além de professor universitário na Uniftec – Caxias do Sul Autor de diversos artigos publicados em sites e revistas sobre SQL Server e engenharia de software, mantem o canal SQLCrespi no Youtube, o blog SQLCrespi, além de ser dedicado ao SQL Server RS PASS Chapter Leader do grupo de profissionais em SQL Server do Rio Grande do Sul.

2 thoughts on “Paginação de registros no SQL Server

  1. Mazaahh!!
    Grato pela informação! Com certeza é uma pergunta que perturbou muitas pessoas.
    Não esperava nada diferente de um grande profissional e amigo como você.

    Abraço
    Pablo Ficher

  2. Mazaahh!!
    Grato pela informação! Com certeza é uma pergunta que perturbou muitas pessoas.
    Não esperava nada diferente de um grande profissional e amigo como você.

    Abraço
    Pablo Ficher

Deixe uma resposta