Olá pessoal!
Durante o final de semana, li alguns posts referente a performance com o uso do SDK e WebApi, e acabei me deparando com seguinte resultado utilizando Xrm.WebApi (Client Api) nos formulários do Power Apps e Dynamics 365.
Vamos executar um Xrm.WebApi.retrieveRecord no formulário para trazer um registro de conta por exemplo:
Xrm.WebApi.retrieveRecord("account","D0A19CDD-88DF-E311-B8E5-6C3BE5A8B200") .then((data)=>{console.log(data);})
Vamos olhar o tempo que levou para executar a chamada do retrieveRecord:
Perceba que demorou 941ms para executar a operação. Nada mau né?
Agora vamos executar com retrieveMultipleRecords. beleza?
Xrm.WebApi.retrieveMultipleRecords("account","?$filter=accountid eq 'D0A19CDD-88DF-E311-B8E5-6C3BE5A8B200'") .then((data)=>{console.log(data);})
Realizou em 1.18s, piorou né? mas agora vamos ajustar essa retrieveMultipleRecords, colocando $top=1.
Xrm.WebApi.retrieveMultipleRecords("account","?$top=1&$filter=accountid eq 'D0A19CDD-88DF-E311-B8E5-6C3BE5A8B200'") .then((data)=>{console.log(data);})
Olhe só que interessante! Utilizando o parâmetro $top1 a busca do registro ficou em 249ms! Obtendo um performance 300% mais rápida comparando com o retrieveRecord, onde pesquisa e traz somente um registro mesmo.
Com essa pequena modificação podemos ter buscas de registros muito mais performáticas! Legal não?
Espero que tenham gostado dessa dica, e até o próximo post!