Efficient Pagination with Skip/Take

Efficient pagination using OFFSET-FETCH on SQL Server.

Execution Time

28 ms

Page Size

25

Current Page

168 / 978

Total Records

24441

Items per page: 25 50 100 200

Page 168 Results Showing 4176 - 4200 of 24441

ID Name Category Price Stock Rating Reviews SKU
4706 Super Sports & Outdoors Product Special Edition Sports & Outdoors $602.19 450 3.8 3 SKU-004706
4707 Standard Sports & Outdoors Product Lite Sports & Outdoors $189.82 494 2.1 192 SKU-004707
4708 Premium Sports & Outdoors Product Lite Sports & Outdoors $840.01 273 3.7 821 SKU-004708
4709 Mega Toys & Games Product Max Toys & Games $125.26 201 1.1 29 SKU-004709
4710 Professional Office Supplies Product Advanced Office Supplies $149.69 308 3.2 899 SKU-004710
4711 Mega Home & Garden Product Lite Home & Garden $221.93 470 2.2 740 SKU-004711
4712 Premium Food & Grocery Product Pro Food & Grocery $396.46 209 4.1 517 SKU-004712
4713 Premium Food & Grocery Product Pro Food & Grocery $972.70 181 4.7 215 SKU-004713
4714 Pro Office Supplies Product Pro Office Supplies $986.02 462 1.0 942 SKU-004714
4716 Pro Toys & Games Product Classic Toys & Games $678.48 248 1.2 80 SKU-004716
4718 Deluxe Clothing Product Lite Clothing $659.70 471 4.8 852 SKU-004718
4719 Super Electronics Product Advanced Electronics $766.67 304 4.3 787 SKU-004719
4720 Pro Sports & Outdoors Product Advanced Sports & Outdoors $600.06 2 1.2 547 SKU-004720
4721 Super Electronics Product Max Electronics $176.69 175 4.4 941 SKU-004721
4722 Professional Food & Grocery Product Lite Food & Grocery $557.52 180 1.8 477 SKU-004722
4723 Ultra Toys & Games Product Classic Toys & Games $125.70 23 4.3 633 SKU-004723
4724 Ultra Automotive Product Mini Automotive $546.81 227 3.9 122 SKU-004724
4726 Deluxe Home & Garden Product XL Home & Garden $587.04 89 4.1 184 SKU-004726
4727 Pro Sports & Outdoors Product 2024 Sports & Outdoors $646.41 486 3.0 905 SKU-004727
4729 Professional Toys & Games Product Special Edition Toys & Games $789.85 26 3.5 209 SKU-004729
4730 Pro Clothing Product 2024 Clothing $258.54 440 4.8 500 SKU-004730
4733 Deluxe Home & Garden Product Lite Home & Garden $312.34 270 1.3 887 SKU-004733
4734 Professional Home & Garden Product Lite Home & Garden $84.19 375 3.8 849 SKU-004734
4735 Mega Books Product Special Edition Books $112.97 435 2.1 158 SKU-004735
4737 Deluxe Sports & Outdoors Product Mini Sports & Outdoors $863.24 279 1.3 91 SKU-004737
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