oracle
文章平均质量分 71
lihao2372
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
oracle with as语句的DDL尴尬
oracle with as 的用法不赘述,我理解有两方面的好处1) 复杂的查询会产生很大的sql,with as语法显示一个个中间结果,显得有条理些,可读性提高2) 前面的中间结果可以被语句中的select或后面的中间结果表引用,类似于一个范围仅限于本语句的临时表,在需要多次查询某中间结果时可以提升效率 比如 with a as (select* from dba_objects where 某些查询条件), b as (select * from a where 某些查询条件)原创 2011-05-25 15:30:00 · 1503 阅读 · 0 评论 -
未加索引的外键(unindexed foreign keys)
在Oracle 9i及以上版本中,若父表主键被更新或删除行,且子表外键未建索引,将导致子表全表锁,影响并发性能。该锁为短期持有,仅持续于DML操作期间。通过实验验证:创建外键索引后,删除父表记录可立即成功,避免阻塞。因此,当需删除父表、更新主键或关联查询时,必须为外键创建索引;否则可省略索引以节省资源。原创 2011-05-06 10:02:00 · 707 阅读 · 0 评论 -
ORA-01002: fetch out of sequence在10G下之一例
set serveroutputondeclare cursor curis select c from t1; vvarchar2(2); begin insertinto tvalues('1'); open cur; loop原创 2012-08-18 15:58:38 · 923 阅读 · 0 评论 -
oracle从char赋值到varchar2的几种情况
三种情况:1 char变量直接赋值到varchar22 function输出的char赋值到varchar23 procedure输出的char赋值到varchar2set serveroutput ondeclarev_char char:='Y';v_varcha2 varchar2(10);function functestchar return ch原创 2012-09-19 10:44:05 · 2310 阅读 · 0 评论 -
oracle基于视图的instead of trigger丢失
在Oracle中,基于视图创建的INSTEAD OF触发器会在视图被重建或删除时自动消失。为避免此问题,开发过程中若修改视图,必须检查是否存在关联的INSTEAD OF触发器,并及时重新创建或维护,以确保业务逻辑的完整性与可靠性。原创 2015-03-09 16:07:09 · 863 阅读 · 0 评论 -
oracle的rowid相关
本文基于Thomas Kyte著作,阐述Oracle中ROWID的特性与使用注意事项:ROWID在插入时分配,可能因表移动、分区操作、收缩等变化;启用ROWMOVEMENT是Flashback的前提。DUAL表查询在10g后优化,SYSDATE不再触发I/O。ROWID仅在表内唯一,不可持久存储于列中,应以主键替代。虽为快速定位行的手段,但需警惕其变动风险,避免在跨库复制或导入导出中依赖。原创 2015-03-09 16:13:53 · 562 阅读 · 0 评论 -
oracle数据库删除主键约束时是否删除索引?
删除主键时是否自动删除索引,取决于索引创建方式:若主键创建时自动生成索引,则删除主键会连带删除索引;若为手动创建,则需显式使用drop index选项才能删除。为防止因外键引用导致删除失败,可使用cascade关键字,但需谨慎操作,避免意外移除外键约束。原创 2015-03-09 16:37:24 · 9451 阅读 · 1 评论 -
sql性能优化结果集一致办法
在Oracle中,仅用MINUS判断两结果集是否相等不可靠,因其会去重。正确方法需确保元素及出现次数完全一致。推荐两种方案:一是对两表按字段分组计数后求差集,若结果为0则相等;二是对两表排序后加行号,再通过MINUS比较,若结果为空则完全一致。两者均可有效验证集合的精确相等性。原创 2015-03-09 16:43:59 · 691 阅读 · 0 评论 -
oracle 9i正常,11g会报错的几类sql写法
本文总结了Oracle 9i与11g版本在SQL语法和查询处理上的主要差异:1)GROUP BY语法在9i中自动排序而11g需要显式ORDER BY;2)11g全表扫描采用DIRECT PATH READ机制,OLTP系统中频繁全表扫描效率会低于9i;3)列举三类9i正常但11g会报错的SQL写法:单行GROUP BY包含额外列、INSERT时自查询、游标内ROLLBACK导致的FETCH异常;4)指出11g修复了9i/10g中EXISTS子查询条件下ORDER BY失效的问题。原创 2015-03-09 17:14:13 · 563 阅读 · 0 评论 -
查找代码之间的关联关系之oracle常用表和语句篇
dba_constraints 查看约束 dba_cons_columns 约束涉及字段 两者结合可以查询所有外键引用某字段的表 dba_source 查询所在DB所有用户下TYPE BODY,PROCEDURE,TYPE,FUNCTION,TRIGGER,JAVA SOURCE,PACKAGEBODY,PACKAGE的源代码,注意写在java DAO层中的sql语句在这个视图原创 2015-03-09 16:17:00 · 605 阅读 · 0 评论 -
优化前后比对之刷新oracle缓存
为准确对比优化前后SQL性能,需清除Oracle缓存以避免缓存干扰。使用ALTER SYSTEM FLUSH SHARED_POOL可清空库缓存和字典缓存中的执行计划,但保留共享SQL区内容;使用ALTER SYSTEM FLUSH BUFFER_CACHE则可清空数据缓冲区,强制触发物理读取。结合AUTOTRACE ON STATISTICS,可有效观测真实执行性能,确保测试结果准确。原创 2015-03-09 16:47:31 · 1375 阅读 · 0 评论 -
在数据库限制模式下做版本部署的介绍
【什么是数据库受限】版本里面,涉及到数据库现有对象变更,如表、视图等,以及包头的变更,会采用限制模式;它们的重编译会引发关联对象失效,重新编译经常会遇到锁。仅有包体下发,则一般不用限制模式。受限是根据一个受限用户清单,把清单里面的用户进程kill掉,并限制它重新登录;不用重启DB。 【进入DB受限模式】exec prc_enb_restrict;1 取消除DBA用户外所有用户的原创 2015-03-09 16:47:45 · 854 阅读 · 0 评论
分享