PGA_AGGREGATE_TARGET = (物理内存大小 * 80%) * 20%
alter index xxx unusable;
配合参数
SKIP_UNUSABLE_INDEXES=true
使用
select object_name from all_objects where status ='INVALID' and object_type ='PROCEDURE' and
owner in ('CPSASST','FACTORY','MANAGE','MANAGEBAK');
DEDICATED
DB shared_servers = 0 , TNSname.ora server=shared或者不设置 ==> DEDICATED连接
DB shared_servers = 0 , TNSname.ora server=DEDICATED ==> DEDICATED连接
DB shared_servers > 0 , TNSname.ora server=DEDICATED ==> DEDICATED连接
DB shared_servers > 0 , TNSname.ora server=shared或者不设置 ==> Shared连接
select sum(sessions_current) cur_sessions,sum(sessions_highwater) high_sessions from v$license;--查看当前以及历史最大SESSION数
select * from user_jobs;--查看调度任务
select * from dba_jobs_running;--正在执行的任务
select * from dba_jobs;--执行完的任务
--utlrp.sql
--\rdbms\admin\utlrp.sql;
--过程:
alter procedure factory.p_gettask compile;
alter procedure factory.p_afreshworkinfo compile;
--函数:
alter function function_name compile;
--包:
alter package package_name compile;
--包体:
alter package package_name compile body;
Enable row movement在3种情况下需要使用。
1. flashback table
2. change the partition key
3. alter table shrink space
alter table t enable row movement;
because DML operations are used to bring the table back to its former state, the ROWIDs in the table change.
建立一张表
SQL> create table test_shrik (id number ) tablespace users;
Table created.
查看各个表空间管理信息
SQL> select tablespace_name,t.segment_space_management
2 from dba_tablespaces t
3 where tablespace_name in ('SYSTEM','USERS');
TABLESPACE_NAME SEGMEN
------------------------------ ------
SYSTEM MANUAL
USERS AUTO
插入数据
SQL> insert into test_shrik
2 select rownum from dual connect by level <=200000;
200000 rows created.
SQL> commit ;
Commit complete.
查看统计信息
SQL> select t.table_name,BLOCKS,EMPTY_BLOCKS,NUM_ROWS
2 from user_tables t
3 where table_name = upper('test_shrik');
TABLE_NAME BLOCKS EMPTY_BLOCKS NUM_ROWS
------------------------------ ---------- ------------ ----------
TEST_SHRIK
收集统计信息
SQL> exec dbms_stats.gather_table_stats('sys','test_shrik');
PL/SQL procedure successfully completed.
SQL> select t.table_name,BLOCKS,EMPTY_BLOCKS,NUM_ROWS
2 from user_tables t
3 where table_name = upper('test_shrik');
TABLE_NAME BLOCKS EMPTY_BLOCKS NUM_ROWS
------------------------------ ---------- ------------ ----------
TEST_SHRIK 306 0 197855
删除数据
SQL> delete from test_shrik where id >=100000 ;
100001 rows deleted.
SQL> commit ;
Commit complete.
查看统计信息
SQL> select t.table_name,BLOCKS,EMPTY_BLOCKS,NUM_ROWS
2 from user_tables t
3 where table_name = upper('test_shrik');
TABLE_NAME BLOCKS EMPTY_BLOCKS NUM_ROWS
------------------------------ ---------- ------------ ----------
TEST_SHRIK 306 0 197855
再次收集,查看信息
SQL> exec dbms_stats.gather_table_stats('sys','test_shrik');
PL/SQL procedure successfully completed.
SQL> select t.table_name,BLOCKS,EMPTY_BLOCKS,NUM_ROWS
2 from user_tables t
3 where table_name = upper('test_shrik');
TABLE_NAME BLOCKS EMPTY_BLOCKS NUM_ROWS
------------------------------ ---------- ------------ ----------
TEST_SHRIK 306 0 101835
启用表的行转移功能
SQL> alter table test_shrik enable row movement ;
Table altered.
压缩高水位线
SQL> alter table test_shrik shrink space ;
Table altered.
查看统计信息
SQL> select t.table_name,BLOCKS,EMPTY_BLOCKS,NUM_ROWS
2 from user_tables t
3 where table_name = upper('test_shrik');
TABLE_NAME BLOCKS EMPTY_BLOCKS NUM_ROWS
------------------------------ ---------- ------------ ----------
TEST_SHRIK 306 0 101835
收集统计信息
SQL> exec dbms_stats.gather_table_stats('sys','test_shrik');
PL/SQL procedure successfully completed.
再次查看
SQL> select t.table_name,BLOCKS,EMPTY_BLOCKS,NUM_ROWS
2 from user_tables t
3 where table_name = upper('test_shrik');
TABLE_NAME BLOCKS EMPTY_BLOCKS NUM_ROWS
------------------------------ ---------- ------------ ----------
TEST_SHRIK 151 0 99344