[yunqa.de] Re: DISqlite demos

  • From: Delphi Inspiration <delphi@xxxxxxxx>
  • To: yunqa@xxxxxxxxxxxxx
  • Date: Tue, 13 May 2008 10:01:11 +0200

Simon Beesley wrote:

>I suppose I was just annoyed at the extra effort DISQLite3 calls for. Also, 
>how much of an overhead is there in using VCL components?

Regarding overhead: TDataSet shuffles memory around a lot, which includes 
allocation and copying in places where reusing would be optimal. You will 
probably not notice this for forms with little data, but I does slow things 
down for huge bulk inserts, for example.

There are incompatabilities also Just one example: TStringField is limited to 
255 characters only whereas strings in DISQLite3 are variable length and 
practically unlimited. Luckily I was able to work around this in 
TDISQLite3UniDirQuery, but it is still confusins to some users.

>I know DISQLite3 is faster even than SQLite3 with C or C++. But since SQLite 
>is such a great database engine anyway would making the Delphi conversion a 
>little more friendly exact a heavy performance penalty?

Yes and no. It really depends on the usage scenario. The more data you 
processes, the more you will notice. The biggest penalty results from loading 
huge tables completely into memory for grid display.

This can obviously be avoided by selecting a subset of records only, but I am a 
somewhat afraid that developers might not do so. Many are still used to the BDE 
and did not have to worry about this. As a result, I have seen grids displaying 
thousands of records. If they are ported to DISQLite3 (or any other SQL engine) 
unchanged, the application will use lots of memory and slow down considerably. 
The blame would be on DISQLite3, even though it is not the cause of the problem.

>I am not actually grumbling much -- just a little impatient to convert
>my application from Zeos to DISQLite.

I looked at Zeos yesterday and thought about a DISQLite3 driver for Zeos. Would 
this be something worthwhile, given the quite restrictive Zeos license?

>I started with DBISAM and then ElevatesoftDB, mainly for their full-text 
>indexing facilty. You may be interested to know that switching to 
>Zeos+SQLite3.dll speeded up operations by at least a factor of 2. And when I 
>do finally get round to converting the application to DISQLite, I am expecting 
>to get still greater speed improvements.

:-)

>One thing I am curious about -- does DISQLite support all the SQLite FTS
>functions like Snippet()?

Yes, it is all there: DISQLite3 comes with all FTS funtionality, including 
custom tokenizers. The FTS example is a GUI application :-) but it does not use 
snippets. Instead, here is a snippet() SQL example:

SELECT docid, snippet(YourFtsTable) FROM YourFtsTable WHERE YourFtsTable MATCH 
'YourFtsSearchQuery';

Ralf 

_______________________________________________
Delphi Inspiration mailing list
yunqa@xxxxxxxxxxxxx
//www.freelists.org/list/yunqa



Other related posts: