oracle工作机制(转)
我们从一个用户请求开始讲,ORACLE的完整的工作机制是怎样的,首先一个用户进程发出一个连接请求,如果使用的是主机命名或者是本地服务命中的主机名使用的是机器名(非IP地址),那么这个请求都会通过DNS服务器或HOST文件的服务名解析然后传送到ORACLE监听进程,监听进程接收到用户请求后会采取两种方式来处理这个用户请求,下面我们分专用服务器和共享服务器分别采用这两种方式时的情况来讲:[@more@]专用服务器模式下:一种方式是监听进程接收到用户进程请求后,产生一个新的专用服务器进程,并且将对用户进程的所有控制信息传给此服务器进程,
Oracle中表的连接及其调整(转)
在日常基于数据库应用的开发过程中,我们经常需要对多个表或者数据源进行关联查询而得出我们需要的结果集。那么Oracle到底存在着哪几种连接方式?优化器内部又是怎样处理这些连接的?哪种连接方式又是适合哪种查询需求的?只有对这些问题有了清晰的理解后,我们才能针对特定的查询需求选择合适的连接方式,开发出健壮的数据库应用程序。选择合适的表连接方法对SQL语句运行的性能有着至关重要的影响。下面我们就Oracle常用的一些连接方法及适用情景做一个简单的介绍。[@more@]一、嵌套循环连接(Nested Loop) 嵌套循环连接的工作方式是这样
oracle performance tunning
优化全览[@more@]1、Shared pool tunningShared pool的优化应该放在优先考虑,因为一个cache miss在shared pool中发生比在data buffer中发生导致的成本更高,由于dictionary数据一般比library cache中的数据在内存中保存的时间长,所以关键是library cache的优化。Gets:(parse)在namespace中查找对象的次数;Pins:(execution)在namespace中读取或执行对象的次数;Reloads:(reparse)在执行阶段library cache misses的次数,导致sql需要重新解析。1) 检查v$librarycache中sql area的gethitratio是否超过90%,如果未超过90%,应该检
Oracle中SQL语句解析的步骤
我们都知道在Oracle中每条SQL语句在执行之前都需要经过解析,这里面又分为软解析和硬解析。那 么这两种解析有何不同之处呢?它们又分别是如何进行解析呢?Oracle内部解析的步骤又是如何进行的呢 ?下面我们就这些话题进行共同探讨。[@more@]在Oracle中存在两种类型的SQL语句,一类为DDL语句,他们是从来不会共享使用的,也就是每次执行都需 要进行硬解析。还有一类就是DML语句,他们会根据情况选择要么进行硬解析,要么进行软解析。在 Oracle 8i OCP教材的023中1-12有说明SQL语句的解析步骤,当一条SQL语句从客户端进程传递到服务器端 进程
使用SQL_TRACE进行数据库诊断
SQL_TRACE是Oracle提供的用于进行SQL跟踪的手段,是强有力的辅助诊断工具.在日常的数据库问题诊断和解决中,SQL_TRACE是非常常用的方法。本文就SQL_TRACE的使用作简单探讨,并通过具体案例对sql_trace的使用进行说明.[@more@]一、 基础介绍(a) SQL_TRACE说明SQL_TRACE可以作为初始化参数在全局启用,也可以通过命令行方式在具体session启用。1. 在全局启用在参数文件(pfile/spfile)中指定:sql_trace =true 在全局启用SQL_TRACE会导致所有进程的活动被跟踪,包括后台进程及所有用户进程,这通常会导致比较严重的性能问题,所以在生产环境中
Oracle9i的简化SQL语法
Oracle对Oracle9i SQL 做了一些很重要的改进,包括一些令人兴奋的新特点,支持1:5的数量级和ISO99中的SQL标准。作为Oracle的补充,它包括以下新的TABLE JOIN的句法结构:[@more@]CROSS IN——它在两个表格中创建了一个卡迪尔列,就象是在Oracle8i中没写WHERE时那样。NATURAL JOIN——这是一个很有用的Oracle9i的句法,它通过从WHERE子句中移动连接标准来改善SQL的稳定性 USING子句——它可以通过名字来具体指定连接 ON子句——这个句法允许在两个表格中为连接具体指定栏目的名头 LEFT OUTER JOIN——它返回表格中左边的行和右边的数值,