不能建立降序索引的問題的解決
這兩天把資料庫從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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [20181123]關於降序索引問題.txt索引
- 不能建立pfile的問題
- [20181124]關於降序索引問題4.txt索引
- [20181124]關於降序索引問題3.txt索引
- [20181124]關於降序索引問題2.txt索引
- [20190910]關於降序索引問題5.txt索引
- [20191209]降序索引疑問.txt索引
- 解決webpack不能匹配post請求的問題Web
- 解決Django本地介面不能跨域訪問的問題Django跨域
- [20191209]降序索引疑問2.txt索引
- [20200303]降序索引疑問5.txt索引
- [20191210]降序索引疑問3.txt索引
- [20191218]降序索引疑問4.txt索引
- 解決 HttpServletRequest 的輸入流不能重複讀的問題HTTPServlet
- 解決CORS跨域不能傳遞cookies的問題CORS跨域Cookie
- 完美解決html中select的option不能隱藏的問題。HTML
- vue 解決不能攜帶session問題VueSession
- 解決macOS vim 不能連按問題Mac
- 解決關於IIS gzip不能正常啟用的問題
- 遠端服務不能啟動問題的解決方法
- SVN解決不能檢視最近提交日誌的問題
- 解決建立SpringBoot工程載入較慢的問題Spring Boot
- Laradock 網路問題不能下載解決
- WPS 2019解決不能啟用巨集問題
- IOS下圖片不能顯示問題的解決辦法iOS
- MySQL點陣圖索引解決使用者畫像問題(簡化建立流程)MySql索引
- RAG能解決大模型的什麼問題?不能解決什麼問題?大模型
- 快速解決cmd中不同盤之間不能切換的問題
- 怎麼解決Ubuntu中spyder不能輸入中文的問題阿Ubuntu
- MyBatisPlus解決邏輯刪除與唯一索引的相容問題MyBatis索引
- 解決 Unexpectedlexicaldeclarationincaseblock的問題BloC
- 解決winform窗體重複建立問題ORM
- url-loader不能處理html中引入的圖片問題的解決方案HTML
- 【ASK_ORACLE】由於索引分裂而產生的效能問題的解決方案Oracle索引
- 優化-mysql子查詢索引失效問題解決優化MySql索引
- GitHub 不能訪問解決方案Github
- URL請求不能解決中文請求的問題
- 面試官出的MySQL索引問題,這篇文章全給你解決!面試MySql索引