NetSuiteFree calculatorPDF, Excel, Word exportNetSuite

NetSuite SuiteQL Pagination Time Calculator

Pulling a few hundred thousand rows out of NetSuite through SuiteQL is a paging problem. Page size, latency and parallelism decide whether the job takes minutes or hours, and this tool shows the trade-off.

Your numbers

rows
1,000 rows

The REST SuiteQL endpoint returns up to 1000 rows per page.

ms

Measured round trip including query execution.

threads

Parallel offset ranges. Each thread uses one concurrency slot.

%

Share of pages that need a repeat call due to errors or timeouts.

Your results

Pages required
450
Total extraction time
413.1
Seconds, assuming threads run fully in parallel.
Total calls including retries
459
Total extraction time in minutes
6.9 min
Throughput
1,089
Rows per second.

Offset pagination can slow down on deep offsets and the dataset can change between pages. For consistent extracts, filter by a stable key or last modified range instead of relying on offset alone.

Save results:

Extraction seconds vs rows per page

Sweeps Rows per page from 100 to 1000, holding your other inputs fixed.

NetSuite extract design

Optional: get a short plan for incremental extraction from NetSuite to your warehouse.

Optional. The tool and every export work without this. No spam.

How to use it

Enter the number of rows you expect, the page size you will request and the time one page takes. If you plan to run several offset ranges at once, set the number of threads. The retry percentage adds extra calls for pages that fail and must be repeated. The result shows pages, total calls, extraction time and rows per second, and the chart shows how page size changes the total.

The calculation

Pages equal rows divided by page size, rounded up. Calls equal pages inflated by the retry share. With threads running in parallel, elapsed time is the number of calls per thread multiplied by the time per call. Smaller pages mean more round trips and more fixed overhead, so the larger page size is usually faster until memory or response size becomes a problem. Parallel threads divide time almost linearly but consume concurrency slots shared with other integrations.

  • Pages = ceil(rows / page size)
  • Calls = pages x (1 + retry share)
  • Time = ceil(calls / threads) x time per page
  • Throughput = rows / time

Reading the result

If a daily full extract takes more than a few hours, move to incremental loads keyed on last modified date. If it is under an hour, a full extract may still be simplest. Watch the thread count against your account concurrency limit, because eight threads can occupy most of a default allowance and cause errors for every other integration.

Common mistakes

Deep offsets can slow down as the server skips more rows, so do not assume time per page is constant at row 400,000. Use an ORDER BY on a unique key so pages do not overlap or skip rows. Also remember that records can change while you page, so a long extract may miss or duplicate rows without a stable filter.

  • Always add a deterministic ORDER BY, such as id
  • Prefer incremental extracts with a lastmodifieddate filter
  • Keep threads below your concurrency headroom
  • Retry with backoff, not immediately

Frequently Asked Questions

What is the maximum SuiteQL page size?

The REST SuiteQL endpoint returns up to 1000 rows per request, and you page using limit and offset. The N/query module has its own paging options. Check current documentation for your integration method.

Is offset paging reliable?

It works for static data. If rows are inserted or modified during the extract, pages can overlap or skip. Use a stable ORDER BY and a modified-date window for production loads.

How many threads should I use?

Use fewer than your free concurrency slots. Two to four threads is a common starting point. Measure latency as you add threads, since it often rises under load.

Should I use saved searches instead?

SuiteQL is generally easier for joins and ad hoc extracts, while saved searches suit existing business logic. Compare speed on your own data because results differ by record type.

Netray can help build a reliable NetSuite to warehouse extract with incremental logic, retries and monitoring.