仅当相应的查找结果值存在时才分配关键字段值

时间:2012-04-03 06:51:18

标签: delphi

我有十个主表和一个Transaction表。在我的事务表中(它就像ClientDataSet一样是一个内存表),有十个查找字段指向我的十个主表。

现在我正在尝试动态地将关键字段值分配给来自不同服务器的所有查找关键字段值(事务表)(数据以soap xml形式出现)。在分配这些值之前,我需要检查相应的结果值是否在主表中有效。我正在使用过滤器(例如status = 1)来检查它是否有效。

目前我们正在做的是,在分配每个键字段值之前,我们使用此过滤器过滤主表并使用locate函数检查它是否存在。如果找到,我们将分配其关键字段值。

如果我的主表中只有很少的记录,这将正常工作。考虑我的主表每个有五万条记录(是的,客户有这么多数据),这将导致大的性能问题。

请你帮我处理这种情况。

由于 罗勒

1 个答案:

答案 0 :(得分:0)

了解它是否缓慢,原因,地点和解决方案效果最好的唯一方法是分析 不要做出先验假设。

话虽这么说,最大限度地减少到服务器的往返次数和传输的数据量通常是一件好事 例如,如果您的主表位于服务器上(不是100%清除您的问题),则只发送1个Query(或存储的proc调用),传递所有值以立即检查作为参数并执行一堆“IF EXISTS”。 ..“并立即返回所有答案(输出参数或1个记录数据集)将是一个良好的开端。

并且有50,000个记录并不多,所以,正如我最初所说,你甚至可能没有性能问题。先检查一下!