Efficient Pagination with Skip/Take

Efficient pagination using OFFSET-FETCH on SQL Server.

Execution Time

8 ms

Page Size

25

Current Page

16 / 978

Total Records

24441

Items per page: 25 50 100 200

Page 16 Results Showing 376 - 400 of 24441

ID Name Category Price Stock Rating Reviews SKU
415 Deluxe Office Supplies Product Classic Office Supplies $380.05 290 2.3 747 SKU-000415
417 Premium Health & Beauty Product 2024 Health & Beauty $962.68 381 3.7 18 SKU-000417
418 Super Office Supplies Product XL Office Supplies $526.83 423 1.5 881 SKU-000418
419 Economy Electronics Product Special Edition Electronics $715.88 361 4.3 972 SKU-000419
421 Economy Home & Garden Product Plus Home & Garden $996.91 340 1.4 978 SKU-000421
422 Standard Toys & Games Product Classic Toys & Games $847.38 102 1.0 691 SKU-000422
424 Standard Automotive Product Pro Automotive $403.93 168 3.2 757 SKU-000424
426 Elite Clothing Product Advanced Clothing $354.63 216 2.7 320 SKU-000426
427 Elite Toys & Games Product XL Toys & Games $101.48 204 1.8 600 SKU-000427
428 Deluxe Home & Garden Product Advanced Home & Garden $791.45 257 4.9 236 SKU-000428
429 Elite Automotive Product Pro Automotive $525.05 446 1.4 37 SKU-000429
430 Pro Electronics Product Lite Electronics $496.63 469 3.6 982 SKU-000430
431 Ultra Sports & Outdoors Product Advanced Sports & Outdoors $183.86 413 2.9 85 SKU-000431
432 Mega Health & Beauty Product Advanced Health & Beauty $554.43 164 3.1 912 SKU-000432
433 Pro Home & Garden Product Mini Home & Garden $950.25 376 4.3 635 SKU-000433
434 Premium Office Supplies Product Classic Office Supplies $848.24 82 3.0 847 SKU-000434
435 Professional Food & Grocery Product Lite Food & Grocery $96.80 219 2.8 279 SKU-000435
436 Mega Food & Grocery Product Special Edition Food & Grocery $657.22 438 1.5 843 SKU-000436
438 Mega Sports & Outdoors Product Max Sports & Outdoors $238.80 182 1.0 324 SKU-000438
440 Premium Health & Beauty Product Advanced Health & Beauty $753.49 139 1.9 412 SKU-000440
443 Standard Electronics Product Special Edition Electronics $575.64 105 2.7 720 SKU-000443
444 Premium Clothing Product Advanced Clothing $645.05 446 4.4 624 SKU-000444
445 Standard Sports & Outdoors Product Special Edition Sports & Outdoors $654.70 284 4.6 251 SKU-000445
446 Standard Home & Garden Product Max Home & Garden $814.15 411 3.8 894 SKU-000446
447 Super Health & Beauty Product Max Health & Beauty $890.18 322 4.1 921 SKU-000447
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