Efficient Pagination with Skip/Take

Efficient pagination using OFFSET-FETCH on SQL Server.

Execution Time

25 ms

Page Size

50

Current Page

324 / 489

Total Records

24441

Items per page: 25 50 100 200

Page 324 Results Showing 16151 - 16200 of 24441

ID Name Category Price Stock Rating Reviews SKU
16710 Bulk Product a0eb27ff Books $768.41 10 1.3 67 BULK-de73f31d
16711 Bulk Product e4e60b17 Clothing $375.66 404 2.4 71 BULK-073ebb8d
16712 Bulk Product 0153d40b Toys & Games $176.99 57 2.5 53 BULK-2bc06274
16713 Bulk Product 6088f8a7 Clothing $487.69 95 4.9 82 BULK-3c5c7674
16714 Bulk Product 37c653d2 Books $208.96 466 0.4 88 BULK-ebe29fcf
16715 Bulk Product 5f7168c2 Toys & Games $804.67 320 2.2 51 BULK-b9919bd0
16716 Bulk Product ceefa1d6 Toys & Games $398.74 208 2.8 90 BULK-5cb4b450
16717 Bulk Product dc3b9cf9 Toys & Games $744.02 137 2.7 19 BULK-a577d9f8
16718 Bulk Product cdcd7f4e Electronics $488.06 156 4.5 31 BULK-fa1138af
16719 Bulk Product 58a75b03 Toys & Games $89.02 5 1.1 23 BULK-e927e852
16720 Bulk Product 8cb0e8d9 Books $904.31 156 4.0 97 BULK-642d1501
16721 Bulk Product 18767c69 Books $92.70 120 4.9 20 BULK-9cb13d7e
16722 Bulk Product 8c68d748 Clothing $722.66 131 2.5 11 BULK-cfe77cef
16723 Bulk Product 21f89338 Toys & Games $407.32 232 4.0 86 BULK-7e990ce1
16724 Bulk Product a03b8761 Electronics $977.93 274 3.7 22 BULK-8f34487e
16725 Bulk Product c056cb9b Toys & Games $963.22 222 3.8 10 BULK-4b244eae
16726 Bulk Product 2c2e328d Sports & Outdoors $981.88 169 2.6 92 BULK-e0e3f996
16727 Bulk Product 18d708b3 Sports & Outdoors $662.59 391 1.8 2 BULK-89cd8332
16728 Bulk Product f04e5bdc Home & Garden $29.65 491 2.5 77 BULK-51630771
16729 Bulk Product 08202b3d Home & Garden $861.72 317 0.4 22 BULK-26b230ce
16730 Bulk Product a1f662a6 Clothing $573.27 96 1.4 99 BULK-66f567df
16731 Bulk Product 1c24c348 Books $123.93 113 4.9 78 BULK-8d81c2d4
16732 Bulk Product 8995eaf7 Electronics $603.45 461 4.8 91 BULK-1c09badc
16733 Bulk Product c3aa591b Sports & Outdoors $989.25 422 2.1 21 BULK-d1e5832b
16734 Bulk Product 94e31284 Books $894.79 255 4.3 87 BULK-71be58c7
16735 Bulk Product b5e05d2e Home & Garden $493.64 458 1.1 43 BULK-b456157f
16736 Bulk Product 0f4296ba Home & Garden $179.32 298 1.7 51 BULK-a198eb56
16737 Bulk Product 5e98b220 Sports & Outdoors $95.81 344 0.8 46 BULK-f96164a9
16738 Bulk Product b37d156d Books $945.56 280 3.1 72 BULK-bde5c6e2
16739 Bulk Product e05f7e16 Books $164.88 108 3.2 11 BULK-b6f37d0a
16740 Bulk Product 32c22933 Clothing $47.49 109 3.9 88 BULK-1fd31d8d
16741 Bulk Product d072e116 Sports & Outdoors $977.60 164 2.1 76 BULK-71b2210d
16742 Bulk Product ffe3ba1c Clothing $171.12 176 4.2 53 BULK-dc6b17f8
16743 Bulk Product 4de71f21 Clothing $102.64 109 3.1 61 BULK-4e948e0b
16744 Bulk Product 638bc38b Toys & Games $254.72 238 2.0 90 BULK-33ebf439
16745 Bulk Product f69c50ba Electronics $996.68 366 0.3 36 BULK-604d9ed4
16746 Bulk Product 92329279 Home & Garden $22.25 113 0.0 96 BULK-b59db224
16747 Bulk Product 88634070 Clothing $215.05 306 4.9 64 BULK-73552f1c
16748 Bulk Product 7905f28a Books $243.34 270 1.9 76 BULK-f4eca0af
16749 Bulk Product 4184ee89 Clothing $317.64 65 4.6 16 BULK-4001b792
16750 Bulk Product a0cd5823 Electronics $541.71 222 1.2 3 BULK-440c90e6
16751 Bulk Product 5dadddbe Toys & Games $467.61 399 2.9 61 BULK-442e731c
16752 Bulk Product aa0aea06 Home & Garden $410.32 202 1.9 70 BULK-c2f92fdb
16753 Bulk Product b3f70ce2 Electronics $612.74 125 0.3 35 BULK-575fcee1
16754 Bulk Product 8f92060e Books $387.81 252 3.1 50 BULK-126979ca
16755 Bulk Product 642686d4 Toys & Games $898.23 312 0.8 28 BULK-d5141815
16756 Bulk Product dbe3ce0b Sports & Outdoors $495.12 431 0.0 12 BULK-1395376d
16757 Bulk Product 4e739e0b Books $227.05 383 0.3 38 BULK-a8d568e2
16758 Bulk Product 02f3f904 Home & Garden $470.54 165 4.9 3 BULK-ddf40765
16759 Bulk Product 77738a57 Clothing $766.70 25 2.6 59 BULK-462dbd32
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