So, it may be the machine on which the code is getting executed behind the
scene , in the site "https://dbfiddle.uk/"; is playing a key role in the
speed, however, the comparative performance of UUID vs sequence should stay
the same.
 So I think, after this test we can safely conclude that if we compare
the performance of the UUID(both version-4, version 7) VS sequence. The
UUID performs a lot worse as compared to sequence. So unless there exists
some strong reason/justification for UUID, we should default use the
sequence. Correct me if I'm wrong. And also  I understand the cases
of multi master replication/sharding etc, may be a factor but other than
that I can't think of any scenario where sequences can be used.



On Fri, 3 Feb 2023 at 23:07, Dominique Devienne <ddevie...@gmail.com> wrote:

> On Fri, Feb 3, 2023 at 5:48 PM veem v <veema0...@gmail.com> wrote:
>
>> Actually I did the testing by connecting to "https://dbfiddle.uk/";
>> postgres version -15.
>>
>> PostgreSQL 15.0 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 8.5.0
>> 20210514 (Red Hat 8.5.0-10), 64-bit
>>
>> Am I doing it wrong, please confirm?
>>
>>
> No clue. But even SQLite can generate 1M uuid (16 bytes random blobs are
> equivalent) is 1/3 of the time, so 30x faster.
> So your timings of generating 100K uuids and counting them seems way too
> slow to me. --DD
>
> sqlite> select count(randomblob(16)) from generate_series(1,1000*1000);
> QUERY PLAN
> `--SCAN generate_series VIRTUAL TABLE INDEX 3:
> addr  opcode         p1    p2    p3    p4             p5  comment
> ----  -------------  ----  ----  ----  -------------  --  -------------
> 0     Init           0     15    0                    0   Start at 15
> 1     Null           0     1     1                    0   r[1..1]=NULL
> 2     VOpen          0     0     0     vtab:274D3E0   0
> 3     Integer        1     4     0                    0   r[4]=1
> 4     Multiply       6     6     5                    0   r[5]=r[6]*r[6]
> 5     Integer        3     2     0                    0   r[2]=3
> 6     Integer        2     3     0                    0   r[3]=2
> 7     VFilter        0     11    2                    0   iplan=r[2]
> zplan=''
> 8       Function       1     8     7     randomblob(1)  0   r[7]=func(r[8])
> 9       AggStep        0     7     1     count(1)       1   accum=r[1]
> step(r[7])
> 10    VNext          0     8     0                    0
> 11    AggFinal       1     1     0     count(1)       0   accum=r[1] N=1
> 12    Copy           1     9     0                    0   r[9]=r[1]
> 13    ResultRow      9     1     0                    0   output=r[9]
> 14    Halt           0     0     0                    0
> 15    Transaction    0     0     1     0              1   usesStmtJournal=0
> 16    Integer        1000  6     0                    0   r[6]=1000
> 17    Integer        16    8     0                    0   r[8]=16
> 18    Goto           0     1     0                    0
> ┌───────────────────────┐
> │ count(randomblob(16)) │
> ├───────────────────────┤
> │ 1000000               │
> └───────────────────────┘
> Run Time: real 0.278 user 0.250000 sys 0.000000
>
>
>> On Fri, 3 Feb 2023 at 21:28, Dominique Devienne <ddevie...@gmail.com>
>> wrote:
>>
>>> Something's off regarding Guid generations IMHO...
>>> You generate 100K Guids in ~1s. While we generate (in C++, Windows
>>> Release, using Boost) 16M of them in +/- the same time:
>>>
>>

Reply via email to