After the TimescaleDB-backed historian provider is selected and validated, long-range aggregated trends can return without changing the native Ignition tag and query workflow. Start with what the operator sees: a short trend may load normally while a year view stalls, takes tens of seconds, or exhausts historian memory. That pattern points toward the historical query path rather than the live tag value.
What is the screen telling you?
Record the displayed value, requested time window, aggregation mode, point count, response time, and any memory error. Change one input at a time. The first decision is whether the fault follows the tag, the view, or the amount of history scanned.
| Reading | What the outcome means | Next check |
|---|---|---|
| Live value and timestamp | A correct live value shows that the screen can resolve the tag and receive current data. | Compare live and historical bindings. |
| Short versus long time window | Performance that degrades with the window indicates a historian query-scaling problem. | Identify the active historian provider. |
| Raw versus aggregated query | A slow raw query may simply return too many rows. A slow fixed-point aggregate indicates inefficient scanning or aggregation. | Inspect query shape and provider behavior. |
| One view versus every client | One affected view points to its binding or query configuration. Broad failure points toward the provider, database, or gateway resources. | Repeat the same query outside the affected view. |
| Out-of-memory result | The historian path is materializing or processing more data than available memory can sustain. | Stop repeating the largest query and test bounded windows. |
Is the tag wrong, or is the history binding wrong?
The tag is right; the binding is wrong when the live value is correct but the trend requests another tag path, historian provider, aggregation mode, or time range. Trace the request in this order: screen component, binding or script, tag path, historian provider, database query.
- Read the tag path used by the live display.
- Read the path used by the historical binding or script. Match spelling, folder structure, and renamed tags.
- Identify whether the screen uses a native history binding or a script that calls
system.historian. - Capture the provider selected by the history request. A valid tag can still be queried from the wrong provider.
- Run the same tag, time window, point count, and aggregation mode through a second native query path. If both paths are slow, continue to the provider check. If only the view is slow, correct its binding.
The TimescaleDB-backed module extends system.historian and retains the native tag and query experience. Existing tag groups, scripts, and views can therefore use the new provider, but every provider reference still needs to resolve to the intended configuration.
Which historian provider is answering the query?
Read the configured provider at the tag group and at any explicit history query. An explicit provider in a script or binding can override the path an engineer expects from the tag configuration.
| Setting | Location to inspect | Effect |
|---|---|---|
| History enabled | Tag or tag group configuration | Determines whether values are recorded. |
| Historian provider | Tag group, binding, or script input | Selects the storage and query engine. |
| Tag path | View binding or script | Selects the historical series, including its renamed identity. |
| Aggregation mode | History binding or query call | Controls how samples are reduced into returned points. |
| Requested point count | History binding or query call | Defines the output resolution and aggregation work. |
| Time range | Operator selection or query arguments | Controls the amount of history considered. |
The module also supports renaming history tags from Ignition without editing underlying SQL tables. That removes a common cause of broken historical identity, but it does not correct a view that still contains an obsolete or different tag path. Compare the configured path with the path emitted by the binding.
Does the query shape expose the scaling limit?
A fixed-point trend should not retrieve every stored sample and aggregate the full result in the client. Database-side aggregation reduces values near storage and returns the requested result set. The TimescaleDB-backed provider pushes its default aggregation into TimescaleDB, which is the mechanism behind its flatter response across longer windows.
Use a controlled query to separate query design from provider performance. Keep the tag, Average mode, and 1,000 returned points fixed; then test week, month, and year windows. Record the median rather than one warm or cold execution. Also watch gateway and database memory. Do not compare a 1,000-point aggregate from one provider with raw history from another.
If only raw history is slow, reduce the requested rows or use aggregation appropriate to the display. If an identical aggregate grows sharply with the time window, continue with the provider comparison. If response time remains flat but the screen is slow, inspect client rendering, transformations, and repeated binding executions.
What do the benchmark branches mean?
A reported comparison used a single tag in an approximately 158-million-row dataset. Each query requested a 1,000-point aggregate through queryAggregatedPoints in Average mode, with the median of five runs.
| Window | TimescaleDB-backed module | SQL historian on TimescaleDB | SQL historian on PostgreSQL | Core Historian |
|---|---|---|---|---|
| Week | 25 ms | 489 ms | 493 ms | 7.7 s |
| Month | 38 ms | 2.7 s | 3.1 s | 12.3 s |
| Year | 56 ms | 37.3 s | 35.8 s | Out of memory |
The resolving branch is provider-side aggregation when fixed-output queries slow as the scanned window grows. Both a conventional SQL historian using TimescaleDB and the dedicated module store data in TimescaleDB, but they do not execute the same history-query architecture. The dedicated provider is the better branch for this symptom because it pushes default aggregation into the database while preserving the native Ignition interface.
These measurements define the test, not a guaranteed site response. Database sizing, tag density, retention, concurrent workloads, storage, and query shape still determine local latency. Repeat the controlled test against production-like data before selecting the provider.
How do you apply and verify the resolving branch?
The stated module target is Ignition 8.3. Compatibility with Ignition 8.1 is not established, so read the module compatibility information before planning an 8.1 deployment.
- Capture a baseline for one representative tag: provider, tag path, time range,
Averagemode, 1,000 points, execution time, and memory behavior. - Install the TimescaleDB-backed historian module using its supplied installation procedure and configure it as a historian provider.
- Point the test tag group or explicit query at the new provider. Keep the existing view and
system.historianquery shape unchanged for the first comparison. - Confirm that new values reach the provider with correct values and timestamps. Treat access to older history as a separate migration or routing decision; changing providers alone does not demonstrate that prior records moved.
- Run week, month, and year windows with identical inputs. Use five runs per window and compare their medians.
- Rename a test history tag through Ignition if rename handling is part of the acceptance test, then confirm that its history remains queryable without editing SQL tables.
- Validate annotations and metadata if the application depends on contextual information traveling with historian values.
- Exercise existing tag groups, scripts, and views. Confirm returned point counts, timestamps, values, provider selection, and absence of memory failure.
FAQ
Can I use the TimescaleDB historian module with Ignition 8.1?
The stated target is Ignition 8.3. Check the module compatibility information before attempting an Ignition 8.1 installation.
Does using TimescaleDB through the SQL historian give the same performance?
No. In the stated year test, the dedicated module returned in 56 ms while the SQL historian on TimescaleDB took 37.3 s. The dedicated provider pushes default aggregation into TimescaleDB through its historian integration.
Can I keep existing Ignition history scripts and views?
The module extends system.historian and is configured as a historian provider, so existing tag groups, scripts, and views retain the native query model. Verify every explicit provider reference and tag path during commissioning.
Does a fast week query prove the historian scaling problem is fixed?
No. Run the same tag in Average mode at 1,000 points for week, month, and year windows, take the median of five runs, and confirm correct values, timestamps, point counts, provider selection, and stable memory on the final year query.