不能建立降序索引的問題的解決
這兩天把資料庫從9204升級到9208,一路順利。
今天發現一個奇怪的問題:
SQL> create index IDX_ITEM_UPDATE_DATE on ITEM (ITEM_CATEGORY, ITEM_TYPE, ITEM_SEQ_NUMBER, UPDATE_DATE DESC, ITEM_ID DESC);
Index created
但發現建立出來的索引忽略了desc這個關鍵字
SQL> select TABLE_NAME,COLUMN_NAME, COLUMN_POSITION,DESCEND from user_ind_columns where index_name='IDX_ITEM_UPDATE_DATE';
TABLE_NAME COLUMN_NAME COLUMN_POSITION DESCEND
------------------------------ -------------------- --------------- -------
ITEM ITEM_TYPE 2 ASC
ITEM ITEM_SEQ_NUMBER 3 ASC
ITEM UPDATE_DATE 4 ASC
ITEM ITEM_ID 5 ASC
ITEM ITEM_CATEGORY 1 ASC
SQL> select dbms_metadata.get_ddl('INDEX','IDX_ITEM_UPDATE_DATE') ddl from dual;
DDL
------------------------------------------------------------------------------------------------------------------------------------------------------------------
CREATE INDEX "TEST_TAG_GROUP"."IDX_ITEM_UPDATE_DATE" ON "TEST_TAG_GROUP"."ITEM" ("ITEM_CATEGORY", "ITEM_TYPE", "ITEM_SEQ_NUMBER", "UPDATE_DATE", "ITEM_ID")
PCTFREE 10 INITRANS 2 MAXTRANS 255
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
TABLESPACE "TEST3"
我的環境是9208+linux as 4
從9204升級到9208,中間沒有修改過任何引數,在原來的9204版本是可以建立降序索引的。
我在另外一臺同樣環境(9208+linux as 4)的db就沒有問題
首先懷疑的是compatible引數問題,但在資料庫compatible=9.2.0.0。
多方查詢資料無果,還是把注意力返回到引數上。先對比兩個庫引數的異同:
SQL> SELECT NAME,VALUE FROM v$parameter MINUS SELECT NAME,VALUE FROM ;
NAME VALUE
---------------------------------------------------------------- ------------------------------------------
_ignore_desc_in_index TRUE
aq_tm_processes 1
background_dump_dest /opt/oracle/admin/sc2test/bdump
control_files /opt/oracle/oradata/sc2test/control01.ctl,
core_dump_dest /opt/oracle/admin/sc2test/cdump
db_cache_size 838860800
db_keep_cache_size 0
db_name sc2test
dml_locks 1232
enqueue_resources 1452
global_names FALSE
instance_name sc2test
java_pool_size 16777216
log_buffer 524288
max_rollback_segments 61
mts_service sc2test
open_cursors 300
pga_aggregate_target 314572800
processes 250
service_names sc2test
NAME VALUE
---------------------------------------------------------------- -------------------------------------------
session_cached_cursors 0
sessions 280
sga_max_size 1074861452
shadow_core_dump partial
shared_pool_reserved_size 8388608
shared_pool_size 167772160
timed_statistics FALSE
transactions 308
undo_tablespace UNDOTBS1
user_dump_dest /opt/oracle/admin/sc2test/udump
30 rows selected
SQL>
發現一個可疑引數:_ignore_desc_in_index,用來忽略索引中的desc關鍵字。
這個引數是幾個月前為了fix一個bug修改的。
把它修改後重建索引。
SQL> alter system set "_ignore_desc_in_index"=false;
System altered.
SQL> drop index IDX_ITEM_UPDATE_DATE;
Index dropped
SQL> create index IDX_ITEM_UPDATE_DATE on ITEM (ITEM_CATEGORY, ITEM_TYPE, ITEM_SEQ_NUMBER, UPDATE_DATE DESC, ITEM_ID DESC) compute statistics;
Index created
SQL> select TABLE_NAME,COLUMN_NAME, COLUMN_POSITION,DESCEND from user_ind_columns where index_name='IDX_ITEM_UPDATE_DATE';
TABLE_NAME COLUMN_NAME COLUMN_POSITION DESCEND
------------------------------ -------------------- --------------- -------
ITEM ITEM_TYPE 2 ASC
ITEM ITEM_SEQ_NUMBER 3 ASC
ITEM SYS_NC00040$ 4 DESC
ITEM SYS_NC00041$ 5 DESC
ITEM ITEM_CATEGORY 1 ASC
如我們所願,降序索引已經建立。
那麼原來的降序索引為什麼能夠建立呢?我猜測可能原因是:
1、_ignore_desc_in_index在9204中無用,但在9208中修正了,它才真正起作用(這可能是一個BUG)
2、索引是在修改_ignore_desc_in_index前建立的(時間太長,忘記了)
不管怎麼樣,隱含引數還是不動為妙!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/231499/viewspace-63766/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 降序索引應用在Top N問題上的應用索引
- 解決對時間列運算導致不能走索引的問題索引
- 解決國內gem不能用的問題
- 解決jdbc不能重連mysql的問題JDBCMySql
- 建立聯合函式索引解決top sql效能問題函式索引SQL
- 解決Redmine建立&更新問題時很慢的問題
- 解決不能訪問 VMware Server Web Access 的問題ServerWeb
- 解決webpack不能匹配post請求的問題Web
- 解決linux不能上外網的問題Linux
- 解決VNC有些鍵不能輸入的問題VNC
- 解決mysql不能遠端連線的問題MySql
- 解決除錯不能命中斷點的問題除錯斷點
- 解決Django本地介面不能跨域訪問的問題Django跨域
- 解決CORS跨域不能傳遞cookies的問題CORS跨域Cookie
- 解決vs2010下不能建立專案及檔案的問題
- 解決 HttpServletRequest 的輸入流不能重複讀的問題HTTPServlet
- vue 解決不能攜帶session問題VueSession
- 解決macOS vim 不能連按問題Mac
- SQL SERVER建立索引需要注意的問題SQLServer索引
- 遠端服務不能啟動問題的解決方法
- 解決關於IIS gzip不能正常啟用的問題
- SVN解決不能檢視最近提交日誌的問題
- mongodb shell不能使用退格鍵的問題解決方案MongoDB
- 遠端協助解決重建索引的危機問題索引
- 利用函式索引解決複雜的約束問題函式索引
- JOB建立,解決網友問題
- 完美解決html中select的option不能隱藏的問題。HTML
- 開啟頁面時出現"Automation 伺服器不能建立物件"問題的解決方法伺服器物件
- mysql 本機不能登入問題解決MySql
- IOS下圖片不能顯示問題的解決辦法iOS
- 解決手機連上WIFI但不能上網的問題WiFi
- 解決 Git-bash 不能使用 Composer 命令的問題Git
- 快照庫MV不能成功重新整理問題的解決
- stream不能實時傳送standby redo log問題的解決
- JBuilder Editor中游標不能正確定位問題的解決 (轉)UI
- 解決Oracle11g中的索引名字亂碼問題Oracle索引
- 關於Oracle降序索引的定意及回溯Oracle索引
- MySQL點陣圖索引解決使用者畫像問題(簡化建立流程)MySql索引