1個名爲DROPINDEXES.SQL的腳本,會執行刪除索引的語句
1個名爲CREATEINDEXES.SQL的腳本,會建立出來DROPINDEXES.SQL腳本刪掉的索引
須要有方法確認刪掉的索引都被從新建立出來,沒有漏掉的。若是缺乏索引,可能會致使應用程序性能出現問題。
首先,須要從DROPINDEXES.SQL中抽取出來刪掉的索引列表,名爲DROPINDEXES_filtered.txt; 從CREATEINDEXES中抽取出來刪掉的索引列表,名爲CREATEINDEXES_filtered.txt
而後,針對抽取出來的 DROPINDEXES_filtered.txt和CREATEINDEXES_filtered.txt進行對比,就能夠知道刪掉的有沒有被建立出來了。
Drop index PS_Y_GP_HR_TAS; Drop index PS_GARN_OPERANDS; Drop index PS_GB_BINDVAL_TBL; Drop index PS_ACAD_PLAN_LANG; Drop index PS_TL_RI_EMPL1;
CREATE UNIQUE INDEX SYSADM.PS_Y_GP_HR_TAS ON SYSADM.PS_Y_GP_HR_TAS (EMPLID, EMPL_RCD, EFFDT DESC, EFFSEQ) PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL 40960 NEXT 106496 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE PSINDEX ; CREATE UNIQUE INDEX SYSADM.PS_GARN_OPERANDS ON SYSADM.PS_GARN_OPERANDS (STATE_GARN_LAW, GARN_RULE_ID, EFFDT DESC, GARN_STEP) PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL 40960 NEXT 106496 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE PSINDEX ; CREATE UNIQUE INDEX SYSADM.PS_GB_BINDVAL_TBL ON SYSADM.PS_GB_BINDVAL_TBL (PROCESS_INSTANCE, GB_GROUP_ID2, PNLGRPNAME, GB_EFFDT DESC, EDITTABLE) PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL 40960 NEXT 106496 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE PSINDEX ; CREATE UNIQUE INDEX SYSADM.PS_ACAD_PLAN_LANG ON SYSADM.PS_ACAD_PLAN_LANG (INSTITUTION, ACAD_PLAN, LANGUAGE_CD, EFFDT DESC) PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE( INITIAL 40960 NEXT 106496 MAXEXTENTS 2147483645 PCTINCREASE 0) TABLESPACE PSINDEX ; CREATE INDEX SYSADM.PS_TL_RI_EMPL1 ON SYSADM.PS_TL_RI_EMPL1 (PROCESS_INSTANCE, EMPLID, EMPL_RCD, EFFDT DESC, END_DT) PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE( INITIAL 40960 NEXT 106496 MAXEXTENTS 2147483645 PCTINCREASE 0) TABLESPACE PSINDEX ;
針對DROPINDEX.SQL,使用下面腳本過濾出索引列表DROPINDEX_filtered:sql
awk '{print $3}' DROPINDEX.SQL | cut -d ';' -f 1 > DROPINDEX_filtered.txt
針對CREATEINDEX.SQL,使用下面腳本過濾出索引列表CREATEINDEX_filtered.txt:bash
grep -P "^CREATE\ INDEX|CREATE\ UNIQUE\ INDEX" CREATEINDEX.SQL | awk -f filter.awk | cut -d '.' -f 2 > CREATEINDEX_filtered.txt
其中,filter.awk的內容以下:性能
{ if ( $2 == "INDEX" ) print $3; else if ( $2 == "UNIQUE" ) print $4; }
最終獲得的清單樣子以下:
DROPINDEX_filtered.txtcode
PS_Y_GP_HR_TAS PS_GARN_OPERANDS PS_GB_BINDVAL_TBL PS_ACAD_PLAN_LANG PS_TL_RI_EMPL1
CREATEINDEX_filtered.txt索引
PS_Y_GP_HR_TAS PS_GARN_OPERANDS PS_GB_BINDVAL_TBL PS_ACAD_PLAN_LANG PS_TL_RI_EMPL1
以上例子,但願對你們有用。
have a good day.class