Sql优化(三) 关于oracle的并发
Oracle的并发技术可以将一个大任务分解为多个小任务由多个进程共同完成。合理地使用并发可以充分利用系统资源,提高效率。一、 并发的种类Parallel queryParallel DML(PDML)Parallel DDL Parallel recovery[@more@]二、 适用场合适用parallel的两个条件 1)大的任务,如全表扫描大表这和日常生活中的经验是一样的,小任务自己完成都比派发任务省事 2)系统有足够的资源(cpu/io)换句话说,并发是在系统资源充足、用户少的系统上,为了充分利用系统资源以提高任务处理速度而设计的一种技术。以下是几种场景: 1)OLTP系统 有大量用户和se
Sql优化(二) 关联(join)
当sql访问多个表时,关联对sql效率就有很重要的影响。关联要考虑两个因素,join的类型和join的次序。一、 JOIN的分类(一) Nested loop join1. 适用条件1)关联少量数据(rows),返回集小2)关联条件能高效访问第二张表(inner table)。高效访问的关联条件如'=',反之非高效的关联条件如'!=','>'等;inner table(即非驱动表)上要有索引。因此比较适合OLTP系统,因为OLTP系统中一般返回数据量小,而且表上面索引较多。[@more@]2. 实现步骤1) 优化器选择驱动表(driving table),指定其为outer table2) 指定另一张表为inner table(非驱动表)3)
SQL优化(一) 索引
对于sql的执行效率而言,有两个非常重要的因素,一个是索引,另外一个是关联(join)。绝大多数的sql性能问题和不当的索引和关联相关。本篇先说说索引。一、 索引类型1. B* tree index,即普通索引2. 位图索引3. Function based index函数索引其他索引还包括bitmap join index,应用索引等,很少使用。下面介绍这3种最常用索引。 [@more@]二、 B*tree index(一) 索引结构1. 索引结构包括branch block和leaf block(leaf nodes)。最上面的branch block称为root block。Leaf block(叶子节点)包含index key和rowid信息。Root block到leaf bloc
Oracle 10G R2 RAC 日常管理
Oracle 10G R2 RAC 日常管理 CRS的管理 CRSCTL命令控制着本地节点的CRS服务(Oracle clusterware processes) 停止CRS: $ crsctl stop crs或者 $ /etc/init.crs stop或者 $ crs_stop –all 启动CRS: $ crsctl start crs或者 $ /etc/init.crs start 禁止Clusterware在系统重启后自动启动的方法: $ /etc/init.crs d...
Oracle 10g RAC 剔除节点
Oracle 10g RAC 剔除节点 Oracle 10g RAC 删除节点 如何添加节点Oracle 10g RAC 添加节点 目前RAC环境如下,先要删除racdb3SQL> select INSTANCE_NAME,HOST_NAME,VERSION,STARTUP_TIME,STATUS,ACTIVE_STATE,INSTANCE_ROLE,DATABASE_STATUS from gv$INSTANCE;INSTANCE_NAME HOST_NAME VERSION STARTUP_TIME S...
Oracle 10g rac升级需要注意的事项
Oracle 10g rac升级需要注意的事项 Oracle rac在生产库升级大大小小已经做过好多次了,在生产库升级不同于在测试环境下操作,在生产库上升级考验的是dba的抗压力,细心程度,RAC升级文档在网上多如牛毛,在这里我就不详细写升级步骤,只写需要注意的地方: 1、详细阅读升级介质中的read me,尤其需要注意升级前...
left join的困惑
left join的困惑:一旦加上where条件,则显示的结果等于inner join 将where 换成 and 用where 是先连接然后再筛选 用and 是先筛选再连接 数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。 &nb...
在oracle中跟踪会话执行语句的几种方法
生成sql trace可以有以下几种方式:1、参数设置:非常传统的方法。系统级别:参数文件中指定: sql_trace=true或SQL> alter system set sql_trace=true;注意:系统级别启用sql_trace,会产生大量trace文件,很容易耗...
11gR2 新特性之(一)Adaptive Cursor Sharing(ACS)
关于该特性,其实并不是11gR2开始引入的,其实在11gR1就引入了,只不过其问题较多,并未引起太多关注而已(bug不少)。该特性主要解决了哪些问题?● data skew (数据倾斜)● bind peeking (绑定变量窥视)– oracle 9i 引入如何理解ACS? ACS will allow multiple execution plans for a ...
11gR2 新特性之—In-Memory Parallel execution
该特性是在oracle 11gR2 引入,其目的不言而喻。在11gR2之前,也就是在11gR1中,如果当你发出/*+parallel(16) */ 时,可能会出现下面两种情形:1. The SQL can run with reduced DOP (be downgraded) -该特性我在11gR1中测试过2. The SQL can run in serial mode (be serialized) * "ORA-12827: in...
dba_jobs_running查询缓慢
今天一新装系统(版本11.2.0.4.3)查询dba_jobs_running视图缓慢。但加hint /*+rule*/ 正常。通过跟踪10046 trace发现,主要慢在对X$KSQRS进行全表扫,并且执行走nl。查看别的系统的发现执行计划走HASH。因此判断统计信息存在问题。收集统计信息如下:SQL> exec dbms_stats.gather_fixed_objects_stats(NO_INVALIDATE=>f...
oracle 释放undo空间
当undo表空间满的情况下,我们切换了undo空间后,但该空间还是处理100%状态,如果不想让他100%,有没有活动事物的情况下.我们可以采用如下方式,对回滚段进行删除操作.来达到释放空间的作用.1.alter system set "_smu_debug_mode" = 4 scope = memory sid='';2.select 'alter rollback segment "' || s.segment_name || '" of...
oracle 11g常用隐含参数
ORACLE 11GR2常用参数(含隐含参数)设置如下:alter system set "_PX_use_large_pool" = true scope=spfile;alter system set "_clusterwide_global_transactions" = false scope=spfile;alter system set "_gc_defer_time" = 3 scope=spfile;alter system set "_resource_manager_always_off" = true scope=spfile;alt...
通过SQL_ID查看SQL历史执行信息
From Memoryset pages 1000 lines 200col first_load_time for a20col last_load_time for a20 col outline_category for a20col sql_profile for a32select sql_id, child_number, plan_hash_value, first_load_time, last_load_time, outline_category, sql_profile, executions, trunc(deco...
Oracle审计--AUD$占用空间较大处理方案
Oracle 11G以后,数据库默认是开启审计功能的,因此有时候我们忘记了关闭该功能导致SYSTEM表空间暴满,但由于关闭审计功能需要重启数据库,此类操作生产环境下是不允许的,因此我们需要找出哪类审计产生的较多,然后单独的进行关闭;我们可以通过如下方法查找:如果你发现AUD$这个表比较大了,检查下是哪种审计占的空间...
oracle 统计信息
收集oracle统计信息优化器统计范围:表统计; --行数,块数,行平均长度;all_tables:NUM_ROWS,BLOCKS,AVG_ROW_LEN;列统计; --列中唯一值的数量(NDV),NULL值的数量,数据分布; --DBA_TAB_COLUMNS:NUM_DISTINCT,NUM_NUL...
Oracle11g 统计信息-----统计信息自动收集任务
11g中统计信息自动收集任务的名称是auto optimizer stats collection。11g中自动任务默认的执行时间窗口为: 周一到周五是晚上10点开始到2点结束 周末是早上六点,持续20个小时。1、查看自动收集任务及状态select client_name,status from Dba_Autotask_Clien...
ipcs 使用
ipcs用法 ipcs -a 是默认的输出信息 打印出当前系统中所有的进程间通信方式的信息ipcs -m 打印出使用共享内存进行进程间通信的信息ipcs -q 打印出使用消息队列进行进程间通信的信息ipcs -s 打印出使用信号进行进程间通信的信息ipcrm用法 ipcrm -M shmkey 移除用shmke...
操作系统(aix\redhat\suse)修改主机名方法
aix:1. smit hostname2. vi /etc/hosts-------------------------------------------------chdev -l inet0 -a hostname = newvi /etc/hostsredhat中修改主机名通过修改/etc/sysconfig/network文件,修改HOSTNAME="**" 然后重启/etc/init./network服务就可以了suse linux:修改/etc/HOSTNAME文件,...
11g grid +db 采用裸设备克隆案例
参数文档:How to Clone an 11.2.0.3 Grid Infrastructure Home and Clusterware (文档 ID 1413846.1)########## For Oracle 11g RAC Database ##########10.19.246.22 tokf6a-vip10.19.246.24 tokf6b-vip172.19.246.22 tokf6a-priv172.19.246.24 tokf6b-priv10.1...