Efficient Pagination with Skip/Take

Efficient pagination using OFFSET-FETCH on SQL Server.

Execution Time

21 ms

Page Size

25

Current Page

132 / 978

Total Records

24441

Items per page: 25 50 100 200

Page 132 Results Showing 3276 - 3300 of 24441

ID Name Category Price Stock Rating Reviews SKU
3676 Standard Office Supplies Product Advanced Office Supplies $581.59 214 2.7 669 SKU-003676
3677 Standard Sports & Outdoors Product XL Sports & Outdoors $532.20 299 3.7 266 SKU-003677
3678 Super Sports & Outdoors Product 2024 Sports & Outdoors $104.21 452 4.7 523 SKU-003678
3679 Mega Electronics Product Special Edition Electronics $280.13 255 2.2 844 SKU-003679
3680 Professional Home & Garden Product 2024 Home & Garden $906.15 284 4.9 2 SKU-003680
3681 Economy Toys & Games Product XL Toys & Games $41.20 449 1.5 750 SKU-003681
3682 Economy Home & Garden Product Max Home & Garden $950.60 373 2.9 918 SKU-003682
3683 Premium Home & Garden Product Pro Home & Garden $55.72 31 2.5 792 SKU-003683
3684 Super Books Product Lite Books $285.13 123 5.0 617 SKU-003684
3685 Premium Sports & Outdoors Product Pro Sports & Outdoors $337.90 447 3.5 488 SKU-003685
3686 Elite Clothing Product Lite Clothing $651.35 55 1.9 589 SKU-003686
3687 Elite Office Supplies Product Special Edition Office Supplies $447.50 31 4.7 661 SKU-003687
3688 Mega Sports & Outdoors Product Mini Sports & Outdoors $753.19 175 4.5 762 SKU-003688
3689 Pro Electronics Product Mini Electronics $937.09 476 1.1 933 SKU-003689
3690 Standard Clothing Product Pro Clothing $893.42 79 2.0 52 SKU-003690
3691 Elite Sports & Outdoors Product Pro Sports & Outdoors $948.42 7 4.9 928 SKU-003691
3693 Ultra Books Product Max Books $923.36 330 4.5 506 SKU-003693
3694 Premium Books Product Plus Books $620.34 358 2.2 348 SKU-003694
3695 Standard Health & Beauty Product Special Edition Health & Beauty $356.06 411 2.8 513 SKU-003695
3696 Standard Electronics Product 2024 Electronics $327.81 399 3.6 165 SKU-003696
3697 Elite Sports & Outdoors Product Pro Sports & Outdoors $933.23 100 1.8 481 SKU-003697
3698 Pro Toys & Games Product Plus Toys & Games $709.92 103 3.8 219 SKU-003698
3699 Ultra Toys & Games Product Max Toys & Games $796.40 334 1.5 607 SKU-003699
3700 Elite Electronics Product Advanced Electronics $166.99 137 3.8 111 SKU-003700
3701 Premium Office Supplies Product Pro Office Supplies $980.48 15 2.7 593 SKU-003701
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