Oracle
朝阳前的黑暗
这个作者很懒,什么都没留下…
展开
-
oracle 触发器中ORA-04091原因及解决
一,给触发器加上自己的事物控制,不让它和触发事件同事物,即在触发器的申明阶段加上PRAGMAAUTONOMOUS_TRANSACTION;但是别忘了既然自己控制事物,那么触发器end前一定要加上commit。二,在有些情况,可以明确使用的是old值还是new值,但是这种方法有时候不好用,例如我这里,原创 2017-09-21 11:02:14 · 6189 阅读 · 0 评论 -
PLS-00103-块儿中运行alter table的问题
在块儿中直接执行alter table时,会出现PLS-00103问题;这时需要使用动态SQL,执行。使用execute immediate 'alter table xxx';来执行就可以了,语法为execute immediate + SQL字符串,注意该SQL字符串只有一句SQL,且该SQL末尾不用加分号否则会报错不能多句SQL用分号分开...转载 2018-03-09 10:28:44 · 1249 阅读 · 0 评论 -
关于数据量过大,且SQL已经不能再优化的视图的解决办法(一)
给第三方做数据接口,通过视图组合对方要的数据,由于两边表不一致,所以导致很多视图的查询会很复杂。最复杂的一个视图里面四张表各自关联了几张表,然后查询还用了自定义的function,数据还用为空的状况。开始优化时,先去掉了一些无效的子查询,优化了链接条件,链接顺序。为空字段使用nvl,加函数索引。最后发现还是全表扫描。count了一下表数据总量,还用满足条件的总量发现过半了,所以没走...原创 2018-03-09 11:09:01 · 7504 阅读 · 0 评论 -
物化视图创建 及 刷新机制修改
Oracle物化视图语法2010-05-21 09:58 物化视图对于前台数据库使用者来说如同一个实际的表,具有和一般表相同的如select等操作,而其实际上是一个视图,一个由系统实现定期刷新其数据的视图(具体刷新时间在定义物化视图的时候已有定义),使用物化视图更可以实现视图的所有功能,而物化视图却不是在使用时才读取,大大提高了读取速度,特别适用抽取大数据量表某些信息以及数据链连接表使用,但...转载 2018-03-09 11:45:27 · 4257 阅读 · 0 评论 -
关于数据量过大,且SQL已经不能再优化的视图的解决办法(二)
一般情况下在上篇文章的处理后,利用物化视图,已经能够解决复杂视图的查询效率了,但是有时候数据量是在过大,且视图中使用了很多自定义的函数。这两种情况单单是建物化视图也提升不了效率。 第一,数据量过大,物化视图的创建及其缓慢,而且由于由于是做数据接口,要求物化视图的刷新机制需要全表更新,使用force(即能全表更新是就全表,不能是则更新增量)以保证物化视图的数据的准确性。这就导...原创 2018-03-29 17:46:08 · 2946 阅读 · 0 评论 -
删除shape字段,遇到存在域索引,无法删除。
删除字段时明明在plsql工具中看不到该字段有索引,但是删除发现有域索引,无法删除,使用select index_name,s.* from dba_indexes s where index_type='DOMAIN' and s.table_name='表名'即可查询该表的域索引index_type='DOMAIN'即查询索引类型是DOMAIN的即域索引。查到之后先drop index in...原创 2018-04-16 17:55:52 · 2664 阅读 · 0 评论