我正在研究分析工具,数据量可能需要几分钟才能通过我们的网络传输.我想知道如果我们从同一个远程服务器上的压缩数据存储中提取数据,我是否应该期望性能提升.
只要我们谈论这个主题,我很好奇:数据是以二进制还是ASCII传输的?例如,如果从INT列查询值12345,它是作为五个字节0x31,0x32,0x33,0x34,0x35传输的;值所需的两个字节;或列所需的四个字节?
为了清楚起见,我理解有关于使用压缩存储数据和备份数据的选项.我在问数据是如何传输的.
解决方法
之前有人要求:
http://connect.microsoft.com/SQLServer/feedback/details/377479/wan-compression-option
这些物品仍然是开放的,所以也许有一些希望.没有办法通过我见过的连接字符串来控制它.
与此同时,有些产品声称这样做,例如:
http://www.nitrosphere.com/products/nitroaccelerator/
您还可以在sql Server和应用程序服务器之间配置网络以支持压缩(以及加密等其他操作),但是您的范围超出了我的范围,我不确定sql的每个功能是否都支持这种功能服务器.
说实话,我不相信这是你想要专注于优化的地方.压缩此流可能实际上减慢了速度并超过了发送更少字节的好处.我宁愿把钱花在服务器和客户端之间更好的网络连接上,而不是花时间投资这类工作并测试它是否有任何实际好处 – 而且直到之后才能做到这一点.从10/100到gig光纤对网络I / O具有已知且可预测的影响.
我不确定通过线路发送的字节的格式;你必须为此设置某种数据包嗅探器(或者某人已经这样做了,并且会插入).
至于压缩的影响,除非您使用的是Fusion-IO或其他高端SSD类型的解决方案,否则您几乎肯定会受到当前的I / O限制,而不受cpu限制.因此,只要您有cpu开销,就应该在启用压缩的情况下看到更快的性能(但这不会改变网络性能,因为数据在传输之前是未压缩的).我说对您的服务器,应用程序,数据或使用模式一无所知 – 您可能会遇到压缩实际会损害性能的边缘情况,或者数据不适合良好压缩比的情况.