# Custom Datasets Efficiency

**URL:** <https://forum.inductiveautomation.com/t/custom-datasets-efficiency/104899>\
**Category:** Ignition\
**Tags:** ignition81, perspective, scripting, database\
**Created:** [April 9, 2025, 3:10pm UTC](https://forum.inductiveautomation.com/t/custom-datasets-efficiency/104899 "2025-04-09T15:10:50Z")\
**Posts on this page:** 1\
**Showing post:** 5

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [April 9, 2025, 3:31pm UTC](https://forum.inductiveautomation.com/t/custom-datasets-efficiency/104899/5 "2025-04-09T15:31:36Z")

</div>

Okay, yeah, so don't do that. If you need a binding to poll, use an expression `now(updateRateMilliseconds)` - at least if you're throwing that away it's going to run in a few microseconds, and not require a full network IO hop to retrieve history data that's then immediately discarded.

But all that's a tangent. Let's go back a step:  
You have a bunch of individual tags here that you're trying to assemble into a dataset for display on a view. That's fine.  
Are each of these individual tags supposed to be stored into a database? You almost certainly want them to be logged **individually** - not in some kind of pseudo dataset format. If you just need trends over time, that's a fine job for the tag historian. If you want **event driven** storage, such as "when I change X, do Y", then you **need** either transaction groups or to just script database updates. This is a totally separate problem from the live display in a table problem, and should be treated as such.

The "live display of a sequence of values" problem is best handled with bindings, so that you don't have to do the polling yourself and can reuse our tag subscription mechanisms for efficiency. Unfortunately it's _slightly_ convoluted to do this - you need to configure an inner view to use for each row of the table, and provide it tag **paths** to use internally in indirect bindings:

> [@Script to generate bindings](https://forum.inductiveautomation.com/t/script-to-generate-bindings/104816/4):
>
> Fran, thanks for the link to my post. I don't think it's what Jose requires as it won't update if any of the tags change value. I think the easiest option is, Create a simple coordinate view with a tagPath parameter. Add a Label Component to the view and create a tag binding on the label using the tagPath parameter. Render the table's value column as a view and select the view created above. Pass the tag path to the view instance. You should be able to generate the list of instances by scrip…

---

_[View the full topic](https://forum.inductiveautomation.com/t/custom-datasets-efficiency/104899)._
