易截截图软件、单文件、免安装、纯绿色、仅160KB

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 表空间操作

oracle表空间操作详解
  1
  2
  3作者:   来源:    更新日期:2006-01-04 
  5
  6 
  7建立表空间
  8
  9CREATE TABLESPACE data01
 10DATAFILE '/ora ......

获取Oracle 表信息 整成数据字典

 今天XXX说要把Oracle 里的几张表重新整理下,呵呵 结果阿发现10来张表还真是说多不多说少一点都不少 。因为表里面的commet已经填上了 。偷懒的想法顿时出现嘎嘎
select t.COLUMN_NAME 字段名, t.DATA_TYPE||'('||t.DATA_LENGTH||')' 字段类型,t.NULLABLE 是否为空,t.DATA_DEFAULT 默认值,p.comments 字段说明
fro ......

Oracle递归函数

CREATE OR REPLACE VIEW ADMIN.TYPETREEVIEW
(ID, ITEMNO, ITEMNOSUB, GROUPID, MEMO,
TREE)
AS
/* 2007/01/23 16:51 XieShaoHua 递归查询 */
SELECT     typetree.ID, typetree.itemno, typetree.itemnosub, typetree.groupid,
         &n ......

oracle树结构查询

 
connect by 是结构化查询中用到的,其基本语法是:
select ... from tablename start with 条件1
connect by 条件2
where 条件3;
例:
select * from table
start with org_id = 'HBHqfWGWPy'
connect by prior org_id = parent_id;
 
简单说来是将一个树状结构存储在一张表里,比如一个表 ......

使用Oracle的DBMS_SQL包执行动态SQL语句

 在某些场合下,存储过程或触发器里的SQL语句需要动态生成。Oracle的DBMS_SQL包可以用来执行动态SQL语句。本文通过一个简单的例子来展示如何利用DBMS_SQL包执行动态SQL语句:
DECLARE
       v_cursor NUMBER;
       v_stat NUMBER;
  & ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号