Sql server 在同一台计算机上运行的sql server express 2008 r2客户端和服务器的最佳协议是什么

Sql server 在同一台计算机上运行的sql server express 2008 r2客户端和服务器的最佳协议是什么,sql-server,sql-server-2005,tsql,sql-server-2008,sql-server-2000,Sql Server,Sql Server 2005,Tsql,Sql Server 2008,Sql Server 2000,我们使用sql express 2008 r2进行简单的报告和数据存储。数据的写入速度通常为每分钟600到3000条记录。(一个客户端一个连接到同一台机器)。我们需要最佳执行协议。(性能好,不占用内存。)我在网上读过一些文章,在决定tcp/ip、共享mem和命名管道时,这些文章非常混乱。总结msdn文档 1) 共享内存没有可配置的属性。共享内存始终首先尝试,并且不能从“客户端协议属性”列表中“已启用协议”列表的顶部位置移动这是否意味着共享mem是首选且最快的? 2) 对于TCP/IP套接字,数据

我们使用sql express 2008 r2进行简单的报告和数据存储。数据的写入速度通常为每分钟600到3000条记录。(一个客户端一个连接到同一台机器)。我们需要最佳执行协议。(性能好,不占用内存。)我在网上读过一些文章,在决定tcp/ip、共享mem和命名管道时,这些文章非常混乱。总结msdn文档

1) 共享内存没有可配置的属性。共享内存始终首先尝试,并且不能从“客户端协议属性”列表中“已启用协议”列表的顶部位置移动
这是否意味着共享mem是首选且最快的?

2) 对于TCP/IP套接字,数据传输更加精简,开销更小。数据传输还可以利用TCP/IP套接字性能增强机制,如窗口、延迟确认等。好啊但是
比共享mem快吗?

3) 如果服务器应用程序在运行Microsoft®SQL server实例的计算机上本地运行™ , 本地命名管道协议是一个选项<代码>本地命名管道以内核模式运行,速度非常快。当我读到这篇文章时,我再也无法忍受这种困惑,决定将我的问题发布到堆栈上


所以sql大师请帮我决定。谢谢你

如果你的回答中的以下引用是正确的,那么你的问题已经包含了答案:

共享内存始终首先尝试,并且不能从“客户端协议属性”列表中“已启用协议”列表的顶部位置移动

假设您的客户机和数据库在同一台机器上运行,这意味着共享内存将始终工作(没有严格的措施)。选择使用哪种协议无关紧要—共享内存是最终将被使用的协议!:-)

性能的价值完全取决于SQL Server中使用的实现(我是基于我对通信方法的了解,而不是对SQL Server的熟悉),但顺序(就性能而言)几乎肯定是这样的(最快优先):

  • 共享内存(SQL Server总是在可能的情况下使用共享内存作为备份)
  • 命名管道
  • TCP/IP

我找不到任何证据表明共享内存实际上比命名管道快,但我认为这并不重要-客户端和本地机器上的数据库之间的通信无论如何都会非常高效,我怀疑您是否能够注意到任何性能差异。

共享内存是最快的协议,但是,如果您的目标是“性能”,那么您用来访问数据库的框架以及如何传输数据,您编写的sql查询(或使用另一种方法)都将对性能产生更大的影响

如果您打算尝试使用ADO/ADO.NET或其他类似的重型协议,大多数性能将在此处丢失。如果您的性能达到极限,则需要调查并学习如何在较低级别上与数据库引擎通信


请参阅作为开始。

是。但是如果命名管道更快,内存开销更少,我可以禁用共享内存(在配置管理器中右键单击Disable)。@Gullu啊,我还没有想到你可以关闭它,但是是的,我希望共享内存最快,尽管我找不到引用。