Я бы посоветовал, чтобы ваш код на стороне сервера возвращал JSON, а не XML, поскольку с iOS это проще работать.(и относительно прост в настройке на стороне сервера)
Также из приложения отправьте поле заголовка, содержащее дату, когда приложение последний раз запрашивало данные, и получите код на стороне сервера, чтобы возвращать только измененные данныес этой даты.Используйте столбец даты на SQL Server, чтобы хранить записи об обновленных строках.
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:requestURL]];
[request setValue:lastCallTime forHTTPHeaderField:@"If-Modified-Since"];
lastCallTime - это запись из NSDictionary, которая содержит Date из заголовка ответа ...
[response allHeaderFields][@"Date"]
Вот статья о том, как получить значение If-Modified-Since на сервере, http://madskristensen.net/post/use-if-modified-since-header-in-aspnet
, которое затем можно использовать в своих запросах
OneПоследнее, что нужно сделать, это также убедиться, что сервер возвращает сжатые данные, так как это поможет повысить производительность, и iOS распаковывает их по умолчанию при получении