Hi,
You can gather statistics in order to use cost-based optimization in Denodo, as you can read in the [Gathering the Statistics of Views](https://community.denodo.com/docs/html/browse/7.0/vdp/administration/optimizing_queries/cost-based_optimization/gathering_the_statistics_of_views#gathering-the-statistics-of-views) section of the Virtual DataPort Administration Guide, and the Collecting Statistics section in the Knowledge Base article [Denodo Query Optimizations for the Logical Data Warehouse](https://community.denodo.com/kb/view/document/Denodo Query Optimizations for the Logical Data Warehouse?category=Performance+%26+Optimization). The statistics should be updated when there are changes to the data sources that are significant enough to sway the decision from one execution plan to another. For example, if your Teradata tables have millions of rows, and only a few hundred rows are added, you will not need to gather statistics. You should consider the frequency of changes to the data source to guide how often to gather statistics.
The Knowledge Base article [How to update the statistics of a view automatically](https://community.denodo.com/kb/view/document/How to update the statistics of a view automatically?category=Scheduler) shows how to automate the gathering of statistics using stored procedures and Denodo Scheduler.
Hope this helps!