oracle索引建立
alter system修改的是参数文件,所有用户都会生效
alter session只是对当前session生效
alter database 一般修改的是控制文件信息
主要修改;
下面这两个调整值一样 但是一定要小于PGA的值 (查询PGA 大小sql:SHOW PARAMETER PGA)
Plsql:新建命令窗口 执行: SHOW PARAMETER PGA(查询pga大小)
根据pga大小修改sort_area_size和sort_area_retained_size 这两个一定要小于PGA大小 一般PGA的50%
sort_area_size和sort_area_retained_size一般一样
alter session set workarea_size_policy=manual;
alter session set db_file_multiblock_read_count=128;
alter session set sort_area_size=573741824;
alter session set sort_area_retained_size=573741824;
workarea_size_policy: 该初始化参数用于指定调整SQL工作区所使用的策略,默认值为AUTO。当设置该参数为AUTO时,Oracle会根据参数pga_aggregate_target的设置自动调节排序区;当设置该参数为MANUAL时,Oracle会按照参数sort_area_size的设置调节排序区。该初始化参数是动态参数,可以使用ALTER SESSION或ALTER SYSTEM命令进行修改。
db_file_multiblock_read_count:初始化参数db_file_multiblock_read_count 影响oracle在执行全表扫描时一次读取的block的数量. db_file_multiblock_read_count的设置要受os最大io能力影响,也就是说,如果 你系统的硬件io能力有限,即使设置再大的db_file_multiblock_read_count也是没有用 的。理论上,最大db_file_multiblock_read_count和系统io能力应该有如下关系:
max(db_file_multiblock_read_count) = maxosiosize/db_block_size
当然这个max(db_file_multiblock_read_count)还要受oracle的限制,目前oracle所支持的最大db_file_multiblock_read_count 值为128.
sort_area_size:该初始化参数用于指定排序区尺寸,默认值为64K。该初始化参数是为了与早期版本兼容而保留的,Oracle不建议使用该参数,而建议使用初始化参数pga_aggregate_target自动调节SQL工作区尺寸。该初始化参数是动态参数,可以使用ALTER SESSION或ALTER SYSTEM … DEFERRED命令进行修改
set sort_area_retained_size:该初始化参数用于指定在排序运行完成之后UGA保留的总计内存,默认值为SORT_AREA_SIZE的参数值。该初始化参数是为了与早期版本兼容而保留的,Oracle不建议使用该参数,而建议使用初始化参数pga_aggregate_target自动调节SQL工作区尺寸。该初始化参数是动态参数,可以使用ALTER SESSION 或 ALTER SYSTEM … DEFERRED命令进行修改
如果不修改可能执行建索引语句会几个小时
执行建索引sql 在建索引sql语句后面加上nologging (意思是不生成日志,假如这个索引文件30G生成日志文件也会20多个G)
全局索引sql: create index IDX_XX on table(c1 DESC, c2, c3, c4,c5,c6);
分区索引sql:create index IDX_XX on table(c1 DESC, c2, c3, c4,c5,c6)local;