Oracle 的复制,底层是C写的;
Oracle数据库中,profile可以用来对用户所能使用的数据库资源进行限制,可以控制:CPU的时间 、I/O的使用 、IDLE TIME(空闲时间) 、CONNECT TIME(连接时间) 、并发会话数量 、口令机制。
使用Create Profile命令创建一个Profile,如果把该Profile分配给用户,则该用户所能使用的数据库资源都在该profile的限制之内。
80%以上的性能问题都出在设计和实现层。
游标共享:CURSOR_SHARING=FORCE,这个特性会开启自动绑定器,将SQL中的一切字面常量替换成绑定变量(可能会带来新的问题,把不该替换的常量替换掉了,导致其他性能问题)
使用绑定变量优先。
数据库:物理操作系统文件或磁盘的集合。
实例:一组Oracle系统后台进程或线程、一个共享内存区(与磁盘无关,就是一个运行中的程序),可以操作数据库。
一个数据库只能有一个实例对它进行操作,一个实例"一生"也只能操作一个数据库(RAC集群除外,多实例对应一个数据库)。
连接数据库时,先查找TNS字符串,如果没有则寻找ORACLE_SID变量;
运行Oracle的进程名字为oracle$ORACLE_SID,启动实例还需要参数文件(init.ora,指定启动Oracle实例所需的配置参数,名为init${ORACLE_SID}.ora)
连接Oracle:
专用服务器:为每个连接建立新的进程,专门与客户进程通信,注销登录之后也跟着消失;
共享服务器:多线程服务器(MIS),使用“共享进程”池为大量用户提供服务,不会跟客户进程专线通信;
客户请求会通过调度程序进入共享服务器的请求队列,然后处理完之后把响应放到响应队列中,调度程序会监听这个响应队列。
TNS代表了透明网络底层,Transparent Network Substrate,用于告诉Oracle如何连接远程数据库,tnsnames.ora
安装并配置了Oracle Net,并且有个监听器在某个端口(通常是1521)监听连接请求
专用服务器:监听器建立专用服务器
共享服务器:监听器从可用的调度程序池里捞一个调度进程出来,然后向客户进程返回与调度程序的连接信息,并断开与客户进程的连接。