Efficient Pagination with Skip/Take

Efficient pagination using OFFSET-FETCH on SQL Server.

Execution Time

17 ms

Page Size

25

Current Page

166 / 978

Total Records

24441

Items per page: 25 50 100 200

Page 166 Results Showing 4126 - 4150 of 24441

ID Name Category Price Stock Rating Reviews SKU
4648 Professional Office Supplies Product Plus Office Supplies $953.05 155 3.2 782 SKU-004648
4649 Super Food & Grocery Product Lite Food & Grocery $438.37 315 1.9 276 SKU-004649
4651 Mega Toys & Games Product Mini Toys & Games $196.04 483 2.6 698 SKU-004651
4653 Pro Health & Beauty Product Mini Health & Beauty $921.87 421 2.1 969 SKU-004653
4654 Economy Clothing Product Lite Clothing $525.52 20 2.6 788 SKU-004654
4655 Professional Clothing Product Lite Clothing $665.80 97 3.2 527 SKU-004655
4656 Mega Automotive Product Max Automotive $442.58 366 2.3 427 SKU-004656
4657 Standard Sports & Outdoors Product Special Edition Sports & Outdoors $241.27 332 3.1 882 SKU-004657
4658 Pro Sports & Outdoors Product Plus Sports & Outdoors $935.39 285 3.9 201 SKU-004658
4659 Mega Home & Garden Product Max Home & Garden $81.36 338 4.0 543 SKU-004659
4660 Economy Electronics Product Max Electronics $988.40 488 3.5 758 SKU-004660
4661 Mega Office Supplies Product XL Office Supplies $48.19 373 1.3 915 SKU-004661
4662 Premium Home & Garden Product Classic Home & Garden $886.31 496 3.2 320 SKU-004662
4663 Deluxe Electronics Product Pro Electronics $598.18 211 4.9 553 SKU-004663
4664 Standard Automotive Product Pro Automotive $959.37 469 3.5 500 SKU-004664
4665 Pro Electronics Product Special Edition Electronics $878.06 388 4.7 269 SKU-004665
4666 Standard Books Product Special Edition Books $915.13 21 2.0 876 SKU-004666
4667 Pro Toys & Games Product Mini Toys & Games $215.76 81 2.1 114 SKU-004667
4668 Pro Sports & Outdoors Product Pro Sports & Outdoors $121.65 484 2.6 36 SKU-004668
4669 Standard Home & Garden Product Mini Home & Garden $455.25 253 2.9 9 SKU-004669
4671 Economy Books Product XL Books $122.65 476 1.2 814 SKU-004671
4672 Deluxe Clothing Product XL Clothing $807.10 473 4.1 303 SKU-004672
4673 Elite Office Supplies Product Pro Office Supplies $336.37 79 2.4 552 SKU-004673
4674 Ultra Health & Beauty Product Special Edition Health & Beauty $622.29 234 2.3 247 SKU-004674
4675 Super Clothing Product Pro Clothing $732.23 110 3.1 564 SKU-004675
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