microsoft sql server 连接知识--

microsoft sql server 连接知识--

ID:22820294

大小:58.00 KB

页数:8页

时间:2018-10-31

microsoft sql server 连接知识--_第1页
microsoft sql server 连接知识--_第2页
microsoft sql server 连接知识--_第3页
microsoft sql server 连接知识--_第4页
microsoft sql server 连接知识--_第5页
资源描述:

《microsoft sql server 连接知识--》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、MicrosoftSQLServer连接知识>>  该堆栈的顶部是API或对象库层。应用程序通过对象库公开的API函数或接口连接到Microsoft®SQLServer。用于访问SQLServer的API示例包括ODBC和DB-Library。用于访问SQLServer的对象库示例包括OLEDB、ADO和ADO.。由于ADO最终使用OLEDB与服务器通信,因此S计划程序。当客户端连接到服务器时,这些客户端将指定给具有最少连接数的计划程序。连接后,客户端将不会更换计划程序-它将始终受到指定计划程序的控制,直到连接断开。  这对与服务器建立多个连接的应用程序很重要。如

2、果应用程序性能较差,或无法在它的多个连接上平均分配工作,则在该应用程序的某些连接之间可能造成不必要的CPU资源争用,而其他连接实际上却处于空闲状态。  例如,应用程序与双处理器计算机上运行的SQLServer建立了四个连接,连接1和3隶属于处理器0,连接2123下一页>>>>这篇文章来自..,。和4隶属于处理器1。如果应用程序的大部分工作通过连接1和3执行,则这两个连接将争用CPU0,而CPU1实际上可能仍处于空闲状态。这种情况下,应用程序只能断开某些连接或重新连接某些连接,并希望连接1和3隶属于不同的CPU(连接时无法指定处理器隶属关系),或在它的连接上重新分配工作负荷

3、,以便每个连接的工作负荷更加均衡。当然,后一种情况要远好于前一种情况。    连接内存  SQLServer为客户端请求的每个连接保留三个数据包缓冲区。每个缓冲区的大小取决于sp_configure存储过程指定的默认网络数据包大小。如果默认网络数据包大小小于8KB,则这些数据包的内存将由SQLServer的缓冲池提供。否则,该内存将由SQLServer的MemToLeave区域分配。    值得一提的是,.FrameToLeave区域提供。而典型的ADO应用程序却不同,它们的默认数据包大小为4KB,因此缓冲区将由SQLServer缓冲池分配。  事件  连接后的客户端请求

4、通常分为两种广泛类别:语言事件和远程过程调用。尽管还存在其他类别,但大多数由SQLServer客户端发送到服务器的请求由以下两种类型之一构成:语言事件是从客户端发送到服务器的一组T-SQL。例如,如果调用ADOmand对象(其mandText属性设置为T-SQL查询,mandType属性设置为adCmdText)的Execute方法,则查询将作为语言事件提交给服务器。同样,如果将mandType设置为adCmdTable并调用Execute方法,则ADO将生成一个内部查询(它将选择mandText属性标识的表中的所有列),并将它作为语言事件提交给服务器。另一方面,如果将m

5、andType设置为adStoredProc,则调用Execute将使ADO向服务器提交一个远程过程调用请求,以执行mandText属性中列出的存储过程。  为何要关心将请求作为语言事件还是作为RPC提交给服务器呢?通常,这是因为RPC的功能更为出色,特别是在重复调用具有不同筛选值的同一查询时。尽管SQLServer可以自动将普通的语言事件请求参数化,但这种能力非常有限。它从不尝试自动将某些类型的查询参数化。这可能会导致基本相同的查询产生不同的执行,从而只因为这些不同的执行提供不同的值,而导致在服务器上白白浪费计划编译的成本。这通常不是您所希望的结果-您希望针对查询的第一

6、次执行编译一个新的计划,然后将该计划重复用于具有不同参数的执行。  而RPC则通过显式参数化查询(而不是依赖服务器参数化查询)来支持计划重复使用。为过程的第一次执行生成一个计划后,随后的执行将自动重复使用该计划,即使它们提供的参数值不同。与通过语言事件调用存储过程相比,使用RPC调用存储过程不仅节省了计划编译所需的执行时间和CPU资源,还增强了SQLServer内存资源的利用率,因为它避免了冗余执行计划所浪费的内存。  在执行动态T-SQL时,通常首选sp_executesql而不是EXEC()也出于同样的原因。Sp_executesql的工作方式是:使用指定的查询创建一

7、个存储过程,然后使用提供的参数调用它。与EXEC()不同,sp_executesql提供了一个允许您参数化动态T-SQL并支持计划重复使用的机制。使用sp_executesql执行的动态查询比使用EXEC()的查询能够在更大程度上避免不必要的编译和资源消耗。  TDS  从客户端发送到SQLServer的RPC、语言事件和其他类型的请求被格式化为称作表格数据流(TDS)的SQLServer特定数据格式。TDS是SQLServer客户端和服务器之间使用的语言。对于它的确切格式将不作介绍,但是,如果客户端要与SQLServer进行

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。