日期:2011-05-02 15:22:00 来源:本站整理
SQL Server 衔接底子知识[MSSQL防范]
本文“SQL Server 衔接底子知识[MSSQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
引言
该仓库的顶部是 API 或对象库层.利用程序通过对象库公开的 API 函数或接口衔接到 Microsoft? sql server.用于拜候 SQL Server 的 API 示例包含 ODBC 和 DB-Library.用于拜候 SQL Server 的对象库示例包含 OLE DB、ADO 和 ADO.NET.由于 ADO 终究利用 OLE DB 与服务器通信,因此 Windows 利用程序在与 SQL Server 通信时实际上只利用两个常用的对象库,即 OLE DB 和 ADO.NET.由于通过 ADO 或 ADO.NET 举行衔接普通比通过 ODBC 举行衔接更广泛(但 SQL Server 的查询解析器和企业管理器仍通过 ODBC 举行衔接),因此本文将从 ADO/OLE DB 和 ADO.NET 的角度介绍 SQL Server 衔接体系构造的客户端.目前,大大都利用程序均通过对象库(而非 ODBC 或近似 API)衔接到 SQL Server.
ADO 和 OLE DB
OLE DB 客户端(也称作利用者)通过客户端供应程序与服务器以及其他后端程序举行通信.此供应程序是一组 COM 组件(一个或多个),用于将利用程序恳求转换为网络进程间通信 (IPC) 恳求.在利用 SQL Server 的情形下,最常用的 OLE DB 供应程序是 SQLOLEDB,它是 Microsoft 为 SQL Server 供应的 OLE DB 供应程序.SQLOLEDB 随附于 SQL Server 中,并作为 Microsoft 数据拜候组件 (MDAC) 库的一部份安装.
为了利用 ADO 与 SQL Server 举行通信,利用程序首先利用 Connection 对象成立与服务器的衔接.ADO 的 Connection 对象承受一个衔接字符串,该字符串指定要利用的 OLE DB 供应程序以及传送给它的参数.假如利用程序利用 SQLOLEDB 供应程序衔接到 SQL Server,则该字符串中将显示"SQLOLEDB".
ADO 利用程序还可以通过 ODBC 衔接到 SQL Server.为此,利用程序将利用实用于 ODBC 的 OLE DB 供应程序,并指定在其衔接字符串中引用目标 SQL Server 的 ODBC 数据源.这种情形下,利用程序与 OLE DB 举行通信,同时 ODBC 的 OLE DB 供应程序调用呼应的 ODBC API,以便与 SQL Server 举行会话.
ADO.NET
ADO.NET 利用程序普通利用 .NET Framework Data Provider for SQL Server 衔接到 SQL Server.该本机供应程序使 ADO.NET 对象可以与 SQL Server 直接举行通信.普通,利用程序利用 SqlConnection 对象成立衔接,然后利用 SqlCommand 对象向服务器发送号令,并接纳服务器返回的后果.SqlDataAdapter 和 SqlDataReader 类普通与 SqlCommand 一同利用,以便通过托管的代码利用程序与 SQL Server 举行交互.
通过 OleDbConnection 类,ADO.NET 利用程序还可以利用 SQLOLEDB OLE DB 供应程序与 SQL Server 举行交互.此外,它们可以通过 OdbcConnection 类利用 ODBC 拜候 SQL Server.因此,仅通过托管代码,您就有三种差别的办法从利用程序拜候 SQL Server.从弊端解除的角度而言,理解这些办法是非常有效的,因为它可以帮忙您将碰到的与衔接相关的问题归结到特定的数据拜候层或库.
客户端 Net-Library
该仓库中的下一层是 Net-Library.Net-Library 在 API 或对象库(利用程序利用它与 SQL Server 举行通信)与网络协议(用于与网络交换数据)之间供应了一个通道.SQL Server 为全部主要的网络协议供应了 Net-Library.这些库以透明方法将客户端发出的恳求发送到 SQL Server,并将服务器发出的呼应返回给客户端.可以利用 SQL Server 的客户端网络实用程序配置实用于特定客户端的 Net-Library.支持的客户端协议包含 TCP/IP、命名管道、NWLink、多协议 (RPC) 和其他一些协议.
特别值得一提的 Net-Library 是同享内存 Net-Library.顾名思义,该 Net-Library 利用 Windows 的同享内存功效在 SQL Server 客户端与服务器之间举行通信.明显,这意味着客户端与服务器必须位于同一台物理计算机上.
由于它可以绕过物理网络仓库,因此同享内存 Net-Library 要比其他 Net-Library 快得多.对同享内存区域的拜候遭到同步对象的保护,因此客户端与服务器之间的通信速度主要受限于 Windows 对内查对象举行调度的本领,以及进程与同享内存区域之间举行数据复制的本领.
可以在衔接时将某个时间段或(本地)指定为您的计算机名,来指导利用同享内存 Net-Library.也可以在衔接时为计算机\实例名加上前缀 lpc:,来指导要利用同享内存 Net-Library.
注意,即便衔接到同一台计算机上的 SQL Server,同享内存 Net-Library 也未必就是最佳的衔接选项.在某些情形下,客户端与服务器之间的直接衔接大概限制它的扩大性.与利用程序整体体系构造中的其他元素一样,应始终对给定技术办理筹划举行全面的测试,然后才能判断它能否有杰出的扩大性以及能否比其他办法更快.
衔接
客户端举行衔接时,SQL Server 的用户情势筹划程序 (UMS) 组件将它指定给特定的筹划程序.启动时,SQL Server 为系统上的每个 CPU 成立一个单独的 UMS 筹划程序.当客户端衔接到服务器时,这些客户端将指定给具有最少衔接数的筹划程序.衔接后,客户端将不会改换筹划程序 - 它将始终遭到指定筹划程序的掌握,直到衔接断开.
这对与服务器成立多个衔接的利用程序很重要.假如利用程序性能较差,或无法在它的多个衔接上平均分配工作,则在该利用程序的某些衔接之间大概造成不必要的 CPU 资源争用,而其他衔接实际上却处于闲暇状况.
比方,利用程序与双处理器计算机上运行的 SQL Server 成立了四个衔接,衔接 1 和 3 隶属于处理器 0,衔接 2 和 4 隶属于处理器 1.假如利用程序的大部份工作通过衔接 1 和 3 履行,则这两个衔接将争用 CPU 0,而 CPU 1 实际上大概仍处于闲暇状况.这种情形下,利用程序只能断开某些衔接或重新衔接某些衔接,并但愿衔接 1 和 3 隶属于差别的 CPU (衔接时无法指定处理器隶属关系),或在它的衔接上重新分配工作负荷,以便每个衔接的工作负荷越发均衡.当然,后一种情形要远好过前一种情形.
本新闻共2页,当前在第1页??1??2
以上是“SQL Server 衔接底子知识[MSSQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
Windows 搭配 IIS7 PHP MySQL 环境
sqlserver索引的原理及索引成立的注意事项小结
SQL Join的一些总结(实例)
SQL的Join利用图解教程
SQL中JOIN和UNION辨别、用法及示例介绍
关于SQL中CTE(公用表表达式)(Common Table Expression)的总结
mysql Out of memory (Needed 16777224 bytes)的错误办理
mysql提醒[Warning] Invalid (old?) table or database name问题的办理办法
mysql启用skip-name-resolve情势时呈现Warning的处理办法
mysql启用skip-name-resolve情势时呈现Warning的处理办法
MySQL Order By语法介绍
<b>MySQL ORDER BY 的实现解析</b>
以上是“SQL Server 衔接底子知识[MSSQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |
评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论