oracle 排序内存
我在http://zhidao.baidu.com/question/123262452.html?fr=msg 提的问题,整理到这里 非常感谢 zjwssg
的回答
排序内存涉及到PGA。
什么时候使用自动PGA内存管理?什么时候使用手动PGA内存管理?
白天系统正常运行时适合使用自动PGA内存管理,让Oracle根据当前负载自动管理、分配PGA内存。
夜里用户数少、进行维护的时候可以设定当前会话使用手动PGA内存管理,让当前的维护操作获得尽可能多的内存,加快执行速度。
如:服务器平时运行在自动PGA内存管理模式下,夜里有个任务要大表进行排序连接后更新,就可以在该操作session中临时更改为手动PGA内存管理,然后分配大的SORT_AREA_SIZE和HASH_AREA_SIZE(50%甚至80%内存,要确保无其他用户使用),这样能大大加快系统运行速度,又不影响白天高峰期对系统造成的影响。
操作命令
会话级更改
ALTER SESSION SET WORKAREA_SIZE_POLICY = {AUTO | MANAUL};
ALTER SESSION SET SORT_AREA_SIZE = 65536;
ALTER SESSION SET HASH_AREA_SIZE = 65536;
学以致用
1,排序区:
pga_aggregate_target为100MB,单个查询能用到5%也就是5MB时排序所需时间
SQL> create table sorttable as select * from all_objects;
表已创建。
SQL> insert into sorttable (select * from sorttable);
已创建49735行。
SQL> insert into sorttable (select * from sorttable);
已创建99470行。
SQL> set timing on;
SQL> set autotrace traceonly;
SQL> select * from sorttable order by object_id;
已选择198940行。
已用时间: 00: 00: 50.49
Session级修改排序区为30mb所需时间
SQL> ALTER SESSION SET WORKAREA_SIZE_POLICY = MANUAL;
会话已更改。
已用时间: 00: 00: 00.02
SQL> ALTER SESSION SET SORT_AREA_SIZE = 30000000;
会话已更改。
已用时间: 00: 00: 00.01
SQL> select * from sorttable order by object_id;
已选择198940行。
已用时间: 00: 00: 10.76
可以看到所需时间从50.49秒减少到10.31秒,速度提升很明显。
2,散列区:
pga_aggregate_target为1
相关文档:
最简单的一个Oracle定时任务
一、在PLSQL中创建表:
create table HWQY.TEST
(
CARNO VARCHAR2(30),
CARINFOID NUMBER
)
二、在PLSQL中创建存储过程:
create or replace procedure pro_test
AS
carinfo_id number;
BEGIN
select s_CarInfoID.nextval into carinfo_id
from dual;
in ......
select t.*, t.rowid from indicators t start with (t.isleaf='1' and t.rid='26020')
connect by prior t.pid = t.id order by t.inum
从叶子节点依据id=pid的关系向上递归到跟节点。
select t.*, t.rowid from indicators t start with (t.pid='0' and t.rid='26020')
connect by prior t.id = t.pid order by t.i ......
先看Oracle 官方解释
Oracle managed file (OMF)
A file that is created automatically by the Oracle database server when it is needed and automatically deleted when it is no longer needed.
如何判断你的数据库是否为支持OMF
SQL> show parameter db_create_file_dest;
NAME & ......
自从学ORACLE以来就从来没有发生过什么故障,比较幸运。其实也不能算幸运,因为这样就少了锻炼的机会了,呵呵,怎么觉得自己有点求虐的倾向……
即便是在学习backup and recovery basics的时候,也只是做做备份的实验,没做过恢复,因为身边没有人指导,也没其他同学在学ORACLE,所以怕一出问题肯定很麻烦,解 ......