Efficient Pagination with Skip/Take

Efficient pagination using OFFSET-FETCH on SQL Server.

Execution Time

14 ms

Page Size

25

Current Page

73 / 978

Total Records

24441

Items per page: 25 50 100 200

Page 73 Results Showing 1801 - 1825 of 24441

ID Name Category Price Stock Rating Reviews SKU
2035 Deluxe Home & Garden Product XL Home & Garden $457.89 201 1.5 253 SKU-002035
2036 Professional Electronics Product Lite Electronics $389.02 152 1.2 254 SKU-002036
2037 Professional Home & Garden Product XL Home & Garden $538.07 294 2.4 292 SKU-002037
2038 Elite Sports & Outdoors Product Special Edition Sports & Outdoors $99.77 9 2.4 347 SKU-002038
2039 Professional Electronics Product XL Electronics $419.57 76 1.6 427 SKU-002039
2040 Pro Books Product Special Edition Books $598.35 275 4.4 579 SKU-002040
2041 Pro Health & Beauty Product Max Health & Beauty $284.45 320 4.8 495 SKU-002041
2042 Economy Sports & Outdoors Product Max Sports & Outdoors $647.07 408 4.0 470 SKU-002042
2043 Ultra Electronics Product Advanced Electronics $896.58 222 2.3 76 SKU-002043
2044 Economy Sports & Outdoors Product XL Sports & Outdoors $919.66 448 1.0 229 SKU-002044
2045 Ultra Automotive Product 2024 Automotive $624.48 250 1.9 477 SKU-002045
2046 Mega Sports & Outdoors Product 2024 Sports & Outdoors $861.96 166 3.0 175 SKU-002046
2047 Pro Toys & Games Product Pro Toys & Games $202.22 118 4.9 92 SKU-002047
2048 Premium Home & Garden Product Classic Home & Garden $457.71 301 3.7 645 SKU-002048
2049 Ultra Clothing Product Plus Clothing $235.80 387 4.1 587 SKU-002049
2050 Pro Books Product XL Books $342.76 492 1.2 770 SKU-002050
2051 Standard Sports & Outdoors Product Advanced Sports & Outdoors $58.95 326 1.6 334 SKU-002051
2053 Pro Toys & Games Product Max Toys & Games $680.25 293 4.2 775 SKU-002053
2054 Mega Clothing Product Max Clothing $157.86 241 1.4 203 SKU-002054
2055 Professional Clothing Product XL Clothing $323.65 314 1.6 315 SKU-002055
2056 Economy Clothing Product Special Edition Clothing $743.65 393 4.1 665 SKU-002056
2057 Mega Office Supplies Product 2024 Office Supplies $725.90 170 3.2 623 SKU-002057
2058 Super Health & Beauty Product Special Edition Health & Beauty $557.24 251 3.7 11 SKU-002058
2059 Super Health & Beauty Product Pro Health & Beauty $825.14 186 4.0 843 SKU-002059
2060 Professional Health & Beauty Product 2024 Health & Beauty $983.22 87 3.0 408 SKU-002060
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