# Slow loading of Tag History in Perspective Time Series Chart

**URL:** <https://forum.inductiveautomation.com/t/slow-loading-of-tag-history-in-perspective-time-series-chart/115400>\
**Category:** Ignition\
**Tags:** ignition83, perspective\
**Created:** [May 6, 2026, 9:46am UTC](https://forum.inductiveautomation.com/t/slow-loading-of-tag-history-in-perspective-time-series-chart/115400 "2026-05-06T09:46:34Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![ziga.sraj](https://avatars.discourse-cdn.com/v4/letter/z/87869e/32.png) [@ziga.sraj](https://forum.inductiveautomation.com/u/ziga.sraj)\
**Post date:** [May 6, 2026, 9:46am UTC](https://forum.inductiveautomation.com/t/slow-loading-of-tag-history-in-perspective-time-series-chart/115400/1 "2026-05-06T09:46:34Z")

</div>

Hello,

Ignition version:8.3.4  
Approximate selected time range:8h  
Tag history provider: Core Historian

I am working in Ignition Perspective and I am using a **Time Series Chart** to display historical data for a selected tag.

The chart is bound using **Tag History** , so it returns a dataset with the history of the selected tag. The time range is configured by the user with:

- a numeric input field, where the user enters the amount of time

- a dropdown menu, where the user selects the time unit, for example minutes, hours, days, etc.

The idea is similar to how the time range selection works in the Power Chart.

My main issue is that when the view/chart is opened or time range is changed, the tag history takes a very long time to load. I am trying to understand why the loading time is so long and what the recommended approach would be to improve it.

Is there a way to reduce the loading time of the historical data in a Time Series Chart?

Are there any best practices for using Tag History bindings with Perspective Time Series Charts, especially when the time range is selected dynamically by the user?

Some specific areas I am wondering about are:

- limiting the amount of returned data

- using aggregation instead of raw values

- choosing a suitable interval or sample size

- avoiding expensive queries when the view first opens

- whether the Power Chart handles this differently than a manually configured Time Series Chart

Any advice or examples of best practices would be appreciated.

I have also attached screenshots of my current chart settings, Tag History binding configuration, and the input/dropdown components used to define the time range.

If any additional information is needed, such as the Ignition version, database type, tag history provider settings, query mode, sample size, or example tag configuration, I can provide it afterward.

Thank you.

 ![Posnetek zaslona 2026-05-06 114450](https://us1.discourse-cdn.com/inductiveautomation/original/3X/9/a/9a19204831c08b9de6d028b99dfd64fb5a765b3c.png)

 ![Posnetek zaslona 2026-05-06 114257](https://us1.discourse-cdn.com/inductiveautomation/original/3X/c/1/c1886d7f70641fb4cc39978bc995e4dd08407ba3.png)

 ![Posnetek zaslona 2026-05-06 114219](https://us1.discourse-cdn.com/inductiveautomation/original/3X/9/d/9d22b4c1957528278673d8ba36ecf6a903cf9ed2.png)

 ![Posnetek zaslona 2026-05-06 114142](https://us1.discourse-cdn.com/inductiveautomation/original/3X/c/0/c0d67b509701f253581fc792ce1b9a39177d2e9f.png)

 ![Posnetek zaslona 2026-05-06 114126](https://us1.discourse-cdn.com/inductiveautomation/original/3X/7/b/7bcc684e9f39d633d3b52310a91745889d1ca6e4.png)

 ![Posnetek zaslona 2026-05-06 113928](https://us1.discourse-cdn.com/inductiveautomation/original/3X/b/6/b6be80a0160f30798a910b991c0e1210563592e1.png)

---

<div class="post-metadata">

**Author:** ![ziga.sraj](https://avatars.discourse-cdn.com/v4/letter/z/87869e/32.png) [@ziga.sraj](https://forum.inductiveautomation.com/u/ziga.sraj)\
**Post date:** [May 7, 2026, 6:20am UTC](https://forum.inductiveautomation.com/t/slow-loading-of-tag-history-in-perspective-time-series-chart/115400/2 "2026-05-07T06:20:51Z")

</div>

The error became much more obvious after I updated Ignition to version 8.3.4.

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [May 7, 2026, 3:09pm UTC](https://forum.inductiveautomation.com/t/slow-loading-of-tag-history-in-perspective-time-series-chart/115400/3 "2026-05-07T15:09:36Z")

</div>

> [@ziga.sraj](#):
>
> the tag history takes a very long time to load

Your min time between samples is set to 100ms and you've opted to return asStored data. This dataset could be HUGE. You will either need to cap the time period to be VERY short, or change the return size to not use as stored and return a fixed number of samples.

---

<div class="post-metadata">

**Author:** ![Ryan\_Ahlstrom](https://avatars.discourse-cdn.com/v4/letter/r/ecb155/32.png) [@Ryan\_Ahlstrom](https://forum.inductiveautomation.com/u/Ryan_Ahlstrom)\
**Post date:** [May 7, 2026, 3:12pm UTC](https://forum.inductiveautomation.com/t/slow-loading-of-tag-history-in-perspective-time-series-chart/115400/4 "2026-05-07T15:12:06Z")

</div>

I would cut down the maximum number of returned datapoints, do you need to show ~11k on a single chart? Try going to 1,000 to 2,000 and see how it performs.

On the gateway, you can see what queries are taking awhile to execute, it could be that the query is taking longer than 1 second to execute and your compounding the issue with your 1 second refresh rate.

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [May 7, 2026, 3:17pm UTC](https://forum.inductiveautomation.com/t/slow-loading-of-tag-history-in-perspective-time-series-chart/115400/5 "2026-05-07T15:17:04Z")

</div>

> [@Ryan\_Ahlstrom](#):
>
> do you need to show ~11k on a single chart?

It's more like 288,000 points per tag, if you use the max capture rate of 100ms

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [May 7, 2026, 3:18pm UTC](https://forum.inductiveautomation.com/t/slow-loading-of-tag-history-in-perspective-time-series-chart/115400/6 "2026-05-07T15:18:19Z")

</div>

In my experience, with some logging to help, I found the history binding executes for tens of thousands of points in a snap (sub second) and the UI component chews on it for 100x the time.

Use Embr Charts.

---

<div class="post-metadata">

**Author:** ![bmusson](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/bmusson/32/87530_2.png) [@bmusson](https://forum.inductiveautomation.com/u/bmusson)\
**Post date:** [May 7, 2026, 3:20pm UTC](https://forum.inductiveautomation.com/t/slow-loading-of-tag-history-in-perspective-time-series-chart/115400/7 "2026-05-07T15:20:33Z")

</div>

> [@pturmel](#):
>
> Use Embr Charts.

The `Chart.js` component can easily handle 300k points without a fuss, and several million points if you want to push it with advanced techniques.

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [May 7, 2026, 3:22pm UTC](https://forum.inductiveautomation.com/t/slow-loading-of-tag-history-in-perspective-time-series-chart/115400/8 "2026-05-07T15:22:22Z")

</div>

I assume apex wouldn't handle this given it's svg?

Edit: AI suggests a 25-50k maximum point limit for svg's in browser

---

<div class="post-metadata">

**Author:** ![bmusson](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/bmusson/32/87530_2.png) [@bmusson](https://forum.inductiveautomation.com/u/bmusson)\
**Post date:** [May 7, 2026, 3:25pm UTC](https://forum.inductiveautomation.com/t/slow-loading-of-tag-history-in-perspective-time-series-chart/115400/9 "2026-05-07T15:25:41Z")

</div>

Yup, exactly. Apex gets crushed extremely quickly for large datasets.

> [@nminchin](#):
>
> AI suggests a 25-50k maximum point limit for svg's in browser

That agrees with my experience, 30k is pretty reasonable.

A really nice feature of Chart.js is its data decimation plugin:

> **[Data Decimation | Chart.js](https://www.chartjs.org/docs/latest/configuration/decimation.html)**
>
> Open source HTML5 Charts for your website

The default setting for the Embr Charts Chart.js component is to decimate to 1 sample per pixel, across the width of the chart. In other words, it won't render more points than pixels.

There are some restrictions on when Data Decimation will occur though, so I'd recommend reading the docs above.

Edit: Actually I'll just post them here 😆

> To use the decimation plugin, the following requirements must be met:
> 
> 1. The dataset must have an [`indexAxis`](https://www.chartjs.org/docs/latest/charts/line.html#general) of `'x'`
> 2. The dataset must be a line
> 3. The X axis for the dataset must be either a [`'linear'`](https://www.chartjs.org/docs/latest/axes/cartesian/linear.html) or [`'time'`](https://www.chartjs.org/docs/latest/axes/cartesian/time.html) type axis
> 4. Data must not need parsing, i.e. [`parsing`](https://www.chartjs.org/docs/latest/general/data-structures.html#dataset-configuration) must be `false`
> 5. The dataset object must be mutable. The plugin stores the original data as `dataset._data` and then defines a new `data` property on the dataset.
> 6. There must be more points on the chart than the threshold value. Take a look at the Configuration Options for more information

Point 5 is handled by the component.

---

<div class="post-metadata">

**Author:** ![ziga.sraj](https://avatars.discourse-cdn.com/v4/letter/z/87869e/32.png) [@ziga.sraj](https://forum.inductiveautomation.com/u/ziga.sraj)\
**Post date:** [May 8, 2026, 9:42am UTC](https://forum.inductiveautomation.com/t/slow-loading-of-tag-history-in-perspective-time-series-chart/115400/10 "2026-05-08T09:42:33Z")

</div>

Hello,

Thank you for all your answers.

Later during the day, as I looked deeper into this issue, I also came to the conclusion that the main problem is actually the amount of data that needs to be displayed. Because of this, I decided to change the way historical data is collected.

Specifically, I am considering changing the deadband mode to percentage. However, I still need to research what these percentages are based on. I assume that 100% represents the scale between the Engineering Low Limit and the Engineering High Limit, but I still need to confirm this.

I will also change the minimum time between data captures and the maximum time between data captures, but I still need to investigate what time intervals are most suitable for my measurements.

The measurements I have include various temperatures, water turbidity, flows, pressures, electrical current measurements, and VFD speed measurements.

With these changes, I believe the system performance should improve. However, if you have any other ideas, I am also willing to try them.

If these changes do not work, I will also try experimenting with Data Decimation.

Kind regards,
