Share Memory协议是怎么回事

细心的朋友会发现,SQL Server 2005所支持的网络库协议中多了一个Share Memory协议,那么它是用在什么场合的呢?下面是官方文档的一些介绍:


从运行在同一台计算机上的客户端到 Microsoft SQL Server 的连接使用共享内存协议。共享内存没有可配置的属性。始终会先尝试使用共享内存,无法将其从“客户端协议属性”列表中“启用的协议”列表的顶部位置移开。可以禁用共享内存协议,在排除其他某个协议的故障时,这样做很有用。

不能使用共享内存协议来创建别名,但是如果启用了共享内存,然后通过名称连接到数据库引擎,就可以创建共享内存连接。共享内存连接字符串的格式为 lpc:<servername>[\instancename]

Shared Memory 是可供使用的最简单协议,没有可配置的设置。由于使用 Shared Memory 协议的客户端仅可以连接到同一台计算机上运行的 SQL Server 实例,因此它对于大多数数据库活动而言是没用的。如果怀疑其他协议配置有误,请使用 Shared Memory 协议进行故障排除。

使用 MDAC 2.8 或早期版本的客户端不能使用 Shared Memory 协议。如果尝试使用,将自动切换为 Named Pipes 协议。

要想知道当前连接用的是什么协议,在SQL Server 2005中可以用这个语句

SELECT net_transport
FROM sys.dm_exec_connections
WHERE session_id = @@SPID;

实际上,虽然SQL Server 2000的时候没有刻意地列出这个协议,本机登陆的时候仍然是用的这个协议

posted @ 2008-07-29 16:13  陈希章  阅读(3524)  评论(0编辑  收藏  举报