Despite the fact that full load of the Database Schema Tree is not necessary in the second version of the component, and can be completed in a separate thread, loading the query diagram may take a long time if you have large database schema. This can happen due to several reasons.

Database Schema Tree objects loading.

First reason is the value of the QueryBuilder.DatabaseSchemaTreeOptions.DefaultExpandLevel property that's greater than zero. This property determines the level of initial Database Schema Tree nodes expansion. Decreasing this property value will lead to faster loading. Also please note that turning off all of the QueryBuilder.MetadataStructureOptions.GroupBy* properties will result in a plain list of database objects without any grouping node levels, so all objects would have to be loaded on the zero level.

Please consider loading metadata from XML file if delays are notable in any way.

Loading of objects that were found in the query.

The second reason for delays might be due to the fact that the component is inquiring object lists from all schemas that explicitly mentioned in the query text and from schemas marked as default for the current database user. It's needed to determine the correspondence of objects pointed in the query with objects of the currently connected database schema. The process is necessary to retrieve the supplementary information about objects used in the query, such as data field types and foreign keys. This information isn't essential for the component's operability, but it lets increase informational content of the query diagram and make query building process easier.

If delay is considerable and users are ready to refuse informational contents in favor of productivity, you may turn off loading of this information by setting the QueryBuilder.MetadataLoadingOptions.DisableAutomaticMetadataLoading property to True.

We don't recommend to set this property without any necessity, but in some cases setting of this property can be justified. These are the cases when structure analysis of existing queries is of higher priority than ease of visual query building, and also in case of large database schema.

Is this article helpful for you?