细心的朋友会发现,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的时候没有刻意地列出这个协议,本机登陆的时候仍然是用的这个协议