oracle 死锁问题
2016-02-24 21:07
477 查看
最近工作中 遇到 死锁问题。
oracle 中遇到死锁的 概率很小, 反正我遇到的都是 程序设计不合理, 或者 我特意制造的死锁。
简单说下, 工作中的 死锁问题是, oracle 死锁是由于 , 外键 没有加索引导致的, 因为我删除 时 都要对主表全表扫描, 而且我的主表 还很大, 我清楚的记得是 没删除一行, 都要做一次全表扫描。 死锁问题 就在此时产生的。 问题找到了, 那我就 在此处 做处理, 那我加快扫描速度, 于是我在外键 上面 加上索引。 加上索引后果然 死锁问题 解决了。
此时我想“真的解决了吗?”。 我个人认为没有, 加上索引 只是 死锁问题 出现的几率变小了。 但木有完全解决。 此时我查了使用场景, 问这种 删除数据是不是 经常出现, 有木有哪位 用户 没事 喜欢 删除数据, 或者 我们能不能把数据改成 “软删除”。 说白了 就是 把外键给 去掉!!!
有没有 其他表 有类似的情况?? 于是 想到了 tom 大师的 脚本 检查 外键 没有索引 的脚本, 哎, 还查询出不少 外键 木有索引。
哎, 本来准备写写 结论的, 结果 写的写的 激动了(做技术 的通病??), 激动了, 有不免 有点啰嗦。
死锁 问题 , 还有一种情况是 位图索引 并发更新, 这个是之前 遇到的, 场景什么的不说了,遇到位图索引, 并且有更新操作 注意死锁问题........
oracle 中遇到死锁的 概率很小, 反正我遇到的都是 程序设计不合理, 或者 我特意制造的死锁。
简单说下, 工作中的 死锁问题是, oracle 死锁是由于 , 外键 没有加索引导致的, 因为我删除 时 都要对主表全表扫描, 而且我的主表 还很大, 我清楚的记得是 没删除一行, 都要做一次全表扫描。 死锁问题 就在此时产生的。 问题找到了, 那我就 在此处 做处理, 那我加快扫描速度, 于是我在外键 上面 加上索引。 加上索引后果然 死锁问题 解决了。
此时我想“真的解决了吗?”。 我个人认为没有, 加上索引 只是 死锁问题 出现的几率变小了。 但木有完全解决。 此时我查了使用场景, 问这种 删除数据是不是 经常出现, 有木有哪位 用户 没事 喜欢 删除数据, 或者 我们能不能把数据改成 “软删除”。 说白了 就是 把外键给 去掉!!!
有没有 其他表 有类似的情况?? 于是 想到了 tom 大师的 脚本 检查 外键 没有索引 的脚本, 哎, 还查询出不少 外键 木有索引。
哎, 本来准备写写 结论的, 结果 写的写的 激动了(做技术 的通病??), 激动了, 有不免 有点啰嗦。
死锁 问题 , 还有一种情况是 位图索引 并发更新, 这个是之前 遇到的, 场景什么的不说了,遇到位图索引, 并且有更新操作 注意死锁问题........
相关文章推荐
- centos import cx_oracle ImportError: No module named cx_Oracle 解决方法
- cx_Oracle.InterfaceError: Unable to acquire Oracle environment handle
- oracle用户创建及权限设置
- 【转】oracle对BLOB类型数据的操作与性能问题
- oracle下载
- Oracle sql语句创建表空间、数据库、用户及授权
- 在oracle中sequence就是序号,每次取的时候它会自动增加。sequence与表没有关系
- 连接oracle数据库异常System.Data.OracleClient 需要 Oracle 客户端软件 8.1.7 或更高版本
- 查看oracle数据库全局数据库名和sid
- Oracle sqlldr
- Oracle查询出最最近一次的一条记录
- Oracle 数据库字典 视图 基表
- Should you install or clone Oracle Home?
- jdbc更新oracle时间字段问题
- Oracle之自定义函数
- oracle数据文件被删除没备份恢复
- oracle 内存分配和调优 总结
- Oracle开发整理
- oracle 函数 %type 含义
- 尝试加载 Oracle 客户端库时引发 BadImageFormatException。问题记录