Efficient Pagination with Skip/Take

Efficient pagination using OFFSET-FETCH on SQL Server.

Execution Time

17 ms

Page Size

25

Current Page

351 / 978

Total Records

24441

Items per page: 25 50 100 200

Page 351 Results Showing 8751 - 8775 of 24441

ID Name Category Price Stock Rating Reviews SKU
9310 Bulk Product 1e39b3a7 Sports & Outdoors $746.18 49 4.2 62 BULK-eed86f53
9311 Bulk Product dbf2f821 Electronics $329.77 199 2.6 53 BULK-54065a6f
9312 Bulk Product 86d473d7 Sports & Outdoors $997.79 181 4.5 76 BULK-3d6cb7c8
9313 Bulk Product f93e7aa9 Home & Garden $420.20 326 4.2 72 BULK-de5a4cb3
9314 Bulk Product e0037276 Home & Garden $16.90 348 0.4 2 BULK-4ba3ec8f
9315 Bulk Product dc2a3280 Toys & Games $193.79 248 2.6 28 BULK-3e1b6174
9316 Bulk Product 6aefeb56 Home & Garden $568.43 478 1.9 78 BULK-bf47c6be
9317 Bulk Product afef4970 Toys & Games $882.67 346 4.5 60 BULK-671c1686
9318 Bulk Product e71eab00 Toys & Games $460.33 60 0.1 24 BULK-d5c3344d
9319 Bulk Product cc73f463 Home & Garden $81.68 323 0.9 93 BULK-076911f4
9320 Bulk Product 5464b185 Home & Garden $908.58 488 0.1 18 BULK-cdbc6f09
9321 Bulk Product a984d986 Books $210.24 435 0.8 79 BULK-7b149cf9
9322 Bulk Product 75b96cea Sports & Outdoors $509.99 410 2.1 31 BULK-29abcd7a
9323 Bulk Product 2103cff5 Home & Garden $252.60 66 4.1 17 BULK-482a34b6
9324 Bulk Product 083cd2a8 Sports & Outdoors $1,001.68 278 4.3 67 BULK-fcad2c13
9325 Bulk Product 98f79f36 Electronics $255.73 248 4.0 83 BULK-b342b3ff
9326 Bulk Product 50efa696 Books $829.99 344 4.5 2 BULK-6a5f39ef
9327 Bulk Product 7f6db982 Sports & Outdoors $885.30 223 0.2 15 BULK-b10b2d84
9328 Bulk Product b7cab851 Clothing $881.60 83 2.4 82 BULK-4bc74a26
9329 Bulk Product 72299f79 Electronics $437.90 170 1.5 5 BULK-41a74d6a
9330 Bulk Product f1588782 Home & Garden $40.44 329 2.2 66 BULK-20ff2fc6
9331 Bulk Product eb5b9d77 Sports & Outdoors $104.28 250 3.0 18 BULK-2e661802
9332 Bulk Product 21848b70 Toys & Games $120.33 395 2.6 39 BULK-76e38929
9333 Bulk Product 2e7d145f Electronics $142.15 347 2.2 10 BULK-78687737
9334 Bulk Product 7898d9f4 Home & Garden $443.69 240 3.8 15 BULK-cb4e7b8c
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