给left join关联关系字段加索引

2018-07-04

left join是相当耗资源的操作,如果关联的字段没有索引的话,速度是很慢的,所以如果有left join的话,最好用索引字段取关联。

创建索引会消耗大量资源,会导致数据库死锁,最好在非高峰时段创建。

1、将left join关联关系字段都加为索引,

2、prepare TS
ym=`date +%Y%m`
nm=`date -d '1month' +%Y%m`

its_src=CONTACT_DATA_IDX_TS

its_dst=CONTACT_DATA_IDX_TS_${ym}

idx_ts1=/data3/oracle/contact_data_idx_ts_${nm}_1.dbf

sqlplus abc/ta123456 << EOF
set hea off
--alter tablespace $its_src rename to $its_dst;
CREATE TABLESPACE $its_src DATAFILE '$idx_ts1' SIZE 512M AUTOEXTEND ON NEXT 256M MAXSIZE UNLIMITED BLOCKSIZE 8k;

3、创建索引并指定表空间。
CREATE INDEX IDX_LOGIN_MESSAGE_CID on LOGIN_MESSAGE(COMPANY_ID);DROP INDEX index_name ON table_name

CREATE INDEX IDX_contact_data_view_user_id on contact_data(view_user_id) TABLESPACE CONTACT_DATA_IDX_TS;--为索引指定表空间
CREATE INDEX IDX_contact_data_NAME on contact_data(NAME) TABLESPACE CONTACT_DATA_IDX_TS;

4、修改index的表空间
alter index pk_t_user rebuild tablespace 111_inx;

5、索引能提高检索数据的效率,会一定程度降低数据insert的效率;如果新增的数据是按照索引的顺序递增或递减,则无需定期重建索引;反之,则应该定期重建。

分类:数据库 | 标签: |

相关日志

评论被关闭!