Oracle UROWID 或序列
我需要为 Oracle 存储过程中使用的一些中间表创建代理身份键。我发现将 ROWID 插入 UROWID 列效果很好,但这在旧版本的 Oracle(10g 之前)中不是正确的方法 - 使用 SEQUENCE.NEXTVAL 是。 SEQUENCE.NEXTVAL 是一个两步过程,会耗尽内存/存储(全表扫描),而使用 ROWID 方式,您只需保存地址即可完成。 (就像 SQL 中的 IDENTITY)
我想使用 ROWID 作为身份密钥。我可以这样做吗?
I need to create a surrogate identity key for some intermediate tables used in a stored procedure in Oracle. I found that ROWID inserted into a UROWID column works well but this is not the correct way in older versions of Oracle (before 10g) -- using SEQUENCE.NEXTVAL is. SEQUENCE.NEXTVAL is a 2 step process and uses up memory/storage (full table scan) whereas with the ROWID way you just save the address and you're done. (like IDENTITY in SQL)
I want to use ROWID as the identity key. Is it OK for me to do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
为了节省开支,这就是专业人士使用序列的方式:
与 ROWID 相比,我更喜欢任何一天的序列。
Just to be on the save side, this is how pros use sequences:
I would prefer sequences any day over ROWIDs.