上一页 1 ··· 23 24 25 26 27 28 29 30 31 ··· 42 下一页
  2008年9月23日
摘要: 启用约束: enable( validate) :启用约束,创建索引,对已有及新加入的数据执行约束. enable novalidate :启用约束,创建索引,仅对新加入的数据强制执行约束,而不管表中的现有数据. 禁用约束: disable( novalidate):关闭约束,删除索引,可以对约束列的数据进行修改等操作. disable validate :关闭约束,删除索引,不能对表进行 插入/更新/删除等操作. 阅读全文
posted @ 2008-09-23 20:04 一江水 阅读(8017) 评论(1) 推荐(1) 编辑
摘要: 1. 概念不同:概念不同: 连接是指物理的网络连接。 在已建立的连接上,建立客户端与oracle的会话,以后客户端与oracle的交互都在一个会话环境中进行。 2. 关系是多对多: 一个连接上可以建立0个,1个,2个,多个会话。 阅读全文
posted @ 2008-09-23 20:03 一江水 阅读(3676) 评论(1) 推荐(2) 编辑
  2008年9月19日
摘要: 为了确保并发用户在存取同一数据库对象时的正确性(即无丢失修改、可重复读、不读“脏”数据),数据库中引入了锁机制。基本的锁类型有两种:排它锁(Exclusive locks记为X锁)和共享锁(Share locks记为S锁)。 排它锁:若事务T对数据D加X锁,则其它任何事务都不能再对D加任何类型的锁,直至T释放D上的X锁;一般要求在修改数据前要向该数据加排它锁,所以排它锁又称为写锁。 共享锁:若事务T对数据D加S锁,则其它事务只能对D加S锁,而不能加X锁,直至T释放D上的S锁;一般要求在读取数据前要向该数据加共享锁,所以共享锁又称为读锁。 阅读全文
posted @ 2008-09-19 23:00 一江水 阅读(1285) 评论(0) 推荐(0) 编辑
  2008年9月11日
摘要: 我们要删除表中不用的字段,如果直接drop column,对于大表,进行DDL操作的时间会比较长,会严重阻塞DML语句,导致应用服务器crash,通常的做法是先set unused column column_name 或者 set unused column_name,column_name...,然后再利用停机时间做alter table table_name drop unused columns 阅读全文
posted @ 2008-09-11 21:16 一江水 阅读(1092) 评论(0) 推荐(0) 编辑
摘要: 假设有张表,叫table1,里面有5000万行数据,假设预计全表扫描1次需要1个小时,我们从过程来看: 1、在1点钟,有个用户A发出了select * from table1;此时不管将来table1怎么变化,正确的结果应该是用户A会看到在1点钟这个时刻的内容。这个是没有疑问的。 2、在1点30分,有个用户B执行了update命令,更新了table1表中的第4000万行的这条记录,这时,用户... 阅读全文
posted @ 2008-09-11 15:53 一江水 阅读(816) 评论(0) 推荐(0) 编辑
  2008年9月10日
摘要: 本文介绍了ORACLE执行计划的一些基本概念,供学习应用。 一.相关的概念 Rowid的概念:rowid是一个伪列,既然是伪列,那么这个列就不是用户定义,而是系统自己给加上的。对每个表都有一个rowid的伪列,但是表中并不物理存储ROWID列的值。不过你可以像使用其它列那样使用它,但是不能删除改列,也不能对该列的值进行修改、插入。一旦一行数据插入数据库,则rowid在该行的生命周期内是唯一的,即即... 阅读全文
posted @ 2008-09-10 23:24 一江水 阅读(749) 评论(0) 推荐(0) 编辑
摘要: Oracle的hint种类繁多,大致可以分为下面几类: 优化方式和目标:如RULE、CHOOSE、FIRST_ROWS、ALL_ROWS等。 访问路径:如INDEX、FULL、CLUSTER、INDEX_FFS等。 查询转换:如MERGE、USE_CONCAT、NO_EXPAND等。 连接顺序:如LEADING、ORDERED、STAR等。 连接操作:如USE_NL、USE_HASH、USE_MERGE等。 并行执行:如PARALLE、NOPARALLEL、PARALLEL_INDEX等。 其他类型;如APPEND、UNNEST、CACHE等。 阅读全文
posted @ 2008-09-10 23:21 一江水 阅读(6849) 评论(0) 推荐(0) 编辑
摘要: USE_NL(嵌套循环连接) 在嵌套循环连接中,Oracle从第一个行源中读取第一行,然后和第二个行源中的数据进行对比。所有匹配的记录放在结果集中,然后Oracle将读取第一个行源中的下一行。按这种方式直至第一个数据源中的所在行都经过处理。第一个记录源通常称为外部表,或者驱动表,相应的第二个行源称为内部表。使用嵌套循环连接是一种从连接结果中提取第一批记录的最快速的方法。 USE_HASH(哈希连接) 当内存能够提供足够的空间时,哈希(HASH)连接是Oracle优化器通常的选择。在哈希连接中,Oracle访问一张表(通常是较大的表),并在内存中建立一张基于连接键的哈希表。然后它扫描连接中其他的表(通常是较大的表),并根据哈希表检测是否有匹配的记录。 阅读全文
posted @ 2008-09-10 23:01 一江水 阅读(10734) 评论(0) 推荐(2) 编辑
摘要: and_equal,index_join,index_combine这三种都是oracle利用索引关联获得数据的方法,三者的目的都是为了最大限度的利用索引,减少回表的代价.但是三者的实现方法是有区别的 阅读全文
posted @ 2008-09-10 21:23 一江水 阅读(1011) 评论(0) 推荐(0) 编辑
摘要: 在SQL语句优化过程中,我们经常会用到hint,现总结一下在SQL优化过程中常见Oracle HINT的用法: 1. /*+ALL_ROWS*/ 表明对语句块选择基于开销的优化方法,并获得最佳吞吐量,使资源消耗最小化. 例如: SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN FROM BSEMPMS WHERE EMP_NO='SCOTT'; 2. ... 阅读全文
posted @ 2008-09-10 16:23 一江水 阅读(1361) 评论(0) 推荐(0) 编辑
上一页 1 ··· 23 24 25 26 27 28 29 30 31 ··· 42 下一页