Oracle 课程六之hint】的更多相关文章

课程目标 完成本课程的学习后,您应该能够: •什么是oracle hint •Hint的使用范围 •Hint 汇总 •演示常用的hint   Hint简介 Hint是oracle 提供的一种SQL语法,它允许用户在SQL语句中插入相关的语法从而影响SQL的执行方式,即是影响优化器行为的一种技术.优化器模式all_rows .first_rows数据访问路径基于表的数据访问.基于索引的数据访问表关联的方式NL . MJ . HJ………………. 尽量避免在开发中使用.原因是数据库的数据是变化的,在某…
 solr与.net系列课程(六)solr定时增量索引与安全 solr增量索引的方式,就是一个Http请求,但是这样的请求显然不能满足要求,我们需要的是一个自动的增量索引,solr官方提供了一个定时器实例,来完成增量索引, 首先下载 apache-solr-dataimportscheduler-1.0.jar,下载地址:http://solr-dataimport-scheduler.googlecode.com/files/apache-solr-dataimportscheduler-1.…
Oracle中的Hint可以用来调整SQL的执行计划,提高SQL执行效率.下面分类介绍Oracle数据库中常见的Hint.这里描述的是Oracle11gR2中的常见Hint,Oracle数据库中各个版本中的Hint都不尽相同,所以这里讲述的的Hint可能并不适用于Oracle早期的版本. 一.与优化器模式相关的Hint 1.ALL_ROWS ALL_ROWS是针对整个目标SQL的Hint,它的含义是让优化器启用CBO,而且在得到目标SQL的执行计划时会选择那些吞吐量最佳的执行路径.这里的"吞吐量…
在SQL语句优化过程中,我们经常会用到hint,现总结一下在SQL优化过程中常见Oracle HINT的用法: 1. /*+ALL_ROWS*/ 表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化. 例如: SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO=’SCOTT’; 2. /*+FIRST_ROWS*/ 表明对语句块选择基于开销的优化方法,并获得最佳响应时间,使资源消耗最小化.…
课程目标 完成本课程的学习后,您应该能够: •变量绑定的目的 •父子游标 •游标共享 •绑定窥探 •SQL语句处理流程 •硬解析.软解析.软软解析 •变量绑定的应用场景   1.游标 游标可以理解为SQL语句的一个句柄,也叫SQL语句的指针,游标指向一条SQL语句,oracle会话要执行一条SQL时,首先要打开游标. 1.1父子游标: 同样的SQL,因某些其它的差异,会产生另外的cursor.解析操作的结果是将一个父游标与子游标保存到库缓存中.很显然,将它们保存到共享内存的目的是为了重用它们,从…
课程目标 完成本课程的学习后,您应该能够: •引子—统计信息的作用 •如何收集统计信息 •系统统计信息 •对象统计信息—表.字段.索引统计信息 •动态采样   统计信息的作用 Optimizer statistics are a collection of data that describe more details about the database and the objects in the database. These statistics are used by the quer…
课程目标 完成本课程的学习后,您应该能够: •优化器的作用 •优化器的类型 •优化器的优化步骤 •扫描的基本类型 •表连接的执行计划 •其他运算方式的执行计划 •如何看执行计划顺序 •如何获取执行计划   1.优化器概述 oracle中优化器(optimizer)是SQL分析和执行的优化工具,它负责制订SQL的执行计划,也就是负责保证SQL执行的效率最高.优化器的类型:基于规则的优化器(RBO,Rule-Based Optimizer)基于成本的优化器(CBO,Cost-Based Optimi…
课程目标 完成本课程的学习后,您应该能够: 理解b*tree索引的结构与特征 了解聚簇因子的产生原因 理解分区索引与全局索引的区别及场景 掌握组合索引的高效设计 位图索引的适用场景 全文索引的适用场景 理解索引失效的场景   1.索引的种类 索引的种类很多,目前只关注四种: B*树索引 位图索引 分区索引 全文索引   B树索引 B*树的构造类似于二叉树,能根据键提供一行或一个行集的快速访问,通常只需很少的读操作就能找到正确的行.不过,需要注意重要的一点,”B*树“中的”B“不代表二叉(bina…
完成本课程的学习后,您应该能够: •普通堆表优点和缺点 •理解rowid •全局临时表优点.缺点和适用场景 •分区表的类型和原理.优点和缺点.适用场景 •表字段的高效设计 •sequence的设计   1.数据存储方式 在关系数据库中有很多种数据存储方式,有些DBMS全部支持,有些则只支持其中的一部分.数据库的存储方式至关重要,它对数据的修改和查询都有直接的影响. 存储方式可分为两种:随机存储方式和固定存储方式.前者存储效率必然要高于后者.但如我们的人生一样,得到多少就意味着要失去多少. 随机存…
完成本课程的学习后,您应该能够: •数据库总体的逻辑结构 •深入理解数据库最小存储单元block •理解行迁移和行链接 •理解高水位线 •Drop.truncate.delete区别   1.数据库的逻辑 方案(schema)是一个逻辑数据结构的集合.每个数据库用户拥有一个与之同名的方案,且只有这一方案(详情请见concepts第5章). 数据库逻辑结构为数据块(Data Block).数据扩展(Extent).和段(Segment); 物理结构为数据文件. Block是最精细的数据存储粒度,一…
一.数据字典和动态性能视图 数据字典: oracle中的重要组成部分,提供了数据库的一些系统信息,记录了数据库的系统信息,它是只读表和视图的集合,数据字典的所有者为 sys 用户.用户只能在数据字典上执行查询操作(select语句),其维护和修改是由系统完成的. 其组成包: 1.字典基本表  //存储数据库的基本信息,普通用户不能直接访问字典的基表 2.数据字典视图 //基于数据字典基表所建立的视图,可以供普通用户查询 数据字典视图主要包括: uesr_xxx,all_xxx,dba_xxx 三…
Oracle 专业dba博客:http://blog.csdn.net/tianlesoftware Hint 是Oracle 提供的一种SQL语法,它允许用户在SQL语句中插入相关的语法,从而影响SQL的执行方式. 因为Hint的特殊作用,所以对于开发人员不应该在代码中使用它,Hint 更像是Oracle提供给DBA用来分析问题的工具 .在SQL代码中使用Hint,可能导致非常严重的后果,因为数据库的数据是变化的,在某一时刻使用这个执行计划是最优的,在另一个时刻,却可能很差,这也是CBO 取代…
1.简单SQL语句,HellWorld示例 --输出信息 begin dbms_output.put_line('Oracle Hello World!'); end; 2.变量的定义.使用 --定义变量 declare sName varchar2(20); begin sName := 'jack'; dbms_output.put_line(sName); end; --常用类型 declare sNum number(1); sCount binary_integer := 0; sSa…
要想删除表空间就要先删除数据文件 例如这个例子 CREATE TABLESPACE STHSGIMGDB_SPACE11 DATAFILE 'D:\ORACLEDATABASE\JinHuaDataBase\STHSGIMGDB_SPACE11_01' SIZE 1M AUTOEXTEND ON NEXT 50M MAXSIZE UNLIMITED, 'D:\ORACLEDATABASE\JinHuaDataBase\STHSGIMGDB_SPACE11_02' SIZE 1M AUTOEXTE…
一.Oracle跟踪文件 Oracle跟踪文件分为三种类型: 一种是后台报警日志文件,记录数据库在启动.关闭和运行期间后台进程的活动情况,如表空间创建.回滚段创建.某些alter命令.日志切换.错误消息等.在数据库出现故障时,应首先查看该文件,但文件中的信息与任何错误状态没有必然的联系.后台报警日志文件保存BACKGROUND_DUMP_DEST参数指定的目录中,文件格式为SIDALRT.LOG. 另一种类型是DBWR.LGWR.SMON等后台进程创建的后台跟踪文件.后台跟踪文件根据后台进程运行…
一. 10053事件 当一个SQL出现性能问题的时候,可以使用SQL_TRACE 或者 10046事件来跟踪SQL. 通过生成的trace来了解SQL的执行过程. 我们在查看一条SQL的执行计划的时候,只能看到CBO 最终告诉我们的执行计划结果,但是不知道CBO 是根据什么来做的. 如果遇到了执行计划失真,如:一个SQL语句,很明显oracle应该使用索引,但是执行计划却没有使用索引.无法进行分析判断. 而10053事件就提供了这样的功能.它产生的trace文件提供了Oracle如何选择执行计划…
Oracle 的事件很多. 具体参考blog: Oracle 跟踪事件 set event 转摘:http://blog.csdn.net/tianlesoftware/archive/2009/12/13/4977827.aspx 10046 事件主要用来跟踪SQL语句,它并不是ORACLE 官方提供给用户的命令,在官方文档上也找不到事件的说明信息. 但是用的却比较多,因为10046事件获取SQL的信息比SQL_TRACE 更多. 更有利于我们对SQL的判断. 10046 事件按照收集信息内容…
一. SQL_TRACE 当SQL语句出现性能问题时,我们可以用SQL_TRACE来跟踪SQL的执行情况,通过跟踪,我们可以了解一条SQL或者PL/SQL包的运行情况,SQL_TRACE命令会将SQL执行的整个过程输出到一个trace文件中,我们可以读这个trace 文件来了解在这个SQL执行过程中Oracle 都做了哪些操作: a.SQL是如何操作数据的.b.SQL执行过程中产生了那些等待时间.c.SQL执行中消耗了多少资源.d.SQL的实际执行计划.e.SQL产生的递归语句. 可以通过sql…
flashback drop 闪回下降(删除)SQL> show parameter recyclebinSQL> purge recyclebin;(清除回收站)SQL> create tablespace tbs01 datafile '/home/oracle/tbs01.dbf' size 5M;SQL> create table t1 tablespace tbs01 as select * from dba_objects where rownum<=20000;…
restore:恢复文件 recover: 恢复日志 丢失current日志组(正常关闭数据库):故障:SQL> select group#, status from v$log; 确认current组SQL> shutdown immediate$ rm -f /home/oracle/redo02b.log /u01/app/oracle/oradata/orcl/redo02.logSQL> startup 报错恢复:SQL> startup mountSQL> sel…
备份数据文件:SQL> select file_id, file_name from dba_data_files; backup:备用(备份) datafile:数据文件 backup tablespace:备份表空间 backup database:备份数据库RMAN> backup datafile 4;RMAN> backup datafile 4, 5;RMAN> backup datafile '/u01/app/oracle/oradata/orcl/users01.…
restore:恢复数据文件 recover:写日志 1.redo(roll forward)重做 (前进) 2.undo(roll back) 撤销 (回滚) cp -r:删除一个目录 archive log list:归档日志列表 current:当前(不切换了) archived存档 uncommitted:未提交 归档模式下丢失一个数据文件:SQL> archive log list备份前工作:SQL> create table t1(x varchar2(50)) tablespac…
配置可恢复性: ontrol_files:控制文件 parameter:参数 show:显示 select name from v$database; 查看当前的数据库★★ 控制文件SQL> show parameter control_filesSQL> select * from v$controlfile; 修改路径:$ cd $ORACLE_HOME/dbs 改变目录位置$ cp spfileorcl.ora spfileorcl.ora.bak 备份 SQL> alter sy…
死锁是由于两个对象在拥有一份资源的情况下申请另一份资源, 而另一份资源恰好又是这两对象正持有的,导致两对象无法完成操作,且所持资源无法释放. 阻塞是由于资源不足引起的排队等待现象. unso:撤销 commit:提交 contents:内容 management:管理 session:一个连接就是一个会话(session)代表着一个作用域.也就是某些修改可以只限于此会话,在其他会话中不生效 AM:上午 11:59 PM:下午 12:00 全球化支持 unset:未设置 profile:轮廓 死锁…
读一致性:oracle通过多版本与闪回机制保证读一致性.保证从某个时间点开始查询是一致的.在Oracle中主要通过SCN版本号来控制系统修改的版本,典型的例子是我们可以通过在同一个查询中得到同一个对象在“两个时间点”上的结果: select * from (select count(*) from emp),(select count(*) from emp as of scn :scn) 多个用户同时访问数据库 consistency:一致性 非阻塞查询:当修改数据时,Oracle只看数据是否…
用户管理 Authentication: 身份验证 AAA:Authentication: 身份验证 Authorization: 权限管理 Audition: 审计 grant:授权 unset:撤销(消除) SQL>echo $ORACLE_SID ORCL 查询数据库的名字为ORCL SQL>vnset ORACLE_SID 删除数据库名字为ORCL SQL>export ORACLE_SID=ORCL 重新添加变量数据库的名字为ORCL 管理员的身份验证:本地连接:本地连接,预先…
lsnrctl status:查看监听状态 Oracle网络配置三部分组成:客户端,监听,数据库 配置文件:$ vi $ORACLE_HOME/network/admin/listener.ora vi listener.ora 和上面这个命令一样 netstat -tln|grep 1521 通过netca添加新的监听服务Listener15210,端口使用15210 lsnrctl status listener15210 查看15210的监听状态(指定监听状态的名称) netca进入一个系…
存储管理 查询块的大小:show parameter db_block_size database:数据库 tablespace:表空间 datafile:数据文件 segments:段 extents:扩展(范围) dba_extents:每一个扩展的信息 dba_segments:段的信息 add datafile:添加数据文件 rollback:回滚(做完一个命令后悔了可以用回滚回到上一个命令) objects:对象 user_tables:用户的表 dba:数据库所有 including…
数据库管理 关闭数据库有4中方式: 1.shutdown modes 关机模式 2.shutdown normal 关机正常 3.shutdown immediate 立即关闭 ★★ 常用命令 4.shutdown abort 直接关闭数据库 startup:重启 dbstart:启 dbshut: 关 有三种关闭方式:1.shutdown normal 正常方式关闭数据库. 2.shutdown immediate 立即方式关闭数据库. 在SVRMGRL中执行shutdown immediat…
体系结构: instance:实例 database:数据库 RAC:多实例对一个数据库 SGA:最大总数 (系统全局区域)缓存区 PGA:其中的一块, 也是一个缓存区 server process:服务器进程 shared pool:共享值(最大SQL语句的执行计划)★★ SQL> show parameter 显示参数 ★ SQL> show sga 显示sga的设置★ SQL> select * from v$sgainfo :动态性能视图 ★ butter cache:缓冲区缓存…