Oracle常识

1.启动关闭

 1.1:启动:主要分为三个阶段

nomount:用于读取DB的基础信息,如数据库名等basic info

        mount:    用于读取控制文件信息ctl ,主要为数据文件存储器信息等

        open:      用于根据ctl信息,打开Data信息

 1.2:关闭:

        shutdown inmmediatly :最快捷的关闭方式

        shutdown normal:          正常关闭

        shutdown Transactional:事务执行完成再关闭

 

 

2.Oracle与mysql索引存储

        mysql:指定主键,利用主键来建立B+树索引

        Oracle:是堆表,其索引结构也是利用B+索引,同样是B+树索引

    注:索引的格式很多,比如B+树索引,Hash索引等等

      经索引后的数据是排序的,升序降序是可以通过索引的扫描顺序来确定

 

3.statement 与 preparestatement

      oracle当中有共享池的概念,会缓存相同的sql语句.用带参数的sql执行(preparestatement)相当于执行同一条语句,复用同一个执行实例。在mysql或者其它数据库当中也有类似的作用(其内部实现用hash) 。所以preparestatement比statement执行更有效率。同时preparestatement还可以有效防sql注入,安全性能更高。

 

 

4.orcale数据一致性

     先写relog,再写data block.

     事务commit时,必须保证relog写成功

 

     事务执行未成功时执行undo.log,rollback数据文件.

 

5.sql语句的隐性转换

      5.1:select * from table1 where name=3

||此时3为数值类型,name为string,则会发生转换,toNum(string) = 3

      5.2:java的date类型到oracle会转换为timestamp,解决方法为直接设置date类型为string,在插入oracle时用toDate(String)进行转换。

 

6.SGA:System Global Area是Oracle Instance的基本组成部分,在实例启动时分配;

     系统全局域SGA主要由三部分构成:共享池、数据缓冲区、日志缓冲区。

     共享池:Shared Pool用于缓存最近被执行的SQL语句和最近被使用的数据定义,

         主要包括:Library cache(共享SQL区)和Data dictionary cache(数据字典缓冲区)

         共享SQL区是存放用户SQL命令的区域,数据字典缓冲区存放数据库运行的动态信息

     缓冲区高速缓存:Database Buffer Cache用于缓存从数据文件中检索出来的数据块,可以大大提高查询和更新数据的性能

     大型池:Large Pool是SGA中一个可选的内存区域,它只用于shared server环境

     Java池:java Pool为Java命令的语法分析提供服务

     PGA:Program Global Area是为每个连接到Oracle database的用户进程保留的内存。

 

 

7.oracle数据容灾概念

1.块复制概念:直接复制块内容,类似于mysql的行复制

2.sql复制:    通过执行sql进行恢复,类似内存数据库如derby等的恢复机制

 

你可能感兴趣的:(oracle,sql,数据库,mysql,String,database)