Основният недостатък на ROWID е, че въпреки че обикновено е стабилен, той може да се промени при определени обстоятелства:
- Таблицата е възстановена (
ALTER TABLE MOVE
...) - Очевидно експортиране/импортиране
- Таблица с дялове с разрешено движение на редове
Първичен ключ идентифицира ред логически , винаги ще намерите правилния ред, дори след изтриване+вмъкване. ROWID идентифицира реда физически и не е толкова устойчив като първичен ключ.
Можете безопасно да използвате ROWID в един SQL израз, тъй като Oracle ще гарантира, че резултатът е съгласуван, например за премахване на дубликати в таблица. За по-сигурно ви предлагам да използвате само ROWID accross изявленията когато имате заключване на реда (ИЗБЕРЕТЕ ... ЗА АКТУАЛИЗИРАНЕ).
От гледна точка на производителността достъпът до първичния ключ е малко по-скъп, но обикновено ще забележите това само ако правите много достъп до един ред. Ако обаче производителността е критична, обикновено можете да получите по-голяма полза в този случай от използването на обработка на набор, отколкото обработка на един ред с rowid. По-специално, ако има много двупосочни транзакции между DB и приложението, цената на достъпа до реда вероятно ще бъде незначителна в сравнение с цената на двупосочните маршрути.