Enable Network Compression (compress TDS stream) - by RonOrtloff

Status : 


Sign in
to vote
ID 412131 Comments
Status Active Workarounds
Type Suggestion Repros 5
Opened 2/6/2009 1:53:07 PM
Access Restriction Public


When transferring data between SQL instances on different servers, network sometimes becomes a bottleneck.  If the size of the payload can be compressed prior to transmit perf may increase (given adequate resources to process the compression).

Consider adding the ability to compress the TDS stream for future a SQL Server release.
Sign in to post a comment.
Posted by Krishna.GandhiMohan on 10/26/2017 at 12:54 PM
Still waiting I guess..?
Posted by blackrosesolutions on 11/15/2016 at 4:31 AM
I'm amazed given this seemed to be under investigation in 2009 that this is stil being requested in 2016. TDS is a very bloated stream and would benefit hugely from compression in the Native Client driver.
Posted by mjakirlic on 6/16/2016 at 4:34 PM
A necessity for the ever growing wan world. No more local servers guys. We live in an internet world.
Posted by BeeeJay on 6/7/2016 at 5:14 AM
And please consider to compress the upstream (queries/commands/insertion-values) from the client to the server, too! E.g. a VPN tunnel via ADSL/Cable typically has a significantly lower upstream bandwidth (affecting data transmission to the server like queries/insertion-values etc.) than downstream (records retrieved).
Posted by Marco Russo - SQLBI on 3/25/2014 at 8:06 AM
This would be much more important now that we have Windows Azure and hybrid scenarios (i.e. SharePoint running on IaaS and databases running on-prem, with PowerPivot refreshing data reading from an on-prem SQL Server instance).
Posted by Miron contrib on 10/2/2013 at 3:35 AM
It's an interesting option.

Microsoft, please do update.
Posted by Joel Mansford on 7/12/2011 at 3:48 AM
Adding this to the SQL Native Client would greatly benefit one of my client's environments where they are utilising lots of SQL based datasets within an MS Excel based reporting.

Also @Zlatko I cannot see any reference to TCP compression in the article at http://msdn.microsoft.com/en-us/library/dd263442.aspx
Posted by MatthewAdams on 9/21/2010 at 1:11 PM
We also would like to see this. Accessing a remote db, such as one across a WAN or in a cloud (like SQL Azure) could benefit greatly from built-in TDS packet compression. SQLNitro is showing up to 90% better performance in my application with compression enabled (as long as encryption and mutliple active result sets are off). If communication where compressed after encryption, then the encrypt setting would not be a problem. As for multiple active result sets, I'm filing a separate issue for that, as it seems that causes much worse performance over a WAN connection, even with a single query and single result set.
Posted by wdurkin on 9/8/2009 at 8:34 AM
We typically see this when we want to move large amounts of data between SQL Servers over a WAN connection.

The best way to fix this would be to offer TDS compression within the SQL Server Client and Server (maybe as an Enterprise Edition feature), where the server can be set to send using compressed TDS to any client with this turned on (default), otherwise don't compress.

When you want to setup Replication you create the initial snapshot and bcp the data between the servers, bcp uses TDS and would benefit enormously through the compression.

I saw a tool to do this, SQLNitro, but would prefer the functionality to be baked into the product from MS.
Posted by Microsoft on 2/20/2009 at 10:20 AM
Dear Customer,

Thank you for helping us improve our products!
The issue of TDS compression has come up already, and we are considering possibilities. As you mention, it is not a something that would provide a benefit in all scenarios. We need to spend some time justifying the need for it and thinking about a safe way to enable without negatively impacting existing use cases. We’ll keep the issue open until make a final a decision, and we’ll keep you updated of the progress.

Meanwhile, please take a look at this link that explains how Windows Server 2008 does TCP compression for SQL Server 2008, which might be sufficient for your scenario - http://msdn.microsoft.com/en-us/library/dd263442.aspx.

Thanks again,
Zlatko Michailov
Program Manager, SQL Protocols