这可能是一个非常愚蠢的问题,但是......
这TDS 协议sql server 使用的似乎使用 unicode 或 UTF-16 字符编码。类似查询select foo from bar
出现
s.e.l.e.c.t. .f.o.o. .f.r.o.m. .b.a.r
在 wireshark 中的 tcp 流中。
如果您有一个通过网络连接到 SQL 服务器的应用程序,该应用程序绝对不会并且可能永远不会使用 unicode 文本字段,那么有没有办法告诉 SQL 客户端使用 ascii 对查询进行编码以减少网络流量?
答案1
这表格数据流 (TDS) 协议文档明确指出协议中的 SQL 语句将以 Unicode 编码(第 2.2 节)。除非您在带宽受限的网络上运行,否则担心这一点可能只是小菜一碟。(如果您的带宽受限到这个问题的地步,您可能需要考虑通过压缩来传输流量。)
答案2
我刚刚发现这似乎对 SQL Server TDS 流量进行了某种压缩:
http://www.nitrosphere.net/store/nitroaccelerator
我的初步测试表明它效果很好,但价格相当昂贵。