Efficient Pagination with Skip/Take

Efficient pagination using OFFSET-FETCH on SQL Server.

Execution Time

73 ms

Page Size

50

Current Page

91 / 489

Total Records

24441

Items per page: 25 50 100 200

Page 91 Results Showing 4501 - 4550 of 24441

ID Name Category Price Stock Rating Reviews SKU
5060 Bulk Product c90fbf63 Electronics $151.82 83 1.7 53 BULK-983f7898
5061 Bulk Product 9f22df81 Books $300.93 387 2.6 45 BULK-1df44f12
5062 Bulk Product d91f9482 Home & Garden $270.86 378 1.9 44 BULK-de79dbb7
5063 Bulk Product fd0f74bf Sports & Outdoors $886.48 25 0.3 96 BULK-1a46c33c
5064 Bulk Product 029f1dbe Books $128.00 257 4.1 16 BULK-83ecd1e4
5065 Bulk Product fcd140a6 Books $663.36 192 2.2 73 BULK-8a79a0c3
5066 Bulk Product 50fdcbc9 Home & Garden $817.26 235 3.6 72 BULK-4ad22546
5067 Bulk Product 332ac89a Clothing $14.66 486 4.0 57 BULK-b90ab510
5068 Bulk Product dfb64bd1 Home & Garden $544.01 352 3.1 1 BULK-df322d7a
5069 Bulk Product e597ad13 Clothing $624.13 283 4.7 34 BULK-281e8552
5070 Bulk Product c70c1db1 Clothing $467.82 260 4.6 79 BULK-fcd43ce3
5071 Bulk Product bd77fd42 Sports & Outdoors $663.26 370 0.1 52 BULK-d38ee2db
5072 Bulk Product 483b1258 Toys & Games $776.18 139 0.7 30 BULK-95cdddd9
5073 Bulk Product bd6e7698 Sports & Outdoors $840.76 267 1.8 59 BULK-cc0d111a
5074 Bulk Product 1db076b3 Home & Garden $349.01 63 3.2 58 BULK-e2994625
5075 Bulk Product e246d39e Books $682.47 176 1.5 49 BULK-76e4778c
5076 Bulk Product bf344029 Electronics $257.89 14 0.9 62 BULK-de9d0d49
5077 Bulk Product b691d744 Electronics $88.72 411 3.9 89 BULK-53cc3318
5078 Bulk Product c953ef04 Toys & Games $803.93 347 1.4 67 BULK-64c5e25f
5079 Bulk Product 001df130 Books $370.99 108 2.4 91 BULK-d1070f0f
5080 Bulk Product f345e7fd Toys & Games $405.10 257 4.5 79 BULK-6b12047a
5081 Bulk Product 870480e5 Toys & Games $282.14 36 3.6 55 BULK-e002532c
5082 Bulk Product 24c4e4fc Books $326.00 140 4.8 83 BULK-60acf56e
5083 Bulk Product 47fe305a Electronics $610.59 53 1.6 89 BULK-a4cf2e45
5084 Bulk Product 7f0aaf8f Home & Garden $336.55 492 4.2 29 BULK-5f1a1919
5085 Bulk Product 1b1b9fbc Toys & Games $370.57 292 2.3 16 BULK-d9079113
5086 Bulk Product 388af76b Clothing $577.77 99 0.3 43 BULK-5f3494ad
5087 Bulk Product c8be8d2f Toys & Games $923.66 470 4.1 40 BULK-8632a0f4
5088 Bulk Product 677647bf Books $790.42 437 2.1 74 BULK-21db85b4
5089 Bulk Product abe82ddb Electronics $826.09 1 4.3 94 BULK-856a1582
5090 Bulk Product 6d0e61d8 Toys & Games $779.79 39 2.4 9 BULK-d1c67cd1
5091 Bulk Product 7689348b Home & Garden $850.47 355 2.6 31 BULK-8b48a25d
5092 Bulk Product 4f67de8a Books $42.01 194 3.9 24 BULK-2791b421
5093 Bulk Product ecd2d52a Books $447.22 250 2.2 0 BULK-5c867d37
5094 Bulk Product a6270d7b Books $421.16 83 0.1 97 BULK-e36bda46
5095 Bulk Product eba66682 Home & Garden $89.77 308 0.0 20 BULK-3fcd7bae
5096 Bulk Product 348867f4 Books $213.44 165 4.0 97 BULK-7db851bb
5097 Bulk Product 83248349 Electronics $337.16 251 3.6 48 BULK-efe01ce9
5098 Bulk Product 7abbeb89 Toys & Games $562.56 459 2.0 44 BULK-db2f297c
5099 Bulk Product eeaee5a5 Books $420.48 471 4.9 98 BULK-fac2c21a
5100 Bulk Product 7f2dd930 Toys & Games $40.27 297 2.3 31 BULK-5b0ff847
5101 Bulk Product 46d3376d Toys & Games $529.31 314 3.6 5 BULK-016e9127
5102 Bulk Product 1bd4d697 Home & Garden $321.40 389 3.2 27 BULK-aeaaf66b
5103 Bulk Product cada88ed Clothing $512.81 267 2.2 1 BULK-220d339c
5104 Bulk Product 379ec181 Clothing $214.09 258 4.4 61 BULK-f29c8ad2
5105 Bulk Product 9e8dbda1 Toys & Games $229.85 162 1.6 95 BULK-023489d8
5106 Bulk Product 2a9cc591 Toys & Games $982.66 171 2.3 9 BULK-06154e8f
5107 Bulk Product e1885da7 Sports & Outdoors $879.68 203 2.4 55 BULK-b61afb9f
5108 Bulk Product 8cbe618c Home & Garden $652.28 103 2.9 89 BULK-2202d3b2
5109 Bulk Product a6cdc97f Toys & Games $878.69 376 0.7 20 BULK-28fba2e1
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