Efficient Pagination with Skip/Take

Efficient pagination using OFFSET-FETCH on SQL Server.

Execution Time

131 ms

Page Size

25

Current Page

880 / 978

Total Records

24441

Items per page: 25 50 100 200

Page 880 Results Showing 21976 - 22000 of 24441

ID Name Category Price Stock Rating Reviews SKU
22535 Bulk Product f9248715 Sports & Outdoors $327.17 79 0.6 45 BULK-987cc5eb
22536 Bulk Product 04314dd1 Electronics $345.71 113 4.0 24 BULK-62cc033b
22537 Bulk Product 68dc6f37 Electronics $191.34 187 3.7 6 BULK-95796441
22538 Bulk Product eb202149 Home & Garden $436.02 394 1.8 62 BULK-fadb4f2c
22539 Bulk Product 16328f09 Books $331.58 83 2.5 57 BULK-b09a15b5
22540 Bulk Product 8dfb1a0a Electronics $526.29 470 2.9 76 BULK-cd3285fb
22541 Bulk Product 3eef1d00 Clothing $513.32 469 2.3 85 BULK-a0655e10
22542 Bulk Product f63e101a Electronics $396.24 103 0.5 62 BULK-f91f458e
22543 Bulk Product 9523a9ff Books $659.22 458 4.1 66 BULK-72e6eb97
22544 Bulk Product aec3fc92 Electronics $346.97 64 0.1 91 BULK-348ae387
22545 Bulk Product 1c85cbfa Sports & Outdoors $170.44 493 2.8 34 BULK-695d5e2c
22546 Bulk Product 23cc8a33 Home & Garden $945.78 475 4.3 75 BULK-07f95a3a
22547 Bulk Product 94bb3a51 Home & Garden $591.51 309 2.1 24 BULK-b6bbf033
22548 Bulk Product f9e7bfe1 Books $875.76 401 4.7 30 BULK-8c323634
22549 Bulk Product 3e6d9638 Home & Garden $119.61 377 4.0 92 BULK-7ac35ed5
22550 Bulk Product 9c11dd23 Home & Garden $160.07 314 4.2 14 BULK-f19a2f71
22551 Bulk Product 28b971f6 Books $457.25 194 0.4 39 BULK-7d6b4cd0
22552 Bulk Product f5c5025b Home & Garden $616.09 445 1.8 8 BULK-597b5c60
22553 Bulk Product 465acade Toys & Games $420.67 117 0.0 32 BULK-f9fa5bd9
22554 Bulk Product b4e58c68 Clothing $772.12 477 4.6 75 BULK-27f3957d
22555 Bulk Product 0f37a748 Sports & Outdoors $821.00 415 2.0 61 BULK-61a2bba7
22556 Bulk Product 7c8d5f38 Home & Garden $38.01 57 2.5 69 BULK-a531746c
22557 Bulk Product d5cc170e Toys & Games $634.50 284 3.7 96 BULK-dd6492df
22558 Bulk Product b00c5edf Books $799.64 297 3.7 17 BULK-eb79aeca
22559 Bulk Product 5280756b Toys & Games $366.45 449 4.2 24 BULK-78112fd8
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