我的表使用UUID作爲主鍵並將它們作爲CHAR(36)存儲在Oracle數據庫中。大多數表包含可以使用任何語言的NVARCHAR列。我想在這些列上支持自然語言排序,並通過在oracle會話上設置NLS_SORT和NLS_COMP(通過ALTER SESSION)來實現。我遇到的問題是,oracle不會使用UUID列上的二進制索引,並始終執行全表掃描。使用UUID和Oracle的NLS_COMP&NLS_SORT設置
有沒有辦法在不丟失二進制索引的情況下獲得整理效果?我找到的一個解決方案是使用RAW(16)來表示UUID,在這種情況下,Oracle將使用二進制索引,而不管NLS sort/comp如何。但我希望有更好的選擇。
有什麼建議嗎?
我只對一種語言進行排序(不混合)。該語言在安裝應用程序時設置,以後不能更改。 – mahdouch 2011-03-02 18:36:24