Efficient Pagination with Skip/Take

Efficient pagination using OFFSET-FETCH on SQL Server.

Execution Time

11 ms

Page Size

25

Current Page

164 / 978

Total Records

24441

Items per page: 25 50 100 200

Page 164 Results Showing 4076 - 4100 of 24441

ID Name Category Price Stock Rating Reviews SKU
4593 Ultra Electronics Product 2024 Electronics $679.52 463 3.6 616 SKU-004593
4594 Deluxe Electronics Product Pro Electronics $943.76 164 4.5 356 SKU-004594
4595 Ultra Automotive Product Advanced Automotive $561.09 440 5.0 579 SKU-004595
4596 Professional Electronics Product Plus Electronics $555.98 428 4.6 692 SKU-004596
4597 Elite Office Supplies Product Classic Office Supplies $567.04 211 4.2 715 SKU-004597
4598 Elite Food & Grocery Product Max Food & Grocery $669.80 486 1.1 624 SKU-004598
4599 Professional Sports & Outdoors Product Pro Sports & Outdoors $481.22 337 2.9 201 SKU-004599
4600 Super Toys & Games Product Special Edition Toys & Games $875.72 454 2.6 875 SKU-004600
4601 Ultra Food & Grocery Product Mini Food & Grocery $631.42 28 1.7 184 SKU-004601
4602 Super Toys & Games Product Classic Toys & Games $776.50 473 4.2 38 SKU-004602
4604 Standard Food & Grocery Product Plus Food & Grocery $622.71 147 3.7 532 SKU-004604
4605 Premium Sports & Outdoors Product Plus Sports & Outdoors $15.75 388 3.6 230 SKU-004605
4607 Deluxe Books Product Lite Books $222.92 283 2.5 35 SKU-004607
4608 Ultra Books Product Mini Books $19.31 388 4.1 68 SKU-004608
4609 Pro Home & Garden Product Pro Home & Garden $479.09 203 1.4 955 SKU-004609
4610 Deluxe Books Product Plus Books $624.17 457 1.1 334 SKU-004610
4611 Super Home & Garden Product Plus Home & Garden $419.35 50 1.7 744 SKU-004611
4612 Mega Sports & Outdoors Product Classic Sports & Outdoors $356.06 24 3.9 645 SKU-004612
4613 Pro Electronics Product Max Electronics $823.42 281 2.0 804 SKU-004613
4614 Ultra Books Product Special Edition Books $434.52 22 4.1 986 SKU-004614
4615 Pro Books Product XL Books $160.52 402 4.6 117 SKU-004615
4616 Super Sports & Outdoors Product Mini Sports & Outdoors $919.71 122 3.5 336 SKU-004616
4617 Ultra Automotive Product Mini Automotive $618.43 200 4.2 992 SKU-004617
4618 Deluxe Sports & Outdoors Product Plus Sports & Outdoors $808.07 254 2.3 17 SKU-004618
4620 Deluxe Clothing Product Pro Clothing $290.40 28 2.4 240 SKU-004620
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