We use a 2Mb network to access ArcMap 10.2.2 to ArcSDE on SqlServer with direct connect.
In the simulation we set our office network to this bound rate. The performance was reasonable, about 3-4 second to open the onnection, same to load a layer.
Pan/zoom was slow but not too much.
We check the simulation bound rate with transferring files and it was really 2Mb.
Then we have a cellular network (with net stick). It gives us the SAME bound rate (transfer a file takes the same.
Open Studio management on the client that connects the database is a little slow but not too much.
Opening a connection to the database takes 40 seconds. Load a layer about 35-40 seconds too and pan/zoom is almost impossible.
It has the same bound rate and other clients (file transfer, studio) works the same as the simulation.
Anybody have an idea why?
There are others that can speak much more definitively on this topic, but what you are seeing is completely expected. What are the ping times to the server between your initial and cellular tests? I am guessing your initial tests are <1ms or possibly 5-10ms while your cellular tests are 150-250+ms. In layman's terms, SDE is a very chatty protocol, and it is very sensitive to network latency. Back in the application server days (not direct connect), there were a series of configuration options that could be set to mitigate the impacts of higher-latency networks. I never explored those configuration options with direct connects because we moved away from WAN access to SDE and to web services.
Enable ArcSDE SDEINTERCEPT and take a look at all of the SQL code/commands being issued when you connect from ArcMap to a geodatabase. ArcMap or ArcCatalog don't just "connect" to SQL Server, they issue a whole series of SQL when initial connections are made or when data is browsed in SDE. If you were to do a similar trace with SQL Server Management Studio, you would see different and much less traffic when first connecting. Management Studio and ArcMap/ArcCatalog are very different applications, I wouldn't set my expectations of one application's performance based on the other.