NoLock: It indicates that no database locks are issued against the data that would prohibit other transactions from modifying the data in the records returned from the query.
Distinct: It indicates whether results of the query contains duplicate entity instances
Using these in FetchXML and QueryExpression improves performance for checking/fetching results
public static EntityCollection GetAccounts(IOrganizationService service, string accountName) { QueryExpression queryExp = new QueryExpression(); queryExp.EntityName = "account"; var cols = new ColumnSet(new[] { "name", "accountid" }); queryExp.ColumnSet = cols; ConditionExpression conExp = new ConditionExpression(); conExp.AttributeName = "name"; conExp.Operator = ConditionOperator.Like; conExp.Values.Add(accountName); FilterExpression filterExp = new FilterExpression(); filterExp.Conditions.Add(conExp); queryExp.Criteria = filterExp; queryExp.Distinct = false; queryExp.NoLock = true; var accounts = service.RetrieveMultiple(queryExp); return accounts; } public static EntityCollection GetAccounts(IOrganizationService service, string accountName) { string fetchXML = string.Format(@"<fetch version='1.0' output-format='xml-platform' mapping='logical' no-lock='true' distinct='false'> <entity name='account'> <attribute name='accountid' /> <attribute name='name' /> <filter type='and'> <condition attribute='name' operator='like' value='{0}' /> </filter> </entity> </fetch>", accountName); var fetchExp = new FetchExpression(fetchXML); var accounts = service.RetrieveMultiple(fetchExp); return accounts; }