ORACLE零散乱记

本文介绍了Oracle数据库中关于PGA配置、无效索引处理、无效对象检查、连接类型配置、会话数监控、任务调度管理及表空间管理等内容,特别针对表压缩与统计信息收集进行了详细说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值