易截截图软件、单文件、免安装、纯绿色、仅160KB

【转】Oracle中的硬解析与软解析

Oracle中的SQL在执行之前进行解析,一个硬解析包括下面的步骤:
加载到共享池中 - SQL源代码被加载到内存中。
语法解析 - Oracle检查语法拼写错误。
语义解析 - Oracle验证来自数据字典的所有表名和列名并且验证你是否有权访问这些数据。
查询转换 - 如果允许(query_rewrite=true),oracle将把复杂的SQL转换为等价的简单形式。
优化 - 根据模式的统计信息创建执行计划(在10g中或许会使用动态的样本统计信息)。
创建可执行文件 - Oracle创建一个服务于SQL查询的、调用本地文件的可执行文件。
Oracle提供了shared_pool_size参数来缓存SQL从而使我们不需要重复解析SQL。但是,如果shared_pool_size设置太小或者在代码中使用了非重用的SQL(例如包含直接量where name="fred"),SQL语句可能会过期。
在Oracle中软解析和硬解析的区别是什么?仅仅是上面用红色标明的第一步。也就是说,软解析不需要重新装载到共享池(以及相关的内存分配)。
通常很高的解析调用次数(>10/秒)表明你的系统有大量不同的SQL语句,或者你的SQL语句没有被重用(例如,没有使用绑定变量)。
硬解析需要把SQL语句加载到共享池中。硬解析比软解析差很多,因为它牵涉到共享池中内存的分配和管理。一旦被加载,SQL必须完全重新检查语法和语义以及生成可执行目标。
如果shared_pool_size设置的太小或者SQL语句没有重用,则会发生大量的硬解析。
所以要适当的设置共享池大小并且通过主机变量重用SQL。
本文转自:http://blog.csdn.net/zjliu1984/archive/2009/07/01/4312333.aspx


相关文档:

【转】Oracle SQL的硬解析和软解析

说到软解析(soft prase
)和硬解析(
hard prase
),就不能不说一下
Oracle

sql
的处理过程。当你发出一条
sql
语句交付
Oracle
,在执行和获取结果前,
Oracle
对此
sql
将进行几个步骤的处理过程:
    1、语法检查(
syntax check

   &nb ......

oracle常用语句

1.查询表空间的使用情况,以M为单位
select f.tablespace_name,a.total,u.used,f.free,round((u.used/a.total)*100) "% used",  
round((f.free/a.total)*100) "% Free"   
from  
(select tablespace_name, sum(bytes/(1024*1024)) total   
  &nbs ......

【转】Oracle 数据字典视图(V$,GV$,X$)

常用的几个数据字典:
user_objects : 记录了用户的所有对象,包含表、索引、过程、视图等信息,以及创建时间,状态是否有效等信息,是非DBA用户的大本营。想知道自己有哪些对象,往这里查。
user_source :包含了系统中对象的原码,如存储过程,FUNCTION、PROCEDURE、PACKAGE等信息
cat或Tab :包含当前用户所有的用户和 ......

Oracle 系统表大全

数据字典dict总是属于Oracle用户sys的。
  1、用户:
   select username from dba_users;
  改口令
   alter user spgroup identified by spgtest;
  2、表空间:
   select * from dba_data_files;
   select * from dba_tablespaces;//表空间
   select tablespace_name,sum(bytes), sum(b ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号