none
SQL 2012 OFFSET/FETCH con numero di pagine (in out) RRS feed

  • Domanda

  • Ciao, stai valutando le nuove funzionalità di SQL2012 in particolare per la paginazione.

    Sui blog riportano questa soluzione che mi sembra NON performante, in quanto per ogni record in output sembra che venga eseguita una COUNT(*)

    DECLARE  @PageSize INT = 10, 
     @PageNum  INT = 1;

    SELECT name, pages_count = COUNT(*)/@PageSize OVER()
    FROM Utenti
    ORDER BY name
    OFFSET (@PageNum-1)*@PageSize ROWS
    FETCH NEXT @PageSize ROWS ONLY;

    Allora avrei pensato, questa soluzione :

    SELECT name
    FROM Utenti
    ORDER BY name
    OFFSET (@PageNum-1)*@PageSize ROWS
    FETCH NEXT @PageSize ROWS ONLY;

    SELECT  pages_count = COUNT(*)/@PageSize OVER()
    FROM Utenti

    Avete suggerimenti ?

    martedì 20 novembre 2012 09:14