After some investigation we've figured out that the degradation is caused by competitive metrics.
Query: SELECT Device, AdNetworkType1, Date, Impressions, Clicks, Cost, ConvertedClicks, AveragePosition FROM ACCOUNT_PERFORMANCE_REPORT DURING 20001101, 20160106
5333 rows retrieved in 4.56 seconds (3.539 seconds spent on the google api call).
Query: SELECT Device, AdNetworkType1, Date, Impressions, Clicks, Cost, ConvertedClicks, AveragePosition, SearchImpressionShare FROM ACCOUNT_PERFORMANCE_REPORT DURING 20001101, 20160106
5439 rows retrieved in 36.01 seconds (34.729 seconds spent on the google api call).
Query: SELECT Device, AdNetworkType1, Date, Impressions, Clicks, Cost, ConvertedClicks, AveragePosition, SearchImpressionShare, ContentImpressionShare FROM ACCOUNT_PERFORMANCE_REPORT DURING 20001101, 20160106
5439 rows retrieved in 51.798 seconds (50.568 seconds spent on the google api call).
Note that the last two queries return more rows, this is because querying these fields causes the report to include zero impressions. Adding Impressions>0 condition reduces the number of rows, but doesn't improve the performance.
Are there any known performance issues with these metrics? If so - are you going to fix it?
Thanks.