SharePoint 2010: ¿Por qué puede ser importante indexar las columnas de una lista?

Cuando trabajamos con listas de SharePoint, tenemos la posibilidad de indexar sus columnas como mecanismo para mejorar el rendimiento en el uso de las listas. El concepto de indexación de listas de SharePoint es similar al de indexar columnas en una tabla de base de datos, con la diferencia de qué es SharePoint quien se encarga de realizar el mantenimiento de los índices y no el SQL Server subyacente. Esta indexación puede ser necesarias en situaciones como las siguientes:

  • Estamos utilizando la características de unicidad de columnas de SharePoint 2010, de manera que cada vez que queremos configurar una columna para que tenga valores único será necesario realizar su indexación.
  • Tenemos una columna de tipo lookup en nuestra lista y configuramos el comportamiento referencial de la misma para habilitar la estrategia de borrado (en cascada o no), por lo que será necesario de nuevo indexar esta columna.
  • Optamos por indexar todas o parte de las columnas de la lista.

Por ejemplo, a nivel de lista:

  • A través de la página de configuración de la lista podemos acceder a los índices disponibles actualmente para la lista haciendo clic sobre el enlace “Columnas indizadas”.
  • En la página que se muestra podemos ver los índices disponibles y editarlos.
  • Podremos crear nuevos índices en base a otras columnas de la lista y teniendo en cuenta que no todos los tipos de columna se pueden indizar.
image image image
  image  

Pero, ¿Por qué puede ser importante indexar columnas en una lista de SharePoint? Pues por cuestiones de rendimiento, ya que la indexación de columnas mejora el rendimiento en el caso de consultas que usen la(s) columna(s) indexadas, se realicen joins, operaciones de ordenado, etc. Por ejemplo, si tenemos una lista que contiene unos 20.000 elementos y queremos consultar los primeros 500 elementos de la misma ordenados por la columna Title, que no está indexada, nos encontraremos que SharePoint se recorre los 20.000 elementos de la lista para poder ordenarlos por Title y luego nos devuelve esos 500 primeros elementos, de manera que nos encontraríamos ante una consulta pesada. Si indexamos la columna Title, la consulta es mucho más ligera ya que accedemos de ofrma directa a los 500 primeros elementos ordenados por Title sin necesidad de buscar en el conjunto total de elementos de la lista. Por supuesto, el uso de índices hay que realizarlo con cuidado y no usarlos por sistemas ya que penalizan el rendimiento en operaciones de tipo CRUD y necesitan de almacenamiento. ¿Cuántos índices puedo tener por lista? Un máximo de 20.

Publicado por

Juan Carlos González

Juan Carlos es Ingeniero de Telecomunicaciones por la Universidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC). Cuenta con más de 12 años de experiencia en tecnologías y plataformas de Microsoft diversas (SQL Server, Visual Studio, .NET Framework, etc.), aunque su trabajo diario gira en torno a SharePoint & Office 365. Juan Carlos es MVP de Office Servers & Services desde 2015 (anteriormente fue reconocido por Microsoft como MVP de Office 365 y MVP de SharePoint Server desde 2008 hasta 2015), coordinador del grupo de usuarios .NET de Cantabria (Nuberos.Net, www.nuberos.es), co-fundador y coordinador del Grupo de Usuarios de SharePoint de España (SUGES, www.suges.es), así como co-director de la revista gratuita en castellano sobre SharePoint CompartiMOSS (www.compartimoss.com). Hasta la fecha, ha publicado 8 libros sobre SharePoint & Office 365 y varios artículos en castellano y en inglés sobre ambas plataformas.

Un comentario en “SharePoint 2010: ¿Por qué puede ser importante indexar las columnas de una lista?”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *