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
The REST SuiteQL endpoint returns up to 1000 rows per page.
Measured round trip including query execution.
Parallel offset ranges. Each thread uses one concurrency slot.
Share of pages that need a repeat call due to errors or timeouts.
Your results
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.
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.
Related Tools
NetSuite API Concurrency Limit Calculator
Turn request rate and response time into concurrent requests, compare against your account limit, and find the maximum safe call rate.
Developer ToolsNetSuite API Retry Backoff Wait Time Calculator
Plan exponential backoff for NetSuite 429 and concurrency errors: delay per attempt, total wait with and without jitter, and worst case duration.
NetSuiteNetSuite File Cabinet Storage Growth Calculator
Forecast how much File Cabinet space scripts and attachments will consume over a retention period, including annual volume growth.
NetSuiteSuiteScript Scheduled Script Run Count Calculator
Estimate total governance units, records per run, number of reschedules and total runtime for a scheduled script before you write it.
More NetSuite tools
See all- NetSuite Saved Search Formula Generator
- NetSuite CSV Import Template Guide
- NetSuite Role Permission Matrix Worksheet
- NetSuite Inventory Costing Method Reference
- NetSuite Month End Close Checklist
- NetSuite License Cost Estimator
- NetSuite User Access Request Form Template
- NetSuite Custom Record Design Spec Template
- NetSuite SuiteScript Deployment Handover Template