Rodrigo Romano – MVP SharePoint Server

Registros de um Especialista SharePoint :)

Posts Tagged ‘Desenvolvimento; Design Patterns; Object Model;

Trabalhando com listas “grandes” – Parte 2

with one comment


Olá SharePointers,

Como eu havia prometido, estou continuando a série de posts sobre como trabalhar com listas grandes no SharePoint 2010. Para quem não acompanhou, pode ler o primeiro post da série Trabalhando com listas “grandes” – Parte I.

Agora, vou demonstrar algumas técnicas para lidar com essas listas grandes para não impactar performance e gerar uma boa experiência para os usuários.

#VamosLá

Colunas Indexadas

A primeira opção, é indexar colunas para facilitar que a informação seja encontrada com rapidez. Entretanto, precisamos considerar algumas informações:

  • Cada índice é um objeto que fica armazenado no banco, portanto, para toda operação feita um certo overhead para atualização do mesmo;
  • Por tanto, devemos criar índices somente para colunas que serão utilizadas para filtros.
  • Toda coluna que deve ter valor único, obrigatoriamente será indexada.
    Veja abaixo a tabela que mostra qual coluna pode ou não ser indexadas:
Tipos de Colunas suportados Tipos de colunas não suportados
Uma linha de texto Múltiplas linhas de texto
Opção (valor simples) Opção (multivalorados)
Número Calculado
Moeda Hyperlink ou Figura
Data e Hora Colunas Customizadas
Consulta (valor simples) Consulta (multivalorados)
Pessoa ou Grupo (valor simples) Pessoa ou Grupo (multivalorados)
Sim/Não Dados externos
Metadados gerenciados

Para saber como indexar uma coluna, veja aqui: http://office.microsoft.com/en-us/sharepoint-foundation-help/manage-lists-and-libraries-with-many-items-HA010377496.aspx#_Create_a_simple.

Criar Views com Filtros baseados em Colunas Indexadas

Para evitar o List View Threshold (5000 itens por default), devemos criar Views Filtradas que retornem uma quantidade menor do que esse limite.

Fique atento, pois a Primeira coluna do filtro deve atender esse requisito, caso contrário não fará efeito.

Uma outra dica bastante importante é utilizar o operador And (E). Ele ajuda a diminuir a quantidade de itens retornados, mas ainda assim a primeira coluna precisa retornar menos do que 5000 itens.

Organizar os itens utilizando pastas

Uma forma de organizar melhor os itens é utilizar pastas. No behind the scenes o SharePoint cria um índice interno para cada pasta criada.

Fiquem atentos aos itens abaixo:

  • Uma pasta pode conter mais itens do que a quantidade especificada na propriedade List View Threshold, entretanto, para evitar que o SharePoint bloqueie o acesso, você deve utilizar uma view filtrada baseada em colunas indexadas.
  • Se você escolher a opção Mostrar todos os itens sem pastas você deverá utilizar um filtro baseado em colunas indexadas para não atingir o limite de itens imposto na opção List View Threshold.
  • O SharePoint não tem uma maneira automática de mover itens de uma pasta para outra.

Controlar as informações exibidas na página

A quantidade de código-fonte HTML levada para o navegador renderizar interfere na velocidade de como a página é apresentada para os usuários. Evite exibir uma grande quantidade de dados.

Utilize a paginação e o agrupamento.

Além disso, utilize o DATASHEET VIEW. O Datasheet View é um controle ActiveX desenhado especificamente para carregar os dados mais rápido e fazer atualizações assíncronas para o servidor.

Utilizar o período de “janela de manutenção”

Os administradores do SharePoint podem especificar um tempo chamado de janela de manutenção. Durante esse período no dia, os limites especificados (por exemplo o List View Threshold) são desabilitados, permitindo ao usuário fazer as operações que demandam acessar maior quantidade de informação sem que o SharePoint bloqueie.

Nesse artigo demonstrei formas de se trabalhar com listas grandes sem envolver programaçao. Permitindo a utilização do próprio SharePoint fazer alterações que podem ter impactos significativos na performance do SharePoint.

Devemos ter sempre essa preocupação com arquitetura da solução proposta e da performance da mesma.

No próximo artigo, escreverei sobre como trabalhar com listas grandes programaticamente.

#FicaADica

Written by Rodrigo Romano

April 18, 2012 at 11:10 am