Efficient Pagination with Skip/Take

Efficient pagination using OFFSET-FETCH on SQL Server.

Execution Time

53 ms

Page Size

25

Current Page

522 / 978

Total Records

24441

Items per page: 25 50 100 200

Page 522 Results Showing 13026 - 13050 of 24441

ID Name Category Price Stock Rating Reviews SKU
13585 Bulk Product eef493bb Books $816.15 404 4.0 33 BULK-3ea35186
13586 Bulk Product 24ccafdf Home & Garden $363.20 180 3.3 85 BULK-88c9e318
13587 Bulk Product 66170d69 Toys & Games $125.13 303 2.6 71 BULK-6755a035
13588 Bulk Product 819d271a Sports & Outdoors $509.78 469 0.8 38 BULK-b6fa9ea0
13589 Bulk Product af107017 Clothing $144.81 0 4.1 37 BULK-5b319177
13590 Bulk Product 68f6aed0 Books $613.24 246 0.5 14 BULK-960ffabc
13591 Bulk Product 15a26056 Home & Garden $647.56 320 1.7 35 BULK-0f870d63
13592 Bulk Product ceb12a7a Sports & Outdoors $214.10 307 3.8 48 BULK-f4d7829f
13593 Bulk Product 83f9648a Clothing $117.67 77 0.1 61 BULK-8057d7f5
13594 Bulk Product 9e6bf01f Home & Garden $455.83 74 2.7 63 BULK-de21d1db
13595 Bulk Product 2c86950b Books $811.64 438 4.8 84 BULK-835d6e88
13596 Bulk Product 27e1cc2f Home & Garden $650.47 308 1.1 28 BULK-75b372bc
13597 Bulk Product 787bd53c Toys & Games $53.58 1 1.2 86 BULK-2dba53c5
13598 Bulk Product fd0c45c7 Books $91.46 404 0.1 2 BULK-d68e9b34
13599 Bulk Product abdada8a Toys & Games $550.36 392 1.0 2 BULK-cc6372e0
13600 Bulk Product 7ca6756d Sports & Outdoors $312.65 38 2.9 47 BULK-cacd0e46
13601 Bulk Product a768f29a Toys & Games $403.42 84 1.8 78 BULK-eee5cab2
13602 Bulk Product b9318ece Toys & Games $866.10 302 3.9 34 BULK-15bf49c6
13603 Bulk Product dac0146a Clothing $843.01 386 4.9 4 BULK-7bdc455e
13604 Bulk Product 8f06a0b4 Home & Garden $293.37 172 2.9 6 BULK-160ade73
13605 Bulk Product 183807ac Sports & Outdoors $386.47 342 2.4 77 BULK-07ac6427
13606 Bulk Product 1c4acd7a Sports & Outdoors $83.23 18 0.6 84 BULK-ac593311
13607 Bulk Product b594d9a7 Books $162.27 213 4.4 31 BULK-7bb65c30
13608 Bulk Product 8ede734b Electronics $686.91 396 4.7 26 BULK-8393dfde
13609 Bulk Product 73269c1a Books $75.70 180 3.0 4 BULK-cb358d6c
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