>>> any ideas why inserting 1 million records with a GUID primary key using
>>> the built-in GEN_UUID() function takes WAY longer than with an integer
>>> primary key. My finding:
>>>
>>> I ran a VERY simple test case on Firebird 2.5 SuperClassic on a normal
>>> desktop, so no fancy IO etc. with a 8K page size database inserting one
>>> million records into a two column table. The one database with a table
>>> with CHAR(16) OCTSETS using the built-in GEN_UUID() function for
>>> generating a GUID and in another database a table with a simple BIGINT
>>> and a generator.
>>>
>>> After inserting: While it's not a big surprise that the GUID databases
>>> has more pages allocated (GUID-DB: 12826 vs. INT-DB: 8392), an
>>> interesting outcome is that the inserting process (a simple stored
>>> procedures) finishes in the INT-DB in ~ 15 sec., whereas in the GUID-DB,
>>> it takes ~ 50 minutes!
>>>
>> Please benchmark what times it takes to just call GEN_UUID 1 million of
>> times.
>
> The following is lightning fast (<  1 sec.), so GEN_UUID() isn't the culprit:
>
> set term !!;
> execute block
> as
> declare i integer;
> declare guid char(16) character set octets;
> begin
>     i = 1;
>     while (i<= 1000000) do
>     begin
>       guid = gen_uuid();
>       i = i + 1;
>     end
> end
> !!
> set term ;!!
>
> commit;
>
>
> Currently, I re-run the test case mentioned in my initial email. Still
> running. I then will also run a test case where inserting GUIDs into a
> non-indexed column will happen. Perhaps adjusting the index tree for
> GUIDs is slow.

Inserting into a table with a GUID column as primary key takes here ~62 
minutes. Inserting into table with an non-indexed GUID column takes ~10 
seconds.

Shall I open a ticket with a proper test case?


Regards,
Thomas

------------------------------------------------------------------------------
Create and publish websites with WebMatrix
Use the most popular FREE web apps or write code yourself; 
WebMatrix provides all the features you need to develop and 
publish your website. http://p.sf.net/sfu/ms-webmatrix-sf
Firebird-Devel mailing list, web interface at 
https://lists.sourceforge.net/lists/listinfo/firebird-devel

Reply via email to