Efficient Pagination with Skip/Take

Efficient pagination using OFFSET-FETCH on SQL Server.

Execution Time

138 ms

Page Size

25

Current Page

163 / 978

Total Records

24441

Items per page: 25 50 100 200

Page 163 Results Showing 4051 - 4075 of 24441

ID Name Category Price Stock Rating Reviews SKU
4566 Ultra Books Product Pro Books $529.90 321 4.0 0 SKU-004566
4567 Super Automotive Product Advanced Automotive $946.70 425 3.8 211 SKU-004567
4568 Pro Health & Beauty Product Mini Health & Beauty $889.20 196 1.4 609 SKU-004568
4569 Standard Books Product Plus Books $294.24 429 3.7 728 SKU-004569
4570 Deluxe Sports & Outdoors Product Special Edition Sports & Outdoors $708.87 173 3.2 851 SKU-004570
4571 Premium Electronics Product 2024 Electronics $271.77 333 4.1 169 SKU-004571
4572 Deluxe Sports & Outdoors Product Lite Sports & Outdoors $737.68 139 1.5 826 SKU-004572
4573 Mega Automotive Product Mini Automotive $922.91 170 2.6 937 SKU-004573
4574 Pro Electronics Product Lite Electronics $211.43 492 1.5 182 SKU-004574
4575 Premium Food & Grocery Product Plus Food & Grocery $883.44 273 3.8 856 SKU-004575
4576 Deluxe Electronics Product Special Edition Electronics $280.06 486 3.9 297 SKU-004576
4577 Deluxe Clothing Product Advanced Clothing $499.23 159 4.7 91 SKU-004577
4578 Standard Automotive Product Plus Automotive $520.27 233 1.9 174 SKU-004578
4579 Mega Books Product XL Books $879.12 48 4.6 656 SKU-004579
4580 Professional Sports & Outdoors Product Lite Sports & Outdoors $484.96 30 3.9 629 SKU-004580
4581 Standard Clothing Product Advanced Clothing $858.71 105 5.0 464 SKU-004581
4582 Mega Electronics Product 2024 Electronics $324.14 493 2.7 492 SKU-004582
4583 Standard Toys & Games Product Advanced Toys & Games $658.87 264 5.0 283 SKU-004583
4584 Pro Health & Beauty Product Lite Health & Beauty $468.98 220 2.9 313 SKU-004584
4585 Professional Sports & Outdoors Product Pro Sports & Outdoors $309.71 479 3.4 306 SKU-004585
4587 Professional Sports & Outdoors Product Max Sports & Outdoors $917.01 208 1.1 435 SKU-004587
4588 Pro Health & Beauty Product XL Health & Beauty $860.59 342 3.3 14 SKU-004588
4589 Premium Automotive Product Max Automotive $416.91 116 1.1 837 SKU-004589
4590 Economy Automotive Product Classic Automotive $818.26 81 3.7 702 SKU-004590
4592 Professional Health & Beauty Product Special Edition Health & Beauty $277.79 132 4.6 655 SKU-004592
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