Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 5 of 5 total
Thread ANN: SuperFastDistinct! -- 5x, 10x, 100x faster than TDBISAMQuery's "Select distinct colname from ta
Tue, Apr 25 2006 3:58 PMPermanent Link

Barry
** Announcing SuperFastDistinct! for Delphi & C++Builder **

**** Special introductory price in effect until May 31st 2006! ****

* Get distinct values from a table up to 5x, 10x, 100x faster than SQL
* Replaces the SQL command
       "Select distinct col1 [,col2,col3] from Table1 order by col1 [,col2,col3]"
* SQL is NOT REQUIRED! Uses a TTable or 3rd party equivalent and an index.
 Our proprietary algorithm traverses the index to retrieve the distinct values in just milliseconds
* Over 500x faster than SQL on large LAN based tables over the network (non-Client/Server)
* Uses up to 1,000x less memory than SQL on large tables compared to database engines
   like Paradox and others.
* Get the distinct values from a million row table in just milliseconds
* Works with Intraweb(TM) and any other web server technology that can compile Delphi code.
   Get more web pages displayed per second
* Reduce heavy disk activity and improve network throughput.
* Save the distinct values to any TStrings object like a TComboBox, TListBox, TMemo, or to another
    database table or even to a memory table like kbmMemTable etc..
* Super easy. Requires only 1 line of code.
* Thread safe.
* No Royalties - Complete Delphi Source Code Included
* Works with Delphi 4 through Delphi 2006 Win 32 & C++Builder 4 or later

* Supports BDE TTable, Advantage(TM), DBISAM(TM), NexusDb(TM), kbmMemTable(TM)

Download our ready to run demo program that will benchmark SuperFastDistinct! against popular
database SQL engines like Advantage, DBISAM, NexusDb, Paradox, dBase and kbmMemTable. Test
SuperFastDistinct! on your existing database tables or have it generate 1 million row tables for the
ultimate speed test, then graph the results.


Benchmarks: http://www.grebarsys.com/html/graphs.html
Demo Program: http://www.grebarsys.com/filedownloads/SFDDemo.zip

Sincerely,
Barry
---------------------------------------------------------------
e-mail: support@NOSPAMgrebarsys.com
web page: www.grebarsys.com

PrintDAT! - Make your grids and tables printable in just 10 seconds & 1 line of code
SuperFastDistinct! - 5x, 10x, 100x faster than SQL's Select Distinct ...
Wed, Apr 26 2006 9:02 AMPermanent Link

"GregF"

"Barry" <support@NOSPAMgrebarsys.com> wrote in message news:q6vs425st5k6p94p4kp616hprrdrin0hec@4ax.com...
> ** Announcing SuperFastDistinct! for Delphi & C++Builder **
>
> **** Special introductory price in effect until May 31st 2006! ****
>
> * Get distinct values from a table up to 5x, 10x, 100x faster than SQL
> * Replaces the SQL command
>        "Select distinct col1 [,col2,col3] from Table1 order by col1 [,col2,col3]"
> * SQL is NOT REQUIRED! Uses a TTable or 3rd party equivalent and an index.
>  Our proprietary algorithm traverses the index to retrieve the distinct values in just milliseconds
> * Over 500x faster than SQL on large LAN based tables over the network (non-Client/Server)
> * Uses up to 1,000x less memory than SQL on large tables compared to database engines
>    like Paradox and others.
> * Get the distinct values from a million row table in just milliseconds
> * Works with Intraweb(TM) and any other web server technology that can compile Delphi code.
>    Get more web pages displayed per second
> * Reduce heavy disk activity and improve network throughput.
> * Save the distinct values to any TStrings object like a TComboBox, TListBox, TMemo, or to another
>     database table or even to a memory table like kbmMemTable etc..
> * Super easy. Requires only 1 line of code.
> * Thread safe.
> * No Royalties - Complete Delphi Source Code Included
> * Works with Delphi 4 through Delphi 2006 Win 32 & C++Builder 4 or later
>
> * Supports BDE TTable, Advantage(TM), DBISAM(TM), NexusDb(TM), kbmMemTable(TM)
>
> Download our ready to run demo program that will benchmark SuperFastDistinct! against popular
> database SQL engines like Advantage, DBISAM, NexusDb, Paradox, dBase and kbmMemTable. Test
> SuperFastDistinct! on your existing database tables or have it generate 1 million row tables for the
> ultimate speed test, then graph the results.
>
>
> Benchmarks: http://www.grebarsys.com/html/graphs.html
> Demo Program: http://www.grebarsys.com/filedownloads/SFDDemo.zip
>
> Sincerely,
> Barry
> ---------------------------------------------------------------
> e-mail: support@NOSPAMgrebarsys.com
> web page: www.grebarsys.com
>
> PrintDAT! - Make your grids and tables printable in just 10 seconds & 1 line of code
> SuperFastDistinct! - 5x, 10x, 100x faster than SQL's Select Distinct ...


I don't understand why I would want to spend so much money on a product
that a simple and coding solution can achieve, I mean geez in effect
all you are doing is positioning on the first key and then seeking the next value
and the fact it needs hierarchical indexes means the product is of no use to
me unless I actually have an index on the fields++ required

gF

Wed, Apr 26 2006 2:40 PMPermanent Link

"Walter Matte"
I agree... but I like the Graph.....  Before and After.... who cares about
after... I like the Before!!!

http://www.grebarsys.com/html/graphs.html

Like the author states, you only gain speed on indexes with duplicate
values...  Indexes with Unique Values don't improve.

Walter

"GregF" <footyfacts@yahoo.com> wrote in message
news:D4EC9B4D-7B0D-441C-8E60-78DB6EEBFC10@news.elevatesoft.com...
>
> "Barry" <support@NOSPAMgrebarsys.com> wrote in message
> news:q6vs425st5k6p94p4kp616hprrdrin0hec@4ax.com...
>> ** Announcing SuperFastDistinct! for Delphi & C++Builder **
>>
>> **** Special introductory price in effect until May 31st 2006! ****
>>
>> * Get distinct values from a table up to 5x, 10x, 100x faster than SQL
>> * Replaces the SQL command
>>        "Select distinct col1 [,col2,col3] from Table1 order by col1
>> [,col2,col3]"
>> * SQL is NOT REQUIRED! Uses a TTable or 3rd party equivalent and an
>> index.
>>  Our proprietary algorithm traverses the index to retrieve the distinct
>> values in just milliseconds
>> * Over 500x faster than SQL on large LAN based tables over the network
>> (non-Client/Server)
>> * Uses up to 1,000x less memory than SQL on large tables compared to
>> database engines
>>    like Paradox and others.
>> * Get the distinct values from a million row table in just milliseconds
>> * Works with Intraweb(TM) and any other web server technology that can
>> compile Delphi code.
>>    Get more web pages displayed per second
>> * Reduce heavy disk activity and improve network throughput.
>> * Save the distinct values to any TStrings object like a TComboBox,
>> TListBox, TMemo, or to another
>>     database table or even to a memory table like kbmMemTable etc..
>> * Super easy. Requires only 1 line of code.
>> * Thread safe.
>> * No Royalties - Complete Delphi Source Code Included
>> * Works with Delphi 4 through Delphi 2006 Win 32 & C++Builder 4 or later
>>
>> * Supports BDE TTable, Advantage(TM), DBISAM(TM), NexusDb(TM),
>> kbmMemTable(TM)
>>
>> Download our ready to run demo program that will benchmark
>> SuperFastDistinct! against popular
>> database SQL engines like Advantage, DBISAM, NexusDb, Paradox, dBase and
>> kbmMemTable. Test
>> SuperFastDistinct! on your existing database tables or have it generate 1
>> million row tables for the
>> ultimate speed test, then graph the results.
>>
>>
>> Benchmarks: http://www.grebarsys.com/html/graphs.html
>> Demo Program: http://www.grebarsys.com/filedownloads/SFDDemo.zip
>>
>> Sincerely,
>> Barry
>> ---------------------------------------------------------------
>> e-mail: support@NOSPAMgrebarsys.com
>> web page: www.grebarsys.com
>>
>> PrintDAT! - Make your grids and tables printable in just 10 seconds & 1
>> line of code
>> SuperFastDistinct! - 5x, 10x, 100x faster than SQL's Select Distinct ...
>
>
> I don't understand why I would want to spend so much money on a product
> that a simple and coding solution can achieve, I mean geez in effect
> all you are doing is positioning on the first key and then seeking the
> next value
> and the fact it needs hierarchical indexes means the product is of no use
> to
> me unless I actually have an index on the fields++ required
>
> gF
>

Wed, Apr 26 2006 3:46 PMPermanent Link

Sean McCall
If Tim is reading...

This got me thinking. Does DBISAM or ElevateDB's optimizer
ever just process records totally from an index or use
available indexed fields for determining result sets?

As a simplified example:

Table Orders (OrderNo, CustomerNo, OrderDate, OrderAmount)
Primary Index(OrderNo)
Secondary Index(CustomerNo, OrderNo, OrderAmount)

--- notice that OrderAmount was added, and assume that
OrderNo will be unique so OrderAmount does not affect
sorting. It was added for optimizations.

Select * from Orders
where OrderAmount > 200
Order By CustomerNo, OrderDate

This query would obviously require a full table scan, but
would it read every record in the database or would it scan
the index and only read the records that are not excluded by
OrderAmount.

In other words, does the optimizer evaluate fields available
from the index before reading a full record? If so, it would
seem that we could partially optimize queries by adding
fields to multi-field indices even when they will have no
effect on the sort order.

Just curious,

Sean



1. Query only uses fields in the index & in the same order.
2. Query only uses fields in the index & full table scan is
needed because of an unoptimized condition.
3. Query uses more fields than are in the index, but only
the fields in the index are required to determine the result
set. Would DBISAM read the whole record of every record it
tests to determine inclusion or does it gather everything it
can from the index first before resorting to a record read?



It check to see if all the fields in a query are present in
an index and if so, use the index for processing the query
instead of the database records?  (at least in the case
where the index matches the order by, a full table scan is
necessary)? This would be a good reason to have multi-field
indices this would be a good use for multi-field indices.

Walter Matte wrote:
> I agree... but I like the Graph.....  Before and After.... who cares about
> after... I like the Before!!!
>
> http://www.grebarsys.com/html/graphs.html
>
> Like the author states, you only gain speed on indexes with duplicate
> values...  Indexes with Unique Values don't improve.
>
> Walter
>
> "GregF" <footyfacts@yahoo.com> wrote in message
> news:D4EC9B4D-7B0D-441C-8E60-78DB6EEBFC10@news.elevatesoft.com...
>
>>"Barry" <support@NOSPAMgrebarsys.com> wrote in message
>>news:q6vs425st5k6p94p4kp616hprrdrin0hec@4ax.com...
>>
>>>** Announcing SuperFastDistinct! for Delphi & C++Builder **
>>>
>>>**** Special introductory price in effect until May 31st 2006! ****
>>>
>>>* Get distinct values from a table up to 5x, 10x, 100x faster than SQL
>>>* Replaces the SQL command
>>>       "Select distinct col1 [,col2,col3] from Table1 order by col1
>>>[,col2,col3]"
>>>* SQL is NOT REQUIRED! Uses a TTable or 3rd party equivalent and an
>>>index.
>>> Our proprietary algorithm traverses the index to retrieve the distinct
>>>values in just milliseconds
>>>* Over 500x faster than SQL on large LAN based tables over the network
>>>(non-Client/Server)
>>>* Uses up to 1,000x less memory than SQL on large tables compared to
>>>database engines
>>>   like Paradox and others.
>>>* Get the distinct values from a million row table in just milliseconds
>>>* Works with Intraweb(TM) and any other web server technology that can
>>>compile Delphi code.
>>>   Get more web pages displayed per second
>>>* Reduce heavy disk activity and improve network throughput.
>>>* Save the distinct values to any TStrings object like a TComboBox,
>>>TListBox, TMemo, or to another
>>>    database table or even to a memory table like kbmMemTable etc..
>>>* Super easy. Requires only 1 line of code.
>>>* Thread safe.
>>>* No Royalties - Complete Delphi Source Code Included
>>>* Works with Delphi 4 through Delphi 2006 Win 32 & C++Builder 4 or later
>>>
>>>* Supports BDE TTable, Advantage(TM), DBISAM(TM), NexusDb(TM),
>>>kbmMemTable(TM)
>>>
>>>Download our ready to run demo program that will benchmark
>>>SuperFastDistinct! against popular
>>>database SQL engines like Advantage, DBISAM, NexusDb, Paradox, dBase and
>>>kbmMemTable. Test
>>>SuperFastDistinct! on your existing database tables or have it generate 1
>>>million row tables for the
>>>ultimate speed test, then graph the results.
>>>
>>>
>>>Benchmarks: http://www.grebarsys.com/html/graphs.html
>>>Demo Program: http://www.grebarsys.com/filedownloads/SFDDemo.zip
>>>
>>>Sincerely,
>>>Barry
>>>---------------------------------------------------------------
>>>e-mail: support@NOSPAMgrebarsys.com
>>>web page: www.grebarsys.com
>>>
>>>PrintDAT! - Make your grids and tables printable in just 10 seconds & 1
>>>line of code
>>>SuperFastDistinct! - 5x, 10x, 100x faster than SQL's Select Distinct ...
>>
>>
>>I don't understand why I would want to spend so much money on a product
>>that a simple and coding solution can achieve, I mean geez in effect
>>all you are doing is positioning on the first key and then seeking the
>>next value
>>and the fact it needs hierarchical indexes means the product is of no use
>>to
>>me unless I actually have an index on the fields++ required
>>
>>gF
>>
>
>
>
Sun, Apr 30 2006 2:11 PMPermanent Link

Barry
On Wed, 26 Apr 2006 23:00:54 +1000, "GregF" <footyfacts@yahoo.com> wrote:

>
>"Barry" <support@NOSPAMgrebarsys.com> wrote in message news:q6vs425st5k6p94p4kp616hprrdrin0hec@4ax.com...
>> ** Announcing SuperFastDistinct! for Delphi & C++Builder **
>>
>> **** Special introductory price in effect until May 31st 2006! ****
>>
>> * Get distinct values from a table up to 5x, 10x, 100x faster than SQL
>> * Replaces the SQL command
>>        "Select distinct col1 [,col2,col3] from Table1 order by col1 [,col2,col3]"
>> * SQL is NOT REQUIRED! Uses a TTable or 3rd party equivalent and an index.
>>  Our proprietary algorithm traverses the index to retrieve the distinct values in just milliseconds
>> * Over 500x faster than SQL on large LAN based tables over the network (non-Client/Server)
>> * Uses up to 1,000x less memory than SQL on large tables compared to database engines
>>    like Paradox and others.
>> * Get the distinct values from a million row table in just milliseconds
>> * Works with Intraweb(TM) and any other web server technology that can compile Delphi code.
>>    Get more web pages displayed per second
>> * Reduce heavy disk activity and improve network throughput.
>> * Save the distinct values to any TStrings object like a TComboBox, TListBox, TMemo, or to another
>>     database table or even to a memory table like kbmMemTable etc..
>> * Super easy. Requires only 1 line of code.
>> * Thread safe.
>> * No Royalties - Complete Delphi Source Code Included
>> * Works with Delphi 4 through Delphi 2006 Win 32 & C++Builder 4 or later
>>
>> * Supports BDE TTable, Advantage(TM), DBISAM(TM), NexusDb(TM), kbmMemTable(TM)
>>
>> Download our ready to run demo program that will benchmark SuperFastDistinct! against popular
>> database SQL engines like Advantage, DBISAM, NexusDb, Paradox, dBase and kbmMemTable. Test
>> SuperFastDistinct! on your existing database tables or have it generate 1 million row tables for the
>> ultimate speed test, then graph the results.
>>
>>
>> Benchmarks: http://www.grebarsys.com/html/graphs.html
>> Demo Program: http://www.grebarsys.com/filedownloads/SFDDemo.zip
>>
>> Sincerely,
>> Barry
>> ---------------------------------------------------------------
>> e-mail: support@NOSPAMgrebarsys.com
>> web page: www.grebarsys.com
>>
>> PrintDAT! - Make your grids and tables printable in just 10 seconds & 1 line of code
>> SuperFastDistinct! - 5x, 10x, 100x faster than SQL's Select Distinct ...
>

>>Re: An F1 will beat a 4WD on the track but I wouldn't back it in the mud!<<

I would have gotten here sooner but it looks like someone changed the thread title. Hmmm. How could
that be?

>I don't understand why I would want to spend so much money on a product
>that a simple and coding solution can achieve, I mean geez in effect
>all you are doing is positioning on the first key and then seeking the next value
>and the fact it needs hierarchical indexes means the product is of no use to
>me unless I actually have an index on the fields++ required

Yes you need an index. Even SQL requires an index if you want want to speed up your queries. Most
people have indexes on fields they need quick access to. No on would try and access tables with tens
of thousands of rows, or millions of rows, without using an index. SuperFastDistinct! uses whatever
index that is already in the table.

>I don't understand why I would want to spend so much money on a product
>that a simple and coding solution can achieve, I mean geez in effect
>all you are doing is positioning on the first key and then seeking the next value

It's really not that easy. SuperFastDistinct! works on compound indexes as well as scalar indexes.
It handles a variety of data types from Strings, Integers, Floats, Dates, Times etc.. You really
don't know what the next value is. Do you know what the next index value is after "John Smith"? Is
it "John Spade"? Or "J. Sacks?" or "John Smithers"? Or how about the next number in the index after
"123.456"? Is it "123.457" or "123.456001"? Or how about the next number after 1E10? Is it 1.1E10 or
1.00012E10 or 1E22? Did you remember to take the field length into account or the precision of the
number?

SuperFastDistinct! is designed for people who are disastisifed with the speed of SQL at retrieving
distinct values from a table. It's on average 5x faster than SQL. On larger tables it's up to 100x
faster. And even faster if you're using a shared database over a network. The speed depends on the
number of duplicate values in the table. The more duplicates there are, the faster it gets. The more
times its run, the faster it gets. We have benchmarks showing it can retrieve distinct values from a
million row table in 0-15ms. SQL plods along at roughly the same time each time its run. SFD just
gets faster and uses a fraction of the memory SQL does.

SuperFastDistinct! is really about speed, not about pulling stumps out of the field with your
4x4.SmileyIf people have a database server or a webserver that is crawling because of slow SQL Select
Distinct calls, SuperFastDistinct! can help. It's certainly a lot cheaper than buying more
processors or more machines.

Barry
-----------------------------------
e-mail: support@NOSPAMgrebarsys.com
web page: http://www.grebarsys.com

PrintDAT! - Make your grids and tables printable in just 10 seconds & 1 line of code
SuperFastDistinct! - 5x, 10x, 100x faster than SQL's Select Distinct ...
Image