在postgres中生成v4 uuid的主要功能有两个,uuid_generate_v4和gen_random_uuid。在postgres 13中,gen_random_uuid是一个内置函数。否则,您将需要安装pgcrypto扩展。 uuid_generate_v4需要uuid-ossp扩展名。取决于postgres的配置方式,postgres可能实际上将不同的库用于uuid-ossp扩展(ossp-uuid,libc,libuuid),有关更多信息,请参见postgres文档。
为了确定为什么uuid_generate_v4()在Windows服务器上这么慢,需要进行更多调查。目前尚不清楚enterprisedb postgres将哪个底层库用于uuid-ossp。无论Windows服务器上的速度为何缓慢,目前最好的选择是使用gen_random_uuid,它在所有经过测试的平台上都快得多,并且内置在postgres 13中。
为确保Windows问题不仅限于edb postgres 12.4版本,我对最新的edb postgres 13进行了一个快速基准测试,发现uuid_generate_v4的执行时间相似。