Efficient Pagination with Skip/Take

Efficient pagination using OFFSET-FETCH on SQL Server.

Execution Time

709 ms

Page Size

25

Current Page

131 / 978

Total Records

24441

Items per page: 25 50 100 200

Page 131 Results Showing 3251 - 3275 of 24441

ID Name Category Price Stock Rating Reviews SKU
3651 Mega Clothing Product Classic Clothing $728.15 296 3.8 44 SKU-003651
3652 Elite Food & Grocery Product XL Food & Grocery $770.19 58 4.6 289 SKU-003652
3653 Standard Sports & Outdoors Product Plus Sports & Outdoors $757.34 9 2.2 154 SKU-003653
3654 Ultra Books Product Lite Books $609.19 310 3.9 681 SKU-003654
3655 Ultra Sports & Outdoors Product Lite Sports & Outdoors $936.16 226 2.4 988 SKU-003655
3656 Elite Automotive Product Classic Automotive $294.02 136 4.1 152 SKU-003656
3657 Pro Food & Grocery Product Classic Food & Grocery $152.59 175 2.1 491 SKU-003657
3658 Elite Electronics Product Lite Electronics $990.84 327 3.8 985 SKU-003658
3659 Standard Clothing Product 2024 Clothing $487.98 456 4.1 25 SKU-003659
3660 Mega Health & Beauty Product XL Health & Beauty $565.79 492 3.3 252 SKU-003660
3661 Elite Food & Grocery Product 2024 Food & Grocery $727.93 325 1.7 501 SKU-003661
3662 Super Home & Garden Product Mini Home & Garden $734.87 273 4.8 872 SKU-003662
3663 Ultra Automotive Product Mini Automotive $408.77 300 2.7 190 SKU-003663
3664 Deluxe Books Product 2024 Books $98.29 143 3.8 460 SKU-003664
3665 Elite Health & Beauty Product XL Health & Beauty $524.93 196 1.4 256 SKU-003665
3666 Economy Health & Beauty Product 2024 Health & Beauty $349.88 353 2.0 563 SKU-003666
3667 Elite Toys & Games Product Pro Toys & Games $858.05 0 2.2 907 SKU-003667
3668 Pro Toys & Games Product Lite Toys & Games $653.52 483 2.4 210 SKU-003668
3669 Mega Books Product Lite Books $465.80 172 2.7 945 SKU-003669
3670 Professional Sports & Outdoors Product Special Edition Sports & Outdoors $679.22 72 4.5 253 SKU-003670
3671 Standard Clothing Product Plus Clothing $905.69 285 4.9 324 SKU-003671
3672 Elite Office Supplies Product Pro Office Supplies $981.66 106 3.6 472 SKU-003672
3673 Elite Toys & Games Product Lite Toys & Games $321.03 437 4.0 224 SKU-003673
3674 Super Health & Beauty Product XL Health & Beauty $192.54 43 1.4 983 SKU-003674
3675 Premium Sports & Outdoors Product Special Edition Sports & Outdoors $547.61 34 3.9 3 SKU-003675
Implementation Code
// Efficient pagination with Skip and Take
public async Task<PaginatedResult<DemoProduct>> GetPaginatedProductsAsync(int page, int pageSize)
{
    // Get total count (cached if possible)
    var totalCount = await _context.DemoProducts.CountAsync(p => p.IsActive);
    
    // Get page of results
    var items = await _context.DemoProducts
        .Where(p => p.IsActive)
        .OrderBy(p => p.Id) // Important: Must have ORDER BY for consistent paging
        .Skip((page - 1) * pageSize) // OFFSET in SQL
        .Take(pageSize) // FETCH NEXT in SQL
        .AsNoTracking() // No tracking needed for read-only
        .ToListAsync();

    return new PaginatedResult<DemoProduct>
    {
        Items = items,
        TotalCount = totalCount,
        Page = page,
        PageSize = pageSize
    };
}
Pagination Best Practices
  • Always use OrderBy: Skip/Take require stable sorting for consistent results
  • Use AsNoTracking(): Pagination queries are typically read-only
  • Consider caching: Cache total count if dataset changes infrequently
  • Limit max page size: Prevent users from requesting too many records at once
  • Use indexed columns: Ensure ORDER BY columns are indexed for performance