2014-11-03 122 views
1

我有一張巨大的表格,我不能再進行任何分區或子分區,也不允許進行任何修改。我想通過批量查詢其記錄,並認爲一個好方法是使用帳號中的最後兩位數字(不會有任何其他字段分裂記錄均勻)。在Oracle中爲數字的最後兩位數字創建索引

我想我至少需要索引,不知何故(記住我不能改變表添加虛擬列)。

在這種情況下是否有任何種類的索引?

我使用的是Oracle 11gR2的

+1

一個基於函數的索引可能會有所幫助 – Multisync 2014-11-03 16:50:30

+0

謝謝,將研究一下! – filippo 2014-11-03 16:55:50

回答

3

您可以使用function based index

create index two_digits_idx on table_name (substr(account_number, -2)); 

該指標將只在這樣的疑問:

select ... 
    from table_name t ... 
where substr(account_number, -2) = '25' -- or any other two digits 

對於使用索引,你需要使用在查詢中像索引中一樣的表達式。

相關問題