为什么数据库连接的创建开销大
2013-08-18 00:00
225 查看
为什么连接开销比较大?
开发人员经常认为建立一个数据库是一个简单的要求,不就是在数据库服务器和初始化用户之间的一个网络往返吗,但实际上,一个数据库连接在驱动和数据库服务器之间有多次网络往返,例如,当某个驱动连接到Oracle或Sybase时,这个连接会有7到10和网络往返,执行了一系列的动作:
◆校验用户的身份证书
◆在数据库驱动期望的代码页设置和数据库可用的代码页设置之间进行协商(如果必要的话)
◆获取数据库版本信息
◆确定用于通信的最理想的数据库协议包大小
◆设置会话设置
此外,数据库管理(开发人员承担数据库管理员职责时的最佳做法)系统要确定建立连接使用的资源,包括性能开销较大的磁盘I/O和内存分配,你可能会认为将应用程序部署到数据库服务器上会消除网络往返,在大多数情况下这并不现实,因为现实世界中大部分企业并不会这么干,它们有很多的应用程序,有很多的数据库,此外,数据库服务器都会为数据库系统进行精心的性能调整,一般不会为不同的应用程序进行调整,即使可以在一台机器上安装数据库和应用程序,但这样也会有单点故障的隐患。
摘自:http://database.51cto.com/art/200907/136845.htm
开发人员经常认为建立一个数据库是一个简单的要求,不就是在数据库服务器和初始化用户之间的一个网络往返吗,但实际上,一个数据库连接在驱动和数据库服务器之间有多次网络往返,例如,当某个驱动连接到Oracle或Sybase时,这个连接会有7到10和网络往返,执行了一系列的动作:
◆校验用户的身份证书
◆在数据库驱动期望的代码页设置和数据库可用的代码页设置之间进行协商(如果必要的话)
◆获取数据库版本信息
◆确定用于通信的最理想的数据库协议包大小
◆设置会话设置
此外,数据库管理(开发人员承担数据库管理员职责时的最佳做法)系统要确定建立连接使用的资源,包括性能开销较大的磁盘I/O和内存分配,你可能会认为将应用程序部署到数据库服务器上会消除网络往返,在大多数情况下这并不现实,因为现实世界中大部分企业并不会这么干,它们有很多的应用程序,有很多的数据库,此外,数据库服务器都会为数据库系统进行精心的性能调整,一般不会为不同的应用程序进行调整,即使可以在一台机器上安装数据库和应用程序,但这样也会有单点故障的隐患。
摘自:http://database.51cto.com/art/200907/136845.htm
相关文章推荐
- JDBC 连接 SQL Server 数据库 - 创建连接 URL
- [转]使用Oracle SQL Developer连接数据库并创建用户
- sqlserver2005创建连接数据库dblink
- PHP连接数据库、创建数据库、创建表的三种方式
- 安装完Oracle后 使用dbca创建数据库 弹出ORA-01092: ORACLE 实例终止,强制断开连接
- 创建数据库连接对象
- C# ABP 配置连接数据库&创建表
- PHP连接Mysql数据库,创建数据库,创建表
- MySQL_连接及创建数据库
- 数据模型创建及数据库连接
- 使用Oracle SQLDeveloper连接数据库并创建用户
- 用vs2010MVC2项目中创建数据库时报建立连接时出现与网络相关的或特定于实例的错误的解决办法
- 数据库访问接口-数据源创建连接释放
- SpringBoot实践之---JPA连接数据库+idea全新创建该工程
- oracle学习.数据库实例的用户创建以及创建连接
- Java 创建 MySQL 数据库连接
- oracle 建表 造数据 存储过程 创建数据库的远程连接 以及一列的多行合并
- IDE maven 创建spring boot 用hibernate 实现连接数据库
- 润乾报表与DERBY数据库的创建连接详解
- 解决Hibernate4连接MySQL5.5数据库无法自动创建表的问题