Efficient Pagination with Skip/Take

Efficient pagination using OFFSET-FETCH on SQL Server.

Execution Time

1593 ms

Page Size

50

Current Page

121 / 489

Total Records

24441

Items per page: 25 50 100 200

Page 121 Results Showing 6001 - 6050 of 24441

ID Name Category Price Stock Rating Reviews SKU
6560 Bulk Product 933305b3 Clothing $574.55 456 0.8 54 BULK-e9ac39d0
6561 Bulk Product 48e830f0 Toys & Games $11.83 224 1.5 51 BULK-7344d6ff
6562 Bulk Product 1c376e23 Books $412.25 193 0.7 54 BULK-2c7bf7f3
6563 Bulk Product 1dea3e84 Clothing $229.57 87 2.3 51 BULK-c4e16446
6564 Bulk Product 093089d1 Toys & Games $621.54 496 1.4 2 BULK-a88bfb64
6565 Bulk Product af607261 Toys & Games $521.99 210 4.1 24 BULK-607254e4
6566 Bulk Product 93ecc917 Clothing $133.48 165 4.2 15 BULK-63caabce
6567 Bulk Product c893cf77 Books $514.10 181 2.1 38 BULK-8d1db19a
6568 Bulk Product f1725954 Home & Garden $429.23 351 2.9 87 BULK-7463a784
6569 Bulk Product eb2502aa Electronics $680.00 360 0.8 81 BULK-398431ba
6570 Bulk Product 6abe205f Sports & Outdoors $672.87 411 3.1 40 BULK-6b6713de
6571 Bulk Product ff02412f Electronics $523.53 82 4.8 47 BULK-9660d73f
6572 Bulk Product 261eafac Clothing $571.01 458 1.6 66 BULK-24e77cc1
6573 Bulk Product 83de715a Toys & Games $532.18 346 0.5 10 BULK-0e80f4c0
6574 Bulk Product a9d7b162 Toys & Games $640.63 345 2.0 25 BULK-f070e24c
6575 Bulk Product 04777edc Home & Garden $195.31 247 2.0 81 BULK-051aa522
6576 Bulk Product 76cdcbbb Sports & Outdoors $220.11 396 4.8 52 BULK-852da56b
6577 Bulk Product 6f479ef1 Books $792.55 227 3.3 9 BULK-77d113f7
6578 Bulk Product 276a3041 Clothing $399.46 379 2.2 85 BULK-eceb4048
6579 Bulk Product 7c338157 Home & Garden $946.44 287 2.5 95 BULK-b0e592b8
6580 Bulk Product 8c3b9579 Electronics $599.71 31 2.8 49 BULK-4b9692fb
6581 Bulk Product e2fea821 Books $705.75 445 0.6 70 BULK-54538bb9
6582 Bulk Product 6fb9bf1f Clothing $307.26 455 4.2 30 BULK-7d5abae9
6583 Bulk Product 1d45c600 Books $761.40 433 0.6 70 BULK-ed546f3d
6584 Bulk Product 1cd3ed78 Home & Garden $379.70 306 0.9 17 BULK-13a4a0b0
6585 Bulk Product c43a1347 Sports & Outdoors $179.71 77 3.3 40 BULK-1957c50f
6586 Bulk Product a1d8a174 Electronics $330.49 275 3.3 28 BULK-487a70b4
6587 Bulk Product 0b7c0c01 Electronics $92.29 241 0.4 51 BULK-ad473414
6588 Bulk Product 19246902 Electronics $736.73 480 1.7 54 BULK-9c0ed30f
6589 Bulk Product d173e8b7 Books $481.97 98 1.9 15 BULK-a2eabb18
6590 Bulk Product 5d5d561f Toys & Games $128.34 403 0.1 4 BULK-9a762117
6591 Bulk Product 4b124b90 Clothing $485.73 210 0.6 83 BULK-bf632124
6592 Bulk Product c24d2071 Books $486.71 173 4.3 6 BULK-a55c08a5
6593 Bulk Product 01539a67 Toys & Games $486.38 224 5.0 13 BULK-48dd90ba
6594 Bulk Product 14bddede Sports & Outdoors $414.64 5 0.2 36 BULK-37db3cb6
6595 Bulk Product 1280336f Toys & Games $802.00 385 1.2 88 BULK-20091b15
6596 Bulk Product b217fac6 Clothing $950.19 87 4.3 48 BULK-4059af69
6597 Bulk Product daef2677 Home & Garden $371.19 235 0.8 47 BULK-531d8bbd
6598 Bulk Product 166996f0 Home & Garden $125.65 304 4.6 52 BULK-41ecd72b
6599 Bulk Product 1857412a Home & Garden $860.35 300 1.2 26 BULK-bc7b1a33
6600 Bulk Product 92bbd9b6 Electronics $182.55 17 4.9 47 BULK-b6631d93
6601 Bulk Product 7b8035b8 Home & Garden $381.15 494 3.2 10 BULK-e178e6c3
6602 Bulk Product 6d3a8201 Home & Garden $454.58 408 4.4 98 BULK-77b2bce6
6603 Bulk Product 79c9956f Home & Garden $466.56 33 1.8 48 BULK-5855ce66
6604 Bulk Product d540e431 Sports & Outdoors $874.01 236 3.5 96 BULK-8f65e28c
6605 Bulk Product 0a33f4ce Books $495.86 375 1.7 97 BULK-ad483b1c
6606 Bulk Product f7135630 Books $635.99 164 4.5 42 BULK-a99551b2
6607 Bulk Product dd1b8154 Sports & Outdoors $145.83 415 3.2 37 BULK-3f6c289f
6608 Bulk Product b712c208 Sports & Outdoors $903.51 367 3.9 91 BULK-b661998c
6609 Bulk Product 3930fab0 Clothing $118.20 81 2.6 69 BULK-5a112c1b
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