是否存在強制Oracle(在插入/更新/刪除時)利用row_num分析函數分配行號的方法,以後可以通過簡單調用rownumber = X?在Oracle數據庫中強制內部行號以匹配row_num分析函數
示例代碼來說明我的意思:
select foo,bar,baz
row_number() over (partition by bang order by some_date desc) rn
from my_table
上面的查詢將基於分區子句指定的行號。
現在,當我詢問,我想其中ROWNUMBER = XI可以這樣做:
select foo,bar,baz
from my_table
where rownumber=1
這樣做的原因是爲了避免查詢開銷,並且將其推回發生遠不頻頻在DDL語句系統。所以我的問題,是這樣的可能嗎?
COMMENT
每一個新的插入/更新/刪除可能會更新表的每一個 行......這是一個潛在的大量日誌(和 鎖定)的。如果您的數據基本上是靜態的,那麼每次加載或更新時都要重新生成一個rownumber。
如果我們刪除了更新/刪除的約束條件,並且我不相信這個推理在特定時間對象驅動的情況下仍然存在。
每一個新的插入/更新/刪除可能會更新表的每行......這是一個潛在的大量日誌(和鎖定)的。如果您的數據基本上是靜態的,那麼每次加載或更新時都會重新生成一個rownumber。 – Mat
@Mat所以讓我們刪除更新和刪除的約束。如果我只是插入,其中驅動力實際上是時間戳/日期,那麼是什麼? – Woot4Moo
那麼,你在做實際插入之前計算rownumber(對併發性有很多照顧)。 – Mat