Oracle与SQL Server等数据库的区别
Oracle与SQL Server等数据库的区别
在Oracle中提倡使用一个连接
Oracle处理多个并发语句使用一个连接,大大提升系统能支持的并发量
Oracle运行在32为单进程平台上SGA和PGA最多只能使用2GB内存,多进程平台上SGA最多使用2GB内存,每个PGA也能使用2GB内存,这是Oracle使用Windows平台时需要运行在Data Center版本的Windows系统上的原因
使用绑定变量而不是字面量
Oracle使用绑定变量有两个好处
实现sql的软解析
相比与硬解析,解析结果更能得到重用,如果硬解析太多的话,共享池会清理掉一些其他的解析结果导致下次运行是重新解析。执行的解析越多,对共享池的闩竞争就越厉害,等待的队列越长,时间越久。
能防止sql注入
如果使用绑定变量,就不会遭遇SQL注入攻击
锁机制
Oracle只在修改时才对数据加行级锁
如果只是读数据,Oracle绝对不会加锁
Oracle写操作不会阻塞读操作
Oracle需要修改已锁定的数据时会被阻塞
防止更新丢失
Oracle可以使用读锁for update锁定资源实现串行化
for update不会阻塞读操作
多版本控制
Oracle使用多版本、读一致实现并发模型
读一致查询:对于一个给定的时间点(as of从句后面可以使用系统提交号SCN或者时间点,读undo日志数据或者归档日志实现),查询会产生一致的结果
非阻塞查询:查询的会话不会被写入会话阻塞
根据多版本读一致特性可以预知insert into t select * from t插入的数据集
Oracle数据库不会对列完全为null的数据创建索引
Select * from t where (x = l_v or (x is null and l_v is null))不会用到索引
可以创建函数索引将null值转化为没有意义的其他值
Oracle与SQL Server等数据库的区别的更多相关文章
- Oracle,Mysql ,SQL Server 三大数据库带参数的模糊查询, 拼接查询条件问题
最近项目开发一直在不断切换数据库,有时候一条sql 要同时考虑多种数据库中的兼容问题 , 先总结一条模糊查询拼接查询条件的问题,后续追加总结. 目前使用 mybatis: 1. Oracle 中使 ...
- Oracle和SQL server查询数据库中表的创建和最后修改时间
有时候我们需要查看下数据数据库中表的创建时间和最后修改时间,可以通过以下语句实现: Oracle数据库 -- 查看当前用户下的表 SELECT * FROM USER_TABLES -- 查看数据库中 ...
- Spring连接MySQL、Oracle和SQL Server的数据库运动连接属性
在配置文件applicationContext.xml设置如下:<?xml version="1.0" encoding="UTF-8"?>< ...
- oracle,mysql,sql server三大数据库的事务隔离级别查看方法
1:mysql的事务隔离级别查看方法 mysql 最简单,执行这条语句就行:select @@tx_isolation 详情: 1.查看当前会话隔离级别 select @@tx_isolation; ...
- ORACLE与SQL SERVER语法区别
一.数据类型 ORACLE与SQL SERVER在数据类型的对比如下: SQL SERVER ORACLE 数字类型 DECIMAL[(P[, S])] NUMBER[(P[, S])] NUMERI ...
- 对Oracle 、SQL Server、MySQL、PostgreSQL数据库优缺点分析
对Oracle .SQL Server.MySQL.PostgreSQL数据库优缺点分析 Oracle Database Oracle Database,又名Oracle RDBMS,或简称Oracl ...
- oracle跟SQL Server 2005 的区别
Oracle与Sql server的区别 一直搞不明白Oracle数据库和sql server的区别,今天我特意查资料把他们的区别整理出来 Oracle数据库:Oracle Database,又名 ...
- Oracle 和SQL Server 中的SQL语句使用区别
最近开始接触Oracle,想要了解下同SQL Server使用时的区别.搜寻网上信息找到具体区别分类如下: 一.数据类型比较 类型名称 Oracle SQLServer 比较 字符数据类型 CHA ...
- 加载MySQL、Oracle、SQL Server 2000、SQL Server 2005及以上版本 的加载数据库驱动程序
2018-11-04 20:00:59 开始 //getConnection(String url, String user, String password) //url:连接数据库的URL 3 ...
随机推荐
- Electron 打开开发者工具 devtools
转载:http://newsn.com.cn/say/electron-devtools.html 在electron开发的过程中,可以用代码控制打开自带chrome的devtools开发者工具,进而 ...
- kotlin基础 密封类
密封类 密封类用来表示受限的类继承结构:当一个值为有限几种的类型, 而不能有任何其他类型时.在某种意义上,他们是枚举类的扩展:枚举类型的值集合 也是受限的,但每个枚举常量只存在一个实例,而密封类 的一 ...
- 基于Vue SEO的四种方案
基于Vue SEO的四种方案 https://segmentfault.com/a/1190000019623624?utm_source=tag-newest
- Python统计数据库中的数据量【含MySQL、Oracle】
Python程序文件如下: # -*- coding: utf-8 # File : start.py # Author : baoshan import json import pymysql im ...
- 码云push时提示 DeployKey does not support push code fatal: Could not read from remote repository.
一.如果需要push代码到码云,需要创建个人公钥,公共公钥只可以读不可以修改 二.执行代码即可:git push
- EasyNVR网页摄像机无插件H5、谷歌Chrome直播方案-Onvif(一)使用Onvif协议进行设备发现以及指定设备信息探测
背景分析 众所周知,EasyNVR不拘泥.不受限于摄像机的品牌厂商及其配套平台,只要是网络监控摄像机IPC.硬盘录像机NVR.且设备支持标准的RTSP/Onvif协议,都可以接入实时视频流进入Easy ...
- windows 系统下安装docker
一.介绍 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间 ...
- 对于之前已经push的项目增加.gitignore配置文件不起作用的处理
.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的. 解决方法就是先把本地缓存删除(改变成未track状态),然后再提交 ...
- 香农的伟大论文《A Symbolic Analysis of Relay and Switching Circuits》
香农在1938年发表的伟大论文A Symbolic Analysis of Relay and Switching Circuits(<对继电器和开关电路中的符号分析>)将开关.继电器.二 ...
- c#学习笔记2-委托
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using S ...