`
hanjian861202
  • 浏览: 159745 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论
文章列表
假设我们现在有一条语句,执行的时间需要半个小时,即使我们仅仅需要知道该语句的执行计划,此种情况下,我们必须等待半个小时。因此,如果查询的性能很慢,我们可以选择选择使用explain plan for + select * from table(dbms_xplan.display)命令。   select /*+ USE_NL(t2) */ c1,c2 from t1 inner join t2 on c1=d2;     该语句中/*+ USE_NL(t2) */是我们常说的hint提示,这里的USE_NL告诉优化程序使用嵌套连接对表进行连接,t2为内部表。   http: ...
RBO:不管统计信息是否正确,执行计划是固定不变的,当优化器无法正确选择执行计划时,可以固定执行计划           不能灵活选择执行计划,程序人员必须按规则编写SQL语句。 CBO:会灵活选择执行计划,程序人员可以灵活编写SQL语句。           由于绑定变量原因而有时无法选择正确的执行计划。 所以从10g开始,只有 CBO ,为了弥补RBO,可以使用Hints   =================================================================================================   提 ...
http://blog.chinaunix.net/space.php?uid=22741583&do=blog&id=84984#7   整整让我痛了一个星期,装的想哭了.......   http://blog.chinaunix.net/space.php?uid=22741583&do=blog&id=84984#1
java中如何最简单的调用存储过程: http://blog.sina.com.cn/s/blog_536191b801009mdc.html         PL SQL调用Java类: http://blog.sina.com.cn/s/blog_4b65223901009sq2.html
统计信息参数设置、是否关闭自动收集、回退统计信息、统计信息迁移 ================================================================================================== 大约2个月前,一位业内人士问我为什么9i CBO迁移到10g上会出现许多执行计划改变 ...
在一个高可用系统中,如果需要改变一个表的定义是一件比较棘手的问题,尤其是对于7×24系统。Oracle提供的基本语法基本可以满足一般性修改,但是对于把普通堆表改为分区表,把索引组织表修改为堆表等操作就无法完成了。而且,对于被大量DML语句访问的表,幸运的是,Oracle从9i版本开始提供了在线重定义表功能,通过调用DBMS_REDEFINITION包,可以在修改表结构的同时允许DML操作。     在线重定义表具有以下功能:   修改表的存储参数;   可以将表转移到其他表空间;   增加并行查询选项;   增加或删除分区;   重建表以减少碎片;   将堆表改为索 ...
http://wenku.baidu.com/view/0f4b2ed376eeaeaad1f330b2.html 什么时候使用分区:   1、 大数据量的表,比如大于2GB。一方面2GB文件对于32位os是一个上限,另外备份时间长。   2、 包括历史数据的表,比如最新的数据放入到最新的分 ...
open_sursor :定义每个Session最大能够打开的游标数量。   session_cached_cursors:就是说一个session可以缓存多少个cursor,让后续相同的SQL语句不再打开游标,从而避免软解析的过程来提高性能。(一个游标被请求3次且此游标被关闭时,就会被放入cursor cache中)   V$OPEN_CURSOR:每个session打开和命中游标及SQL语句。   oracle有一个概念,那就是session cursor cache,中文描述就是有一块内存区域,用来存储关闭了的cursor。当一个cursor关闭之后,oracle会检查这个cu ...
db block gets (看到当前最新的数据): current mode , 不管这个块上的数据是否可能存在 before image ,也就是说不管是否存在回滚中数据可以 回滚,只看见当前最新块的数据,即使别人正在更新,也看见别人更新状态的数据,比如dml的时候 ...
1.访问数据的存取方法 全表扫描(Full Table Scans, FTS)   通过ROWID的表存取(Table Access by ROWID或rowid lookup)   索引扫描(Index Scan或index lookup):根据索引的类型与where限制条件的不同,有4种类型的索引扫描:            ...
SQLServer,Oracle,MySQL查询前几条记录的SQL语句:   SQLServer: select top 10 from table; Oracle: select * from table where rownum<=10; MySql: select * from table limit 10. ========================================================================   分页查询: sql sercer:not in 、max()、row_number 三种 ...
说到软解析(soft prase)和硬解析(hard prase),就不能不说一下Oracle对sql的处理过程。当你发出一条sql语句交付Oracle,在执行和获取结果前,Oracle对此sql将进行几个步骤的处理过程:   1、语法检查(syntax check)   检查此sql的拼写是否语法。   2、语义检查(semantic check)   诸如检查sql语句中的访问对象是否存在及该用户是否具备相应的权限。   3、对sql语句进行解析(prase)   利用内部算法对sql进行解析,生成解析树(parse tree)及执行计划(execution plan)。   ...
alter table table_name cache = alter table table_name storage(buffer_pool default) alter table_name storage(buffer_pool keep) alter table table_name nocache    keep Buffer Pool     Keep Buffer Pool 的作用是缓存那些需要经常查询的对象但又容易被默认缓冲区置换出去的对象,按惯例,Keep pool设置为合理的大小,以使其中存储的对象不再age out,也就是查询这个对象的操作不会引起磁盘IO ...
总之,B 树索引更适合索引动态表的 OLTP 环境,而位图索引更适合在大型静态表上使用复杂查询的数据仓库环境。   bitmap索引特点:       3.Bitmap索引允许键值为空   B*Tree索引由于不记录空值,当基于is null的查询时,会使 ...
sql占位操作: where 1=1; 这个条件始终为True,在不定数量查询条件情况下,1=1可以很方便的规范语句。 一、不用where  1=1  在多条件查询中的困扰     举个例子,如果您做查询页面,并且,可查询的选项有多个,同时 ...
Global site tag (gtag.js) - Google Analytics