Efficient Pagination with Skip/Take

Efficient pagination using OFFSET-FETCH on SQL Server.

Execution Time

7 ms

Page Size

25

Current Page

74 / 978

Total Records

24441

Items per page: 25 50 100 200

Page 74 Results Showing 1826 - 1850 of 24441

ID Name Category Price Stock Rating Reviews SKU
2061 Elite Books Product Pro Books $575.90 247 4.1 264 SKU-002061
2062 Premium Home & Garden Product Mini Home & Garden $90.32 149 4.2 786 SKU-002062
2063 Mega Health & Beauty Product Mini Health & Beauty $664.61 150 4.4 373 SKU-002063
2064 Super Sports & Outdoors Product Plus Sports & Outdoors $402.35 200 1.0 483 SKU-002064
2065 Elite Office Supplies Product Special Edition Office Supplies $453.91 323 4.9 301 SKU-002065
2066 Super Toys & Games Product Classic Toys & Games $696.71 493 4.6 377 SKU-002066
2067 Economy Office Supplies Product 2024 Office Supplies $508.92 55 3.5 394 SKU-002067
2069 Deluxe Electronics Product Plus Electronics $545.56 206 3.5 636 SKU-002069
2070 Mega Health & Beauty Product Pro Health & Beauty $251.31 420 2.0 566 SKU-002070
2071 Deluxe Office Supplies Product Classic Office Supplies $134.70 243 2.4 391 SKU-002071
2073 Deluxe Sports & Outdoors Product Plus Sports & Outdoors $542.34 81 2.0 563 SKU-002073
2074 Pro Home & Garden Product Advanced Home & Garden $438.45 343 4.9 377 SKU-002074
2075 Elite Office Supplies Product Max Office Supplies $761.64 38 4.5 163 SKU-002075
2076 Premium Sports & Outdoors Product Mini Sports & Outdoors $697.01 199 1.2 402 SKU-002076
2077 Super Books Product XL Books $954.92 129 1.2 712 SKU-002077
2078 Premium Sports & Outdoors Product Classic Sports & Outdoors $190.58 98 3.1 709 SKU-002078
2079 Professional Toys & Games Product Pro Toys & Games $749.31 491 3.0 417 SKU-002079
2080 Elite Food & Grocery Product Special Edition Food & Grocery $294.86 409 1.4 670 SKU-002080
2081 Mega Office Supplies Product Plus Office Supplies $890.77 172 1.7 928 SKU-002081
2082 Economy Electronics Product Plus Electronics $410.13 60 1.5 891 SKU-002082
2084 Elite Health & Beauty Product Lite Health & Beauty $992.91 310 2.3 915 SKU-002084
2085 Super Sports & Outdoors Product Special Edition Sports & Outdoors $507.41 157 3.0 228 SKU-002085
2086 Premium Books Product Advanced Books $130.56 308 2.2 334 SKU-002086
2088 Ultra Books Product Mini Books $424.98 222 1.6 185 SKU-002088
2089 Elite Automotive Product 2024 Automotive $403.93 1 3.6 962 SKU-002089
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