Wednesday, May 14, 2014

Potencializando consultas com SPQuery

Diversas vezes experienciei clientes reclamando do desempenho de seus sites em SharePoint. Criando uma imagem ruim desta excelente ferramenta. Diziam eles que as páginas demoravam muito a carregar, que as paginações de suas listagens de dados não eram boas, enfim... toda aquela insatisfação básica.

Quando eu investigava os recursos atrelados a uma página lenta, quase sempre haviam WebParts customizadas que eram responsáveis pelo mal desempenho. Na maioria dos casos eram retornados campos da listas desnecessários ou até mesmo todos os itens para serem então filtrados via LINQ e etc.

Exemplo de busca de itens que lê todos os dados com todos os itens:

Mas como todos sabem, podemos fazer uso do objeto SPQuery que nos permite desenvolver filtros em CAML e definir outros parâmetros para a consulta nos quais irei listar aqui e que provavelmente irão lhe ajudar:

RowLimit: define um limite de itens a serem retornados de uma consulta a uma lista.

ViewFields: define quais campos serão retornados em uma consulta. Mesmo que você tenha uma lista no qual possui 30 campos, você pode definir quais você deseja ler como no exemplo abaixo que irá retornar apenas o ID, o Título e a Data de Criação dos itens.

ListItemCollectionPosition: permite que você retorne itens a partir do ID de um item específico na lista. Ideal para paginações, pois você pode definir a partir de qual item o SharePoint deve retornar e quantos itens apresentar pelo RowLimit abordado anteriormente.


Obrigado pela atenção.

Referências:
Best Practices: Common Coding Issues When Using the SharePoint Object Model
SPQuery Members

1 comment:

  1. Realmente potencializa o desempenho da consulta!

    ReplyDelete

Obrigado pelo sua colaboração!