oracle性能优化
文章平均质量分 81
cnham
专注提升价值;健康才是根本。
展开
-
sqlldr相关
SQL*LOADER是ORACLE的数据加载工具,通常用来将操作系统文件迁移到ORACLE数据库中。SQL*LOADER是大型数据仓库选择使用的加载方法,因为它提供了最快速的途径(DIRECT,PARALLEL)。现在,我们抛开其理论不谈,用实例来使您快速掌握SQL*LOADER的使用方法。 首先,我们认识一下SQL*LOADER。 在NT下,SQL*LOADER的命令为SQLLDR,在UN转载 2009-11-04 11:36:00 · 914 阅读 · 0 评论 -
通过分析SQL语句的执行计划优化 SQL
通过分析SQL语句的执行计划优化 SQL转载 2010-06-28 16:39:00 · 2108 阅读 · 0 评论 -
ORACLE如何在有视图的SQL中使用hint(提示)来设置视图内的SQL查询方式
http://blog.csdn.net/yzsind/archive/2008/03/06/2154438.aspx转载 2010-06-28 20:35:00 · 3010 阅读 · 0 评论 -
DBMS_STATS.GATHER_SCHEMA_STATS介绍使用
http://www.360doc.com/content/09/1209/09/6785_10694297.shtml转载 2010-07-02 14:44:00 · 24423 阅读 · 0 评论 -
ORACLE数据库设计与优化
Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE转载 2010-05-12 18:22:00 · 897 阅读 · 0 评论 -
关于索引压缩的研究
当单列索引和复合索引中的数据列重复项比较多的时候,可以考虑进行索引压缩。索引压缩可以在某种程度上减小索引所占空间,减小扫描索引时候的I/O,提高查询的性能。语法:create index index_name on table_name(col1,col2 ….coln) compress n; (n>0)不输入n的话,默认压缩所有的索引列索引中的前n项被压缩,称做前缀。运转载 2010-05-15 15:34:00 · 690 阅读 · 0 评论 -
优化Oracle库表设计的若干方法
前言 绝大多数的Oracle数据库性能问题都是由于数据库设计不合理造成的,只有少部分问题根植于Database Buffer、Share Pool、Redo Log Buffer等内存模块配置不合理,I/O争用,CPU争用等DBA职责范围上。所以除非是面对一个业已完成不可变更的系统,否则我们不应过多地将关注点投向内存、I/O、CPU等性能调整项目上,而应关注数据库表本身的设计是否合理,库表设计的转载 2010-05-15 11:03:00 · 978 阅读 · 0 评论 -
sql 性能调整
1. 选用适合的ORACLE优化器 ORACLE的优化器共有3种: a. RULE (基于规则) b. COST (基于成本) c. CHOOSE (选择性) 设置缺省的优化器,可以通过对init.ora文件中OPTIMIZER_MODE参数的各种声明,如RULE,COST,CHOOSE,ALL_ROWS,FIRST_ROWS . 你当然也在SQL句级或是会话(s转载 2010-05-21 20:33:00 · 778 阅读 · 0 评论 -
oralc UPDATE关联表的思路总结
多个表关联更新的问题总结,不错的东西,也是很经典的东西转载 2010-06-17 16:07:00 · 1532 阅读 · 0 评论 -
GATHER_STATS_JOB收集统计信息
http://blog.sina.com.cn/s/blog_4b1c9e12010009l8.html转载 2010-08-21 16:19:00 · 8910 阅读 · 0 评论 -
如何加速Oracle大批量数据处理
来源于:http://www.examda.com/oracle/zhonghe/20100405/092807472-4.html转载 2010-09-15 19:16:00 · 1501 阅读 · 0 评论 -
多表关联查询的一点亲身体会
自己写的原创 2010-12-01 11:15:00 · 1451 阅读 · 0 评论 -
DBMS_SCHEDULER使用
Oracle10g的调度:Scheduler试用转载 2010-11-03 16:25:00 · 14984 阅读 · 1 评论 -
高水位(High Water Mark)的概念及高水位问题的解决
http://www.blogjava.net/decode360/archive/2009/07/14/287767.html转载 2010-11-04 19:02:00 · 8033 阅读 · 0 评论 -
oracle alter table alter table move跟shrink space的区别
http://www.08.la/news2010/newshtml/JiShuWenZhang/ORACLE/18696.html转载 2010-11-05 17:01:00 · 1783 阅读 · 0 评论 -
Oracle数据库绑定变量特性及应用
http://doc.chinaunix.net/oracle/200712/157876.shtml转载 2010-11-10 15:23:00 · 1199 阅读 · 0 评论 -
FORALL与BULK COLLECT的使用方法:
1.使用FORALL比FOR效率高,因为前者只切换一次上下文,而后者将是在循环次数一样多个上下文间切换。 2.使用BLUK COLLECT一次取出一个数据集合,比用游标条取数据效率高,尤其是在网络不大好的情况下。但BLUK COLLECT需要大量内存。 例子:Sql代码 create table test_forall ( u转载 2010-04-23 19:29:00 · 1218 阅读 · 0 评论 -
ROWNUM与ROW_NUMBER()的体验
主要是在网上看到了一些关于排序分页的帖子,个人感觉有些不妥,就写出SQL进行了测试下,下面列出结果与看法。 通常先排序再分页都是使用ROWNUM伪列,通过将查询结果先进行排序,再使用两层SQL将查询结果进行分页,例子如:Sql代码 1. SELECT * 2. FROM ( SELECT ROWNUM row_, t.* 3.转载 2010-04-20 17:21:00 · 2819 阅读 · 0 评论 -
oracle中Where子句的条件顺序对性能的影响
oracle中Where子句的条件顺序对性能的影响 - Oracle - 网站开发-技术教程-中国素材网经常有人问到oracle中的Where子句的条件书写顺序是否对SQL性能有影响,我的直觉是没有影响,因为如果这个顺序有影响,Oracle应该早就能够做到自动优化,但一直没有关于这方面的确凿证据。在网上查到的文章,一般认为在RBO优化器模式下无影响(10G开始,缺省为RBO优化器模转载 2010-04-19 17:56:00 · 1011 阅读 · 0 评论 -
索引建立
建议用来建立索引的列: 1、该列频繁用于搜索 2、该列用于对数据进行排序 建议不要建立索引的列: 1、列中仅包含几个不同的值,如BIT列 2、表中仅包含几行数据 以下情况不要建索引:1、如果每次都需要取到所有表记录,无论如何都必须进行全表扫描了,那么是否加索引也没有意义了。 2、对非唯一的字段,例如“性别”这种大量重复值的字段,增加索引也转载 2009-10-28 11:33:00 · 585 阅读 · 0 评论 -
Oracle中组合索引的使用详解
在Oracle中可以创建组合索引,即同时包含两个或两个以上列的索引。在组合索引的使用方面,Oracle有以下特点: 1、 当使用基于规则的优化器(RBO)时,只有当组合索引的前导列出现在SQL语句的where子句中时,才会使用到该索引; 2、 在使用Oracle9i之前的基于成本的优化器(CBO)时,只有当组合索引的前导列出现在SQL语句的where子句中时,才可能会使用到转载 2009-11-15 11:24:00 · 1676 阅读 · 0 评论 -
几种索引扫描方式
1)索引唯一扫描 如果查询时是通过unique或primary key约束来保证只返回一条数据,那么优化器就会选择索引唯一扫描,这是访问一条数据的最快方式。2)索引范围扫描索引键非唯一,当遇到如下条件时会使用索引范围扫描:1.col=:b12.col3.col>:b13)索引降序范围扫描与2)中的情况相同,只不过2)默认是安装升序进行查找的,而这里是按转载 2009-11-15 11:49:00 · 1399 阅读 · 0 评论 -
关于 Oracle 的数据导入导出及 Sql Loader (sqlldr) 的用法
在 Oracle 数据库中,我们通常在不同数据库的表间记录进行复制或迁移时会用以下几种方法:1. A 表的记录导出为一条条分号隔开的 insert 语句,然后执行插入到 B 表中2. 建立数据库间的 dblink,然后用 create table B as select * from A@dblink where ...,或 insert into B select * fr转载 2009-11-19 17:44:00 · 2408 阅读 · 0 评论 -
大批量导入导出数据的一点体会。
今天我测试了下批量导入导出数据。 首先,我用spool从A数据库中导出数据到一个文本文件,但是发现速度有些慢。因为表中数据有120多万条。后来就用pl/sql里面的export query将数据导出到csv文件,这样速度是快。可是这样导出的文件,用sqlldr导入到新库中去的时候,老是报错。而我查了数据,数据是没有问题的。最后,我用toad里面的"Save Grid Contents",原创 2009-11-20 17:34:00 · 3122 阅读 · 0 评论 -
wm_concat,行转列的好东东
oracle10g以上版本提供行转列组合成字符串函数wm_concat例如有个users表如下:id yhm xm1 001 小唐2 002 小李3 003 小张 select wm_concat(yhm)转载 2010-01-20 16:56:00 · 611 阅读 · 0 评论 -
ORACLE中Like与Instr性能大比拼
t表中将近有1100万数据,很多时候,我们要进行字符串匹配,在SQL语句中,我们通常使用like来达到我们搜索的目标。但经过实际测试发现,like的效率与instr函数差别相当大。下面是一些测试结果:SQL> set timing onSQL> select count(*) from t where instr(title,’手册’)>0;COUNT(*)———-65881Elaps转载 2010-02-11 15:07:00 · 789 阅读 · 1 评论 -
Oracle 10g RAC的负载均衡配置
负载均衡是指连接的负载均衡。RAC的负载均衡主要是指新会话连接到RAC数据库时,如何判定这个新的连接要连到哪个节点进行工作。在RAC中,负载均衡分为两种,一种是基于客户端连接的,另外一种是基于服务器端的。一、客户端负载均衡的配置1、当前服务器中的数据库版本如下:SQL> select * from v$version; BANNER转载 2010-02-24 16:33:00 · 1229 阅读 · 0 评论 -
SQL语句性能调整之ORACLE的优化器
【IT168 技术文档】 优化器有时也被称为查询优化器,这是因为查询是影响数据库性能最主要的部分,不要以为只有SELECT语句是查询。实际上,带有任何WHERE条件的DML(INSERT、UPDATE、DELETE)语句中都包含查询要求,在后面的文章中,当说到查询时,不一定只是指SELECT语句,也有可能指DML语句中的查询部分。优化器是所有关系数据库引擎中的最神秘、最富挑战性的部件之一,从转载 2010-04-13 17:34:00 · 763 阅读 · 0 评论 -
ORACLE的CBO及表分析
最近接触到了表分析的几个案例,有一张表经过分析之后,在上面的sql语句的执行时间一下子从50分钟锐减到2分钟,不可思议。 第一部分什么是表分析?简单的说,就是收集表和索引的信息,CBO根据这些信息决定SQL最佳的执行路径。通过对表的分析,可以产生一些统计信息,通过这些信息oracle的优化程序可以优化。 用analyze或dbms_stats转载 2010-04-13 18:51:00 · 6292 阅读 · 1 评论 -
CBO 和 RBO
1、 基于规则的优化方式(Rule-Based Optimization,简称为RBO) 优化器在分析SQL语句时,所遵循的是 Oracle内部预定的一些规则,对数据是不敏感的。它只借助少量的信息来决定一个sql语句的执行计划,包括: 1) sql语句本身 2) sql中涉及到的table、view、index等的基本信息 3) 本地数据库中转载 2010-04-13 19:48:00 · 962 阅读 · 0 评论 -
oracle hint提示优化SQL
1. /*+ALL_ROWS*/ 表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化. 例如: SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO=SCOTT; 2. /*+FIRST_ROWS*/ 表明对语句块选择基于开销的优化方法,并获得最佳响应时间,使资源消转载 2010-04-13 17:37:00 · 900 阅读 · 0 评论 -
================= trunc 的用法======================
截取 对数字,日期进行的 你做个测试好不好? 或者找点东西看看 SQL> select trunc(sysdate) from dual; ===返回 最近的日期 TRUNC(SYSD ---------- 07-1月 -03 SQL> select trunc(sysda转载 2010-04-14 20:10:00 · 692 阅读 · 0 评论 -
oracle归档模式
一。查看oracle数据库是否为归档模式:<sup onclick="function onclick(){gotoRef(this)}">[1] 1.select name,log_mode from v$database; NAME LOG_MODE ------------------ ------------------------ QUER转载 2010-04-15 09:40:00 · 788 阅读 · 0 评论 -
ORACLE 10g append跟nologging插入对REDO的影响
/*+append*/ 1. append 属于direct insert,归档模式下append+table nologging会大量减少日志, 非归档模式append会大量减少日志,append方式插入只会产生很少的undo 2.综合一下吧:一是减少对空间的搜索;二是有可能减少redolog的产生。所以append方式会快很多,一般用于大数据量的处理3. 建议不要转载 2010-04-14 20:13:00 · 5724 阅读 · 1 评论 -
自定义oracle聚集函数,类似于功能wm_concat
蛮好用的聚集函数,比oracle 自带的wm_concat还好转载 2011-02-25 09:43:00 · 10128 阅读 · 1 评论