我有一个场景,我必须在数据库中混淆数据(= 加扰,出于测试目的,所以不可能看到真实数据,不需要解扰/不混淆它)。有几个表引用了 address_table。我不能混淆 address_table,所以我想我只是用随机的其他 address_table ID 更改这些表中的引用。address_table 包含 6M+ 记录。因此,我将创建一个包含所有地址 ID 的临时表,然后在需要时调用某个函数以从那里获取一个随机表。所以我可能会生成一个随机值并将该行取为:
Select * From (
Select Id, Rownum Rn From myTempTable )
WHERE RN = x;
其中 x 是 dbms_random 生成的一些随机值。现在,尽管这是我所需要的,但它的性能并没有达到我的预期。我尝试过的另一件事是调用 sample() 函数,这(至少在小桌子上)执行得更好,但还不够好。
我知道在 mySql上有几个类似this或this 的线程,但他们并没有直接回答性能方面的问题。
另外,我不限于使用 pl/sql。我对pl/sql知之甚少,性能如何?我的意思是,这只是数据库服务器处理队列中的另一个进程,也许我可以在客户端使用 python 之类的东西来获得更好的处理性能(我的意思是生成更新脚本,填充随机数等),即使考虑到网络延迟等?有人有这方面的经验吗?