VirtualQuery questions

Discussion of open issues, suggestions and bugs regarding Virtual Data Access Components for Delphi, C++Builder, Lazarus (and FPC)
Post Reply
yeohray2
Posts: 15
Joined: Thu 08 May 2014 15:49

VirtualQuery questions

Post by yeohray2 » Sat 02 May 2020 07:14

2 questions:

1 - I have 2 data sets, one a sales header (31000+ rows), and another a sales lines (120000+ rows), both stored in virtual tables. I use VirtualQuery to run a query to join the 2 data sets like this:

SELECT ds1.SalesOrderID, SUM(ds2.OrderQty)
FROM ds1
INNER JOIN ds2 ON ds1.SalesOrderID = ds2.SalesOrderID
GROUP BY ds1.SalesOrderID

The query takes extremely long to run. Is there a way to improve the performance? I already disabled the updates for both data sets.

2 - does BreakExec allow you to cancel a query? I tried to use it to cancel an active VirtualQuery, but nothing happens. I'm running the query in one thread, and cancelling it from another thread.

Thanks in advance.

yeohray2
Posts: 15
Joined: Thu 08 May 2014 15:49

Re: VirtualQuery questions

Post by yeohray2 » Tue 05 May 2020 09:26

Should have mentioned that the 2 data sets were TkbmMemtable classes. When replaced with TVirtualTable, the performance improves significantly. However, I cannot copy the data into TVirtualTable due to memory limitations.

I then came across this old post - viewtopic.php?t=35528. Is there a TVirtualData descendant class that supports TkbmMemtable for improved performance?

Thanks in advance.

MaximG
Devart Team
Posts: 1409
Joined: Mon 06 Jul 2015 11:34

Re: VirtualQuery questions

Post by MaximG » Mon 18 May 2020 14:43

All necessary changes related to performance of our components when using TkbmMemtable as a data source, are available in the latest version of VirtualDAC.
Our users haven't reported any issues with VirtualQuery performance in scenarios like yours so far.
You can leave your suggestions at our UserVoice page (http://devart.uservoice.com/forums/1046 ... 939-unidac), and if there are many votes for your suggestion, we will implement it.

Post Reply