您当前的位置:天府星空常见问题数据库 → 问题内容

Microsoft SQL Server 连接基础知识

作者:佚名  来源:MSDN  发布时间:2008-08-11 15:57:35
请求作为语言事件还是作为 RPC 提交给服务器呢?通常,这是因为 RPC 的功能更为出色,特别是在重复调用具有不同筛选值的同一查询时。尽管 SQL Server 可以自动将普通的语言事件请求参数化,但这种能力非常有限。它从不尝试自动将某些类型的查询参数化。这可能会导致基本相同的查询产生不同的执行,从而只因为这些不同的执行提供不同的值,而导致在服务器上白白浪费计划编译的成本。这通常不是您所希望的结果 - 您希望针对查询的第一次执行编译一个新的计划,然后将该计划重复用于具有不同参数的执行。

  而 RPC 则通过显式参数化查询(而不是依赖服务器参数化查询)来支持计划重复使用。为过程的第一次执行生成一个计划后,随后的执行将自动重复使用该计划,即使它们提供的参数值不同。与通过语言事件调用存储过程相比,使用 RPC 调用存储过程不仅节省了计划编译所需的执行时间和 CPU 资源,还增强了 SQL Server 内存资源的利用率,因为它避免了冗余执行计划所浪费的内存。

  在执行动态 T-SQL 时,通常首选 sp_executesql 而不是 EXEC() 也出于同样的原因。Sp_executesql 的工作方式是:使用指定的查询创建一个存储过程,然后使用提供的参数调用它。与 EXEC() 不同,sp_executesql 提供了一个允许您参数化动态 T-SQL 并支持计划重复使用的机制。使用 sp_executesql 执行的动态查询比使用 EXEC() 的查询能够在更大程度上避免不必要的编译和资源消耗。

  TDS

  从客户端发送到 SQL Server 的 RPC、语言事件和其他类型的请求被格式化为称作表格数据流 (TDS) 的 SQL Server 特定数据格式。TDS 是 SQL Server 客户端和服务器之间使用的“语言”。对于它的确切格式将不作介绍,但是,如果客户端要与 SQL Server 进行通信,就必须使用 TDS。  

  目前,SQL Server 支持三种版本的 TDS:TD

上一页  [1] [2] [3] [4] [5] [6] [7] [8]  下一页

  • 全国统一免费热线:800-82-98988
  • 业务咨询电话:028-66533110
  • 技术支持电话:028-66533120
  • 故障抢修电话:028-85568895
  • 投诉以及建设:028-66533130
  • 售后服务电话:028-66533140
  • 业务咨询:239270001成都网站建设咨询
  •  239270002成都网站建设咨询
  •  712291959成都网站建设咨询
  •  712291960成都网站建设咨询
  •  712291950成都网站建设咨询
  •  712291951成都网站建设咨询

MSN咨询:info@tfxk.com 技术支持:support@tfxk.com 中华人民共和国信产部备案号:蜀ICP备06017350号

Copyright:天府星空网络科技有限公司(Tfxk.Com)2003-2009

成都总部地址:成都市洗面桥街22号城市阳光大厦13-02.13-04.13-05室 邮编:610041

西昌分公司地址:西昌市文汇路一环路口 电话:0834-3203999 传真:0834-3202135 邮编:615000