Microsoft SQL Server 查询处理器的内部机制与结构
2006-08-05 09:14:50 来源:WEB开发网还有一些供所有提供程序使用的公共库代码。例如,BCP 设备就是 ODBC 和 OLE-DB 都可以调用的库。DTC 也是这样。第三个例子是 ODBC 规范的 SQL 语法,即带有参数标记的 CALL 语法,这些对于所有提供程序都是通用的。
除了我们在前面已经提到的局限性,即 DB-Library 仍然只能使用 SQL Server 6.5 版,TDS 协议对于所有 API 都是相同的。ODBC 和 OLE-DB 在与 SQL Server 7.0 通信时使用 SQL Server 7.0 版,但也能够与 6.5 或 6.0 服务器通信。另一个是 Net-Library,这是一个抽象层,客户机和服务器都在此层上同网络抽象接口通信,不必为 IPX 还是 TCP/IP 困扰。在这里我们将不讨论 Net-Library 的工作细节;只要知道它们的工作基本上是将来自的网络通信底层的细节隐藏起来不让软件的其他部分看到就可以了。
从客户机的角度看服务器
前面已经提到过,客户机与 SQL Server 通信的主要方法就是通过使用 TDS 消息。TDS 是一种简单协议。当 SQL Server 接收到一条消息时,可以认为是发生了一个事件。首先,客户机在一个连接上发送登录消息(或事件),并得到返回的成功或失败的响应。当您希望发送 SQL 语句时,客户机可以把 SQL 语言消息打包发送给 SQL Server。另外,当您希望调用存储过程、系统过程或虚拟系统存储过程(我们后面还要详细讨论)时,客户机可以发送 RPC 消息,这种消息相当于 SQL Server 上的一个 RPC 事件。对于上面的后两种情况,服务器会以数据令牌流的形式送回结果。Microsoft 没有把实际的 TDS 消息写入文档中,因为这被认为是 SQL Server 组件之间的私用契约。
目录存储过程是另一类关键的客户机/服务器的交互部分。这些存储过程首先在 ODBC 的 SQL Server 6.0 中出现, 包括诸如 sp_tables 和 sp_columns 等存储过程。ODBC 和 OLE-DB API 定义了描述有关数据库对象的元数据的标准方法,这些标准需要适用于所有类型的 RDBMS 服务器,而不必调整为 SQL Server 自己的系统表。不是客户机向服务器发送对系统表的多个查询,并在客户机端建立标准的元数据视图,而是创建一组存储在服务器上的系统存储过程,并对 API 返回适当格式的信息。这种方法使得通过一次通信就可以完成很多重要的元数据请求。
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››SQL Server 中的事务(含义,属性,管理)
- ››Sqlite数据库插入和读取图片数据
- ››Sql server 2005拒绝了对对象 'xx表' (数...
- ››Sql server 2005拒绝了对对象 'xx表' (数...
赞助商链接