随笔分类 -  Oracle性能优化

上一页 1 2 3 4 下一页
insert 中的append
摘要:--1 append只在insert … select …中起作用,像insert /*+ append */ into t values(…)这类的语句是不起作用的。在update、delete操作中,append也不起作用。 --2 append会使数据库不记录直接路径导入的数据的重做日志,会对恢复带来麻烦。 --3 append直接在表段的高水位线以上写数据,不会重用高水位线以下的空间,会对... 阅读全文
posted @ 2009-02-11 11:36 一江水 阅读(1315) 评论(0) 推荐(0) 编辑
insert append需要注意的一个小问题
摘要:用insert append可以实现直接路径加载,速度比常规加载方式快。但有一点需要注意: insert append时在表上加“6”类型的锁,会阻塞表上的所有DML语句。因此在有业务运行的情况下要慎重使用。若同时执行多个insert append对同一个表并行加载数据,并不一定会提高速度。因为每一时刻只能有一个进程在加载(排它锁造成)。 SQL> create table test as se... 阅读全文
posted @ 2009-02-11 11:35 一江水 阅读(2322) 评论(1) 推荐(0) 编辑
Oracle Direct-Path Insert学习笔记
摘要:http://www.blogjava.net/fjpan2002/archive/2006/11/14/81051.aspx (1)、Oracle插入数据有两种方式: a、常规插入:重新使用table中的自由空间,在已有数据中插入新数据;维护引用完整性约束。 b、Direct-Path插入:在表中已有数据之后插入新数据;数据直接插入数据文件,绕过buffer cache;已有数据中的自由空间没... 阅读全文
posted @ 2009-02-11 11:20 一江水 阅读(3054) 评论(0) 推荐(0) 编辑
关于insert /*+ append*/ 各种insert插入速度比较
摘要:SQL> select count(*) from t; COUNT(*) ---------- 5442048 **************************** SQL> alter table t1 nologging; SQL> insert /*+append*/ into t1 2 select * from t; 5442048 rows created. Elapsed: 0... 阅读全文
posted @ 2009-02-11 11:18 一江水 阅读(24492) 评论(0) 推荐(1) 编辑
不管表是否处于nologging下,direct insert 都不会对数据产生 UNDO
摘要:http://blog.csdn.net/jat_chipmore/archive/2008/11/27/3391402.aspx 从理论上来说,对于 direct insert 的 undo (rowid)实在没有存在的必要 因为HWM 在移动的过程中,这些block是不能被其他process使用的,那么,意味着,只要记录下该次direct insert所涉及到的 空间的redo 和 undo ... 阅读全文
posted @ 2009-02-11 11:11 一江水 阅读(1755) 评论(0) 推荐(0) 编辑
把对象PIN到内存中
摘要:一、安装dbms_shared_pool包 connect SYS AS SYSDBA @?/rdbms/admin/dbmspool.sql @?/rdbms/admin/prvtpool.plb 二、查找内存大于**K的对象 set serveroutput on size 5000 exec dbms_shared_pool.size(500); 三、把对象PIN到共享池 exec dbm... 阅读全文
posted @ 2009-02-05 17:59 一江水 阅读(648) 评论(0) 推荐(0) 编辑
解决ora-01652无法通过128(在temp表空间中)扩展temp段的过程
摘要:解决ora-01652无法通过128(在temp表空间中)扩展temp段的过程 昨天开发人员跟我说,执行一个sql语句后,大约花了10分钟,好不容易有一个结果,但是报了一个ora-01652错误,查阅了oracle的错误代码说明:意思是指temp表空间无法自动扩展temp段。这种问题一般有两种原因:一是临时表空间空间太小,二是不能自动扩展。 分析过程: 既然是temp表空间有问题,那当然... 阅读全文
posted @ 2009-02-05 13:52 一江水 阅读(51676) 评论(0) 推荐(1) 编辑
Oracle 9i和10g在create index和rebuild index的统计信息的区别
摘要:http://rdc.taobao.com/blog/dba/html/192_differencts_for_statistics_create_or_rebuild_index_9i_10g.html 在9.2.0.6和10.2.0.4做了个小小的试验,演示9i和10g对于create index和rebuild index时统计信息的区别。这里列出试验的过程,由于结果比较明显,就懒得写太多文... 阅读全文
posted @ 2009-02-05 13:05 一江水 阅读(1711) 评论(0) 推荐(0) 编辑
估计创建索引需要的排序空间数量
摘要:表 T 3765888 rows 准备在2个字段上建立索引(object_type,object_name) ,分析过后从user_tab_columns中获得平均列长度的统计信息 avg_row_len object_name 23 avg_row_len object_type 8 9i得utlxpls虽然能够估计查询使用的临时表空间,但是仍然不能估计创建索引所需要的临时表空间数量,... 阅读全文
posted @ 2009-02-02 15:52 一江水 阅读(717) 评论(0) 推荐(0) 编辑
在Oracle数据库中按用户名重建索引的方法
摘要:如果你管理的Oracle数据库下某些应用项目有大量的修改删除操作, 数据索引是需要周期性的重建的. 它不仅可以提高查询性能, 还能增加索引表空间空闲空间大小. 在ORACLE里大量删除记录后, 表和索引里占用的数据块空间并没有释放. 重建索引可以释放已删除记录索引占用的数据块空间. 转移数据, 重命名的方法可以重新组织表里的数据. 下面是可以按ORACLE用户名生成重建索引的SQL脚本:... 阅读全文
posted @ 2009-02-02 14:04 一江水 阅读(901) 评论(0) 推荐(0) 编辑
观察analyze table compute statistics 都对什么对象统计了信息
摘要:analyze table compute statistics = analyze table compute statistics for table for all indexes for all columns; 比analyze table compute statistics for table for all indexes for all indexed columns 分析了更多... 阅读全文
posted @ 2009-02-01 23:09 一江水 阅读(7147) 评论(0) 推荐(0) 编辑
analyze index時,validate structure和compute statistics的區別?
摘要:validate structure和compute statistics的區別? analyze index index1 validate structure: analyze index index1 compute statistics: 在分析索引的時候,一般會用到以上二個命令,那么這二個命令是用來干嘛呢? analyze index index1 validate structur... 阅读全文
posted @ 2009-02-01 23:08 一江水 阅读(1321) 评论(0) 推荐(0) 编辑
什么样的index需要rebuild?
摘要:什么样的index需要rebuild? 当一个table经常进行DML操作时,它的索引会存在许多block空间的浪费,这是因为index block中的记录只有在全部表示为不可用时, block 才能被加入到freelist中去被重新利用。所以我们需要寻找那些浪费空间很严重的index。 方法是: 1) analyze index index_name validate structur... 阅读全文
posted @ 2009-02-01 23:06 一江水 阅读(882) 评论(0) 推荐(0) 编辑
用Shrink Space收缩Oracle数据段
摘要:在oracle中可以使用alter table table_name shrink space收缩表,使用shrink有两个前提条件: 1、表必须启用row movement 2、表段所在表空间的段空间管理(segment space management)必须为auto 实验如下: --建立一个segment space management auto表空间 SQL> create ta... 阅读全文
posted @ 2009-02-01 00:16 一江水 阅读(6412) 评论(0) 推荐(0) 编辑
Shrink space合并表的碎片
摘要:一般表里有碎片我们都采用alter table table_name move tablespace_name,或者exp,drop table table_name,imp的2种方式10G给我们其他的方法.下面我来试一吧 C:\Documents and Settings\Administrator>sqlplus greatfinish/finish SQL*Plus: Release ... 阅读全文
posted @ 2009-02-01 00:10 一江水 阅读(6000) 评论(0) 推荐(0) 编辑
shrinks a LOB segment
摘要:shrinks a LOB segment http://www.itpub.net/thread-1034679-1-1.html 在oracle10G中,如果表的内容被删除后想回收使用空间和降低HWM,我们可以通过shrink的方式在线完成. 那么如果表中有LOB字段时,也可以做吗?答案是肯定的,当然可以. 我们可以通过两种方法来做.一种是可以通过普通的alter table shrink ... 阅读全文
posted @ 2009-02-01 00:06 一江水 阅读(1313) 评论(0) 推荐(0) 编辑
利用rowid快速在线更新海量数据(zt)
摘要:http://www.itpub.net/thread-1052077-1-2.html 最近一直在折腾大表的更新问题,今天终于有了突破。兴奋之余发个帖子跟大家分享一下心得,并且讨论一下是否还可能进一步提高处理速度。 问题是这样的:一张5亿条记录的表,没有分区。由于增加了一个冗余字段,需要根据另外一张表(4.8亿条)更新这个大表。下面是具体的描述: 环境:HP-UX 11i+Oracle9.2.... 阅读全文
posted @ 2009-01-31 21:46 一江水 阅读(1906) 评论(2) 推荐(1) 编辑
查看等待事件
摘要:显示latch及热点对象(速度较慢) select sw.sid, event, l.name, de.segment_name from v$session_wait sw, v$latch l, dba_extents de where event not like '%SQL%' and event not like '%rdbms%' and event not like '%mon%' and sw.p2 = l.latch#(+) and sw.p1 = de.file_id(+) and p2 between de.block_id and de.block_id + de.blocks - 1; 阅读全文
posted @ 2009-01-31 19:20 一江水 阅读(3754) 评论(0) 推荐(0) 编辑
表结构的迁移[转]
摘要:在oracle中,将表结构迁移其实有多种方法: 1、exp导出,且row=n 2、利用DBMS_METADATA.GET_DDL,利用该方法可以将当初的建表语句导出成文本,且建表语句包含storage。 set pagesize 0 set long 90000 set feedback off set echo off SELECT DBMS_METADATA.GET_DDL('TABLE'... 阅读全文
posted @ 2009-01-14 14:53 一江水 阅读(950) 评论(0) 推荐(1) 编辑
如何更快地批量数据处理?
摘要:如何更快地批量数据处理? 作者 xzh2000 在批量处理数据时,比如从上亿条记录的表中删除上1000万条数据,不仅要考虑对undo的影响,还要考虑对redo,对磁盘i/o,锁、阻塞等的影响,在某种意思上讲,同样的任务,执行的sql次越少,总的消耗的时间就越少。。。 create table tmp_object1 as select * from dba_objects; cre... 阅读全文
posted @ 2008-12-08 15:05 一江水 阅读(858) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 下一页