Efficient Pagination with Skip/Take

Efficient pagination using OFFSET-FETCH on SQL Server.

Execution Time

55 ms

Page Size

50

Current Page

149 / 489

Total Records

24441

Items per page: 25 50 100 200

Page 149 Results Showing 7401 - 7450 of 24441

ID Name Category Price Stock Rating Reviews SKU
7960 Bulk Product cc984e67 Toys & Games $82.25 335 2.5 27 BULK-0720b38c
7961 Bulk Product 2a60ba83 Clothing $610.25 361 5.0 78 BULK-482ec2c5
7962 Bulk Product da8db9c9 Books $245.79 347 4.9 20 BULK-1c642cc7
7963 Bulk Product d4099c82 Toys & Games $340.07 43 4.3 24 BULK-2dcdc164
7964 Bulk Product d56a22ca Books $683.81 56 3.7 49 BULK-314d4bbd
7965 Bulk Product ed6dc6d0 Home & Garden $539.14 190 5.0 20 BULK-44f9e48c
7966 Bulk Product f9e190bf Sports & Outdoors $409.81 29 4.6 38 BULK-26e070a0
7967 Bulk Product 36dc36f3 Electronics $761.82 305 0.6 52 BULK-9fae5e51
7968 Bulk Product 34bde415 Clothing $883.90 48 0.7 0 BULK-2f5bfb82
7969 Bulk Product 5953bf10 Electronics $467.50 443 4.1 53 BULK-c27483cd
7970 Bulk Product 99d83042 Sports & Outdoors $1,001.35 280 4.6 0 BULK-1ee30444
7971 Bulk Product b3c19ba1 Electronics $92.86 444 2.8 90 BULK-1a762360
7972 Bulk Product 09c85b21 Books $933.09 276 4.2 84 BULK-2d22d34e
7973 Bulk Product 10043a8d Books $661.99 58 4.2 74 BULK-fba7c83c
7974 Bulk Product 4141e326 Electronics $846.11 391 2.4 18 BULK-cf31c0af
7975 Bulk Product 77f6dabc Home & Garden $1,000.58 51 1.8 22 BULK-f7f6c267
7976 Bulk Product d0587502 Sports & Outdoors $280.26 487 0.1 28 BULK-695408b2
7977 Bulk Product b9c530dc Clothing $57.16 196 0.5 35 BULK-6ea46584
7978 Bulk Product 8905938b Home & Garden $52.08 71 3.9 45 BULK-c69a0283
7979 Bulk Product 394b227a Home & Garden $959.84 369 1.2 88 BULK-be1e2466
7980 Bulk Product dadf99b0 Books $429.82 298 2.4 91 BULK-a96d3e07
7981 Bulk Product fcbe18c5 Electronics $19.34 499 2.6 74 BULK-0d19f8b5
7982 Bulk Product 9aa82458 Books $575.49 349 0.8 3 BULK-24b0ac8b
7983 Bulk Product 0f620f29 Electronics $541.25 214 1.6 28 BULK-c1062e64
7984 Bulk Product b87b2258 Home & Garden $594.84 498 3.8 51 BULK-82e9e78a
7985 Bulk Product bfd1da5e Home & Garden $872.25 51 1.5 90 BULK-3b4bd2cf
7986 Bulk Product 84906851 Books $831.18 473 4.6 70 BULK-0c932d2b
7987 Bulk Product 9b15827d Clothing $871.77 89 3.7 13 BULK-5b3f4fe3
7988 Bulk Product 74a48dfa Electronics $310.89 218 2.9 30 BULK-77d688d9
7989 Bulk Product 2e18829c Home & Garden $876.63 169 3.9 34 BULK-04f9876e
7990 Bulk Product e1f2d511 Books $20.72 332 4.0 37 BULK-f950de95
7991 Bulk Product 31392906 Toys & Games $263.36 221 1.3 53 BULK-9e9b99d4
7992 Bulk Product 7b239b00 Home & Garden $63.75 14 4.2 13 BULK-2fbbc1e2
7993 Bulk Product f8881ef7 Books $839.94 305 3.1 22 BULK-a19d5ddc
7994 Bulk Product 4c8a355c Books $73.38 427 2.5 91 BULK-64561678
7995 Bulk Product 191d60d4 Home & Garden $612.34 53 0.7 98 BULK-46f50640
7996 Bulk Product 9518c035 Home & Garden $873.10 249 1.9 87 BULK-40429307
7997 Bulk Product 37e15808 Toys & Games $12.61 18 0.6 45 BULK-dd14165e
7998 Bulk Product 4d2e7733 Electronics $480.36 82 3.1 70 BULK-4d824bc5
7999 Bulk Product 3a083b74 Clothing $228.29 303 1.0 28 BULK-0fd3a97a
8000 Bulk Product 2e3c7995 Books $238.93 350 4.9 23 BULK-403c7827
8001 Bulk Product 02d8774a Books $941.03 456 4.6 27 BULK-a54710e7
8002 Bulk Product 845370cf Books $833.53 443 0.3 69 BULK-e9393dfd
8003 Bulk Product 75daab32 Toys & Games $756.16 404 3.6 18 BULK-1227a1be
8004 Bulk Product 59dc250a Electronics $562.86 232 3.5 5 BULK-0271c0c8
8005 Bulk Product 0edec40b Toys & Games $37.35 187 4.8 66 BULK-d6ec1d8f
8006 Bulk Product 3bfa6512 Toys & Games $560.60 215 4.5 71 BULK-16620f19
8007 Bulk Product 1611c281 Electronics $299.30 210 4.9 13 BULK-25698713
8008 Bulk Product 468c8293 Clothing $407.13 45 3.6 39 BULK-06606503
8009 Bulk Product 5123c041 Electronics $372.93 179 3.0 46 BULK-4317176a
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