Chi usa le query CAML sa che è una buona condotta filtrare l'elenco dei campi da ritornare a fronte di una query, per migliorare le performance della query stessa.
Per applicare tale filtro, basta inserire all'interno della proprietà "ViewFields" della classe SPQuery, tanti elementi di tipo "FieldRef" per quanti campi vogliamo far ritornare alla nostra selezione. Quindi per esempio:

SPQuery query = new SPQuery();

query.ViewFields = "<FieldRef Name='Title'/><FieldRef Name='Created'/><FieldRef Name='ID'/>";

Scrivendo questi elementi direttamente però, è molto probabile incappare in errori di sintassi, soprattutto a fronte della specifica di tanti campi.

Ecco quindi un metodo che ci aiuta nella creazione dell'elenco dei campi da visualizzare nelle nostre query CAML:

public static string CreateViewFields(params string[] fieldNames)

{
StringBuilder sb = new StringBuilder();
foreach (string fieldName in fieldNames)
sb.AppendFormat("<FieldRef Name='{0}'/>", fieldName);

return sb.ToString();
}

da utilizzare in questo modo:

SPQuery query = new SPQuery();

query.ViewFields = CreateViewFields("ID", "Created", "Modified", "Title", "Author", "Editor");

Spero vi possa essere utile. Per me lo è stato.. :)