Oracle 的标准库函数里,DBMS_ROWID算是比较冷门但挺实用的一个,是你想搞清楚一行数据在磁盘上的物理位置时,这玩意儿可太香了。
ROWID不是行编号,它其实是包含了表空间、数据块、行号等信息的“坐标系”。用DBMS_ROWID.ROWID_TO_RBA
这种函数一转,你就能知道这一行到底存在磁盘哪个地方。
比如做性能优化时,你看到V$WAITSTAT
里某块经常等,你就能结合ROWID
快速锁定是哪张表、哪一行卡住了。开发测试都能用上,定位问题快。
还有多配套资源也不错,像是这个《利用 ROWID 高效更新大规模在线数据》,讲得还蛮实战的。对了,oracle_重要内容.txt
和v$waitstat.doc
这种笔记也建议你看一眼,里面讲了不少索引和 SQL 优化的内容,偏实操。
如果你刚好在研究Oracle 10g
或者在做 DBA 相关的活儿,这些函数和资料都能帮上忙,少走不少弯路。