Subject | Re: [firebird-support] Issues with .Net Data Provider |
---|---|
Author | Ken & Deb Allen |
Post date | 2005-08-20T11:41:21Z |
Thanks for the information.
First, I am using the 'standard' .Net Data Provider for 1.1 from the
Firebird web site on source forge. I shall try that mail group.
Second, I have completed some basic tests using SQLITE comparing it
as much as possible with Firebird. It is not a completely fair
comparison because I created and populated the SQLITE database from
the command line tool and used a C#/.Net program for Firebird.
However, the same schema and data was used in both cases.
Populating the databases with 10,000,000 records: Firebird
(almost 11 hours); SQLITE (about 2 hours)
Size of resulting database: Firebird (1.6GB); SQLITE (960MB)
Also, SQLITE seemed to be able to query the database a bit faster. I
could not accurately time the retrieval of records, since the SQLITE
test includes the time to format the data into strings and send them
to the console window.
My point was not that Firebird included overhead, which any database
must do, but that the overhead seemed excessive compared to other
databases (even VistDB seemed to use less space), and that it used
considerably more space and was slower at the same time. I will not
hesitate to acknowledge that this overhead comes at the benefit of
some features or facilities that the other databases do not provide,
but when one needs a small, fast and light weight database, the space
usage and performance of Firebird become a consideration.
-ken
First, I am using the 'standard' .Net Data Provider for 1.1 from the
Firebird web site on source forge. I shall try that mail group.
Second, I have completed some basic tests using SQLITE comparing it
as much as possible with Firebird. It is not a completely fair
comparison because I created and populated the SQLITE database from
the command line tool and used a C#/.Net program for Firebird.
However, the same schema and data was used in both cases.
Populating the databases with 10,000,000 records: Firebird
(almost 11 hours); SQLITE (about 2 hours)
Size of resulting database: Firebird (1.6GB); SQLITE (960MB)
Also, SQLITE seemed to be able to query the database a bit faster. I
could not accurately time the retrieval of records, since the SQLITE
test includes the time to format the data into strings and send them
to the console window.
My point was not that Firebird included overhead, which any database
must do, but that the overhead seemed excessive compared to other
databases (even VistDB seemed to use less space), and that it used
considerably more space and was slower at the same time. I will not
hesitate to acknowledge that this overhead comes at the benefit of
some features or facilities that the other databases do not provide,
but when one needs a small, fast and light weight database, the space
usage and performance of Firebird become a consideration.
-ken
On 19-Aug-05, at 7:19 AM, Ivan Prenosil wrote:
>>>> INSERT INTO MyTable(PKey, BigIntValue) VALUES(32, 12345);
>>>>
>>>>
>>>
>>> Firebird won't reject this. Something is happening in the
>>> interface. The
>>> right place to ask about this is the firebird-net-provider forum.
>>> Make
>>> sure you explain what "fails" means.
>>>
>>>
>> No, Firebird does not reject the statement above. But when an integer
>> literal that is larger than (2^31)-1 (signed integer) is specified,
>> then the command is rejected with a syntax or illegal value error (I
>> do not have the exact value here). Replace the second value in the
>> statement above with 549,755,813,887 (remove the commas) and see what
>> happens. I have tried replacing this with 0x7FFFFFFFFF, but that was
>> also rejected.
>>
>
> As was already said, something must be wrong with your data provider,
> so you should ask on appropriate forum.
> Here is copy-pasted result from isql:
>
> CREATE TABLE MyTable(PKey INTEGER, BigIntValue BIGINT);
> INSERT INTO MyTable(PKey, BigIntValue) VALUES(32, 12345);
> INSERT INTO MyTable(PKey, BigIntValue) VALUES(32, 549755813887);
> INSERT INTO MyTable(PKey, BigIntValue) VALUES(32, 123456789012345678);
>
> SELECT * FROM MyTable;
>
> PKEY BIGINTVALUE
> =========== ====================
> 32 12345
> 32 549755813887
> 32 123456789012345678
>
>
>
>
>
>
>> Yes, I understand all of this. My point was that the size of the
>> resulting database was much larger than the size of the file created
>> by other database packages when the same data was loaded. I used the
>> raw data size as a base measurement. Since the only information being
>> stored for this table is the raw data and the primary key index, it
>> seems odd that the overall storage should be as high as 4 times the
>> raw data size when other databases have a lower factor.
>>
>
> Each row needs to store some additional informations, like
> transaction-id, format-number, null-flags array, deleted-flag, and
> many more.
> As a result, even if you have table with single Char(1) column,
> each row will occupy approximately 30 bytes.
> For more comples tables (or tables with larger varchar fiels) the
> situations
> is in fact much better than with other databases (e.g. fixed-record-
> length dbase),
> because all data are compressed before storing to disk,
> and sometimes the database can be even smaller that original file
> the data were imported from.
>
> Ivan
> http://www.volny.cz/iprenosil/interbase/
>
>
> ------------------------ Yahoo! Groups Sponsor --------------------
> ~-->
> <font face=arial size=-1><a href="http://us.ard.yahoo.com/
> SIG=12h7lj4hi/M=362131.6882499.7825260.1510227/D=groups/
> S=1705115386:TM/Y=YAHOO/EXP=1124457540/A=2889191/R=0/SIG=10r90krvo/
> *http://www.thebeehive.org
> ">Get Bzzzy! (real tools to help you find a job) Welcome to the
> Sweet Life - brought to you by One Economy</a>.</font>
> --------------------------------------------------------------------
> ~->
>
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>
> Visit http://firebird.sourceforge.net and click the Resources item
> on the main (top) menu. Try Knowledgebase and FAQ links !
>
> Also search the knowledgebases at http://www.ibphoenix.com
>
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>
> Yahoo! Groups Links
>
>
>
>
>
>