如何使用delphi提高从表中加载treeview节点的速度

时间:2013-04-17 05:32:54

标签: database performance delphi treeview ado

使用递归函数从表中加载树视图节点很简单,但是对于大量数据需要很长时间。
我有一个包含以下字段的表: id,title,parentid :将树视图节点保持在N级别。

此表包含超过70000行。当我从这张表填写树视图时,需要很长时间(约9分钟)才能完成。

是否有提高加载速度的更好的解决方案?

3 个答案:

答案 0 :(得分:4)

您可以尝试使用TreeView.Items.BeginUpdate / EndUpdate。

但是在视觉控制中存储70000行是一个值得怀疑的想法。您是否考虑过使用Virtual TreeView或其他方式来仅显示数据表的小部分?

答案 1 :(得分:2)

随着尺寸的增加,标准的TTreeView会很快变慢。 VirtualTreeview是一个完美的解决方案,可以处理数百万个节点而不会降级。

答案 2 :(得分:0)

我对TreeView控件进行了简单的扩展。它非常快。它将内部存储移动到一个字典,这会产生巨大的差异。在我的真实世界示例中,我有100000条记录需要加载。它花了37分钟,但现在需要2.2秒!!

您可以在CodeProject上找到示例和代码:http://www.codeproject.com/Articles/679563/Fast-TreeView

啊,对不起,我错过了Deplhi部分。我的例子是C#WindowsForms ....