Efficient Pagination with Skip/Take

Efficient pagination using OFFSET-FETCH on SQL Server.

Execution Time

76 ms

Page Size

25

Current Page

869 / 978

Total Records

24441

Items per page: 25 50 100 200

Page 869 Results Showing 21701 - 21725 of 24441

ID Name Category Price Stock Rating Reviews SKU
22260 Bulk Product 7c919e63 Electronics $741.89 337 0.5 60 BULK-27fa9941
22261 Bulk Product a10ab3eb Electronics $855.26 151 1.7 45 BULK-e73bc5b9
22262 Bulk Product 6ac870df Electronics $512.60 353 4.3 79 BULK-d85aaaf4
22263 Bulk Product 1af158b2 Clothing $158.67 139 3.8 99 BULK-32b22591
22264 Bulk Product 9f020f53 Home & Garden $727.44 276 1.9 88 BULK-288c02e8
22265 Bulk Product 174940da Books $411.52 131 0.5 37 BULK-f33e9d12
22266 Bulk Product eae2aae1 Sports & Outdoors $65.22 269 4.2 70 BULK-61245dfc
22267 Bulk Product f34446e6 Toys & Games $441.55 262 0.4 48 BULK-8c95bcc4
22268 Bulk Product 212ed2ce Home & Garden $859.34 414 3.8 33 BULK-3fe03092
22269 Bulk Product 5be10d29 Books $572.15 197 1.7 90 BULK-d77a7591
22270 Bulk Product 0367dc01 Toys & Games $444.07 149 3.7 54 BULK-f16013c6
22271 Bulk Product c347a618 Electronics $312.98 198 3.4 74 BULK-c843ea7a
22272 Bulk Product 4a57835e Clothing $373.24 371 2.8 64 BULK-16229f57
22273 Bulk Product 5fc374e7 Sports & Outdoors $963.70 114 3.6 1 BULK-37377278
22274 Bulk Product d8e8c6c0 Electronics $342.64 246 1.3 97 BULK-ec436e15
22275 Bulk Product aaaba11d Toys & Games $20.28 26 1.2 19 BULK-2302998c
22276 Bulk Product 1e0d7c0c Clothing $870.55 335 3.6 42 BULK-4249e0d3
22277 Bulk Product fb4d1b7d Sports & Outdoors $879.56 90 2.7 25 BULK-268663ca
22278 Bulk Product 8467e61e Home & Garden $209.21 120 1.0 63 BULK-71622a17
22279 Bulk Product 9423bea4 Home & Garden $78.88 229 3.5 30 BULK-a1f9f9c5
22280 Bulk Product c307b62a Electronics $572.30 405 1.3 44 BULK-6a780eb9
22281 Bulk Product 3b273e28 Books $59.87 283 1.2 11 BULK-4a97e543
22282 Bulk Product 18e890b8 Sports & Outdoors $825.21 180 3.0 72 BULK-5ae7f22f
22283 Bulk Product 6a88a8d6 Books $1,003.58 109 0.7 73 BULK-9664095b
22284 Bulk Product 6420fb0f Books $501.87 459 1.9 64 BULK-86403b77
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