[Expand]General Information
[Expand]WinForms Controls
[Expand]ASP.NET Controls and MVC Extensions
[Expand]ASP.NET Bootstrap Controls
[Expand]ASP.NET Core Bootstrap Controls
[Expand]WPF Controls
[Expand]Xamarin Controls
[Expand]Windows 10 App Controls
[Expand]Office File API
[Expand]Report and Dashboard Server
[Collapse]eXpressApp Framework
 [Expand]Getting Started
  [Expand]Application Solution Components
  [Expand]Business Model Design
  [Expand]Application Model
  [Expand]UI Construction
  [Expand]Controllers and Actions
  [Expand]Data Manipulation and Business Logic
  [Expand]Security System
  [Expand]System Module
  [Collapse]Extra Modules
   [Expand]Audit Trail Module
    Business Class Library Customization Module
    Chart Module
    Clone Object Module
   [Expand]Conditional Appearance Module
   [Collapse]Dashboards Module
     Dashboards Module Overview
     Create, View and Modify Dashboards in a WinForms Application
     Create, View and Modify Dashboards in an ASP.NET Application
     Create a Predefined Dashboard and Add it to the Navigation
     Dashboard Performance With Large Data Sources
    File Attachments Module
    HTML Property Editor Module
    Localization Module
   [Expand]Notifications Module
    KPI Module
   [Expand]Maps Module
   [Expand]Pivot Chart Module
    Pivot Grid Module
   [Expand]Reports V2 Module
   [Expand]Reports Module (Obsolete)
   [Expand]Office Module
   [Expand]Scheduler Module
    Script Recorder Module
   [Expand]State Machine Module
   [Expand]TreeList Editors Module
   [Expand]Validation Module
    View Variants Module
   [Expand]Workflow Module
  [Expand]Debugging, Testing and Error Handling
  [Expand]Application Life Cycle
 [Expand]Design-Time Features
 [Expand]Task-Based Help
  Frequently Asked Questions (FAQ)
 [Expand]API Reference
[Expand]eXpress Persistent Objects
[Expand]CodeRush Classic
[Expand]Cross-Platform Core Libraries
[Expand]Tools and Utilities
 End-User Documentation
View this topic on docs.devexpress.com (Learn more)

Dashboard Performance With Large Data Sources

This topic lists approaches you can use to improve performance and reduce memory consumption in cases when a dashboard is bound to a large collection of objects.


The Tips listed here are optional. There is no need to use them unless you observe a drop in performance.

Expanded Limit the Amount of Objects Loaded in the Dashboard Designer

If you do not need to observe the whole data set when designing the dashboard, you can limit the amount of loaded objects using the DashboardDataProvider.TopReturnedRecordsInDesigner property. To access the DashboardDataProvider object, use the static DashboardsModule.DataProvider property. To change this property value, add the following code to the platform-agnostic module's constructor declared in the Module.cs (Module.vb) file.

Expanded Disable Automatic Updates in the WinForms Dashboard Designer

When you perform a data-aware operation in the WinForms Dashboard Designer, the dashboard sends a query to a data source and updates itself automatically according to the returned data. Updating the dashboard according to each change can consume a significant amount of time. In this case, you can disable automatic updates and update the dashboard manually when needed (see Automatic and Manual Updates).

Expanded Filter Data Using Parameters

When you filter the dashboard data source, the criteria is applied at the server side, which reduces the amount of loaded data. Refer to the following topics to learn how to apply filters.



Expanded Use the DataView Mode

To retrieve a lightweight read-only list of data records instead of loading the collection of persistent objects, inherit DashboardDataProvider and override the CreateViewService method.

Then, register the custom dashboard data provider using the static DashboardsModule.DataProvider property. To change this property's value, add the following code to the platform-agnostic module's constructor declared in the Module.cs (Module.vb) file.

Expanded Use the SQL Data Source

You can use the SQL Data Source instead of the XAF Object Data Source when creating a dashboard. In this instance, you will access data directly, bypassing the Object Space and the ORM data layer. In most cases, this will improve the performance. However, your custom logic that is implemented in business classes (e.g., calculated properties) will be ignored. Security System restrictions will be ignored too.

Saving credentials for non-XAF datasources inside dashboards is disabled due to security reasons. You need to manually provide credentials for such datasources (see How to: Provide Credentials for the Dashboards Module when Using External Data Sources).

Is this topic helpful?​​​​​​​