Oracle function-based index对于数据更新处理延时问题。
2007-06-09 18:44
281 查看
问题描述:根据tableA中Col2列数据对其他数据表进行更新,并且把Col2输具由0变成1。为了提高查询速度将数据表tableA中Col2使用了function-based index,现在使用嵌套游标来更新Col2的数据,并且为了提高执行速度使用两个程序来更新数据。偶尔会出现对其它数据表进行两次更新的情况,分析可能是由于多个程序调用的原因,使用了10个Server同时调用,结果出现问题的几率达到了25%。下面介绍一下具体的代码。
数据表tableA,数据结构如下:
Col1 Col2
Aa 0
Bb 1
Cc 1
步骤:
为了更好的提高查询速度针对Col2列建立了一个function based index,建立的方法如下。Col2列的数据只有1和0两种数据,而且主要是1。
Cur1主要是获取到需要处理的数据。
Cur2主要是获取每一条数据,由于多个程序的调用,所以Cur1中的过滤条件也加了进去,因为某一条数据在一个程序循环过程中可能被另外一个程序执行结束。FOR UPDATE SKIP LOCKED语句的作用是对于数据表更新操作的锁定。
原因分析:可能是function-based index的数据更新有延迟问题,一条已经处理结束的数据状态仍然没有变换为1,导致另外一个程序查询到这条数据然后又进行了一次更新。
解决方案:去掉function-based index。
不知道function-based index是否是这个问题的原因,请解决过类似问题的兄弟多多指点。非常感谢。
参考资料;
Creating a Function-Based Index http://www.lc.leidenuniv.nl/awcourse/oracle/server.920/a96521/indexes.htm#2943
数据表tableA,数据结构如下:
Col1 Col2
Aa 0
Bb 1
Cc 1
步骤:
为了更好的提高查询速度针对Col2列建立了一个function based index,建立的方法如下。Col2列的数据只有1和0两种数据,而且主要是1。
Cur1主要是获取到需要处理的数据。
Cur2主要是获取每一条数据,由于多个程序的调用,所以Cur1中的过滤条件也加了进去,因为某一条数据在一个程序循环过程中可能被另外一个程序执行结束。FOR UPDATE SKIP LOCKED语句的作用是对于数据表更新操作的锁定。
原因分析:可能是function-based index的数据更新有延迟问题,一条已经处理结束的数据状态仍然没有变换为1,导致另外一个程序查询到这条数据然后又进行了一次更新。
解决方案:去掉function-based index。
不知道function-based index是否是这个问题的原因,请解决过类似问题的兄弟多多指点。非常感谢。
参考资料;
Creating a Function-Based Index http://www.lc.leidenuniv.nl/awcourse/oracle/server.920/a96521/indexes.htm#2943
相关文章推荐
- 对于分页时,若数据库的数据不断更新,不让前台显示脏数据(同一条数据重复显示)的处理方式
- 对于mysql处理数据库表中一对多的数据统计问题
- 通达OA 对于工作流表单中列表控件数据的数组问题处理
- 对于Packet for query is too large(mysql写入数据过大) 问题的处理方法二
- 通达OA 对于工作流表单中列表控件数据的数组问题处理
- 对于需要根据客户操作更新数据的情况的去重复处理
- Oracle存储过程游标循环更新新增字段处理线上历史数据问题
- 对于分布式数据处理系统的性能问题
- 对于solr 在更新数据后在admin中查询发现未更新问题
- 后台线程处理数据,如何实时更新UI(datagridview)----多线程同步问题
- /*+ BYPASS_UJVC */ 处理数据更新时不能更新问题
- 对于Packet for query is too large(mysql写入数据过大) 问题的处理
- jquery 请求ie缓存,数据不更新的问题【ajax禁用缓存解决ie数据不更新的问题】
- REPEATABLE-READ下批量更新数据的问题
- Silverlight 解决 更新数据后 datagrid同步问题
- 解决数据不能更新,数据库或对象为只读的问题[图]
- android PagerAdapter notifyDataSetChanged() 无法更新数据问题解决
- MySQL删除更新数据时报1175错误的问题
- DataGrid更新数据时的一系列问题的解决
- 大数据处理前所需要注意的问题