zoukankan      html  css  js  c++  java
  • Oracle专家高级编程 第一章

    理解Oracle的体系结构

    不要在MTS下运行长事物

    不要在多线程服务器上运行45秒以上的事务,若一个进程阻塞可能导致长时间挂起

    使用绑定变量

    select * from amp where empno=:empno

    绑定变量,它的值在查询执行时提供,查询经过一次编译后,查询方案存储在共享池(库高速缓存),用来检查和复用

    • 提交引用相同对象的完全相同的查询将使用共享池中的编译方案
    • 不仅使用较少资源
    • 减少锁存时间
    • 降低锁存频率
    • 提高了软件性能和可伸缩性

    理解并行控制

    并行控制实现数据库和系统文件分离,数据库之间分离

    实现封锁

    数据库利用锁定确保指定时间内,一个事务至多修改一处指定的数据

    Oracle封锁策略

    • 只有当修改时,Oracle在行级上锁定数据,不能把锁定上升到块级或表级
    • Oracle绝不会为读取而锁定数据,简单读取不能在数据行上设置锁定
    • 数据的写入器不会阻塞数据读取器
    • 只有当另一个数据写入器已经锁定了某行数据后,才阻塞对他人对改行数据的写入

    select for update

    通过 for update 语句加锁,实现多进程下的资源同步

    多版本

    • 一致读查询:在某一时刻查询产生一致结果
    • 非阻塞查询:数据写入器从来不阻塞查询
    • delete命令把数据复制到一个称为回滚段的数据区域保存

    oracle所拥有的处理机制,无论何时修改,Oracle都在两个不同地方产生记录

    • 一条记录到redo(重做),存储前滚信息
    • 另一条到undo(撤销),回滚段,用于事务的撤销回复之前的映像

    oracle的查询如何保证数据一致

    Oracle只确定数据是否变化,不关心数据是否锁定

    论读书
    睁开眼,书在面前
    闭上眼,书在心里
  • 相关阅读:
    Spring Boot 之 RabbitMQ 消息队列中间件的三种模式
    各浏览器驱动下载地址
    idea配置jdk
    谷歌打不开应用商店临时方法
    airtest下载网址
    hive不分区增量更新
    hive建表结构
    Hive 常用命令
    Hive内部表与外部表区别
    java代码中的坑
  • 原文地址:https://www.cnblogs.com/YC-L/p/14648542.html
Copyright © 2011-2022 走看看