Blue Canvas
Metadatos de SalesforceDatos de CPQPerfiles y permisos
Planes
Control de versionesRespaldo de metadatosComparación e implementación de sandboxesResolución de conflictos de fusiónResolución de dependencias de camposIntegraciones
Para administradores de SalesforcePara desarrolladores de ApexPara seguridad y cumplimientoPara grandes empresas
Operaciones académicasAgenda una demoBlogDocumentaciónHistorias de clientesDirectorio de agenciasHerramientasCertificación SOC 2
EN|ESContáctanosAccederComenzar
Salesforce DevOps

Optimizaciones para organizaciones de Salesforce con grandes volúmenes de datos (parte 3)

Parte 3 de nuestra serie de 4 partes sobre optimización de datos para organizaciones grandes de Salesforce.

Randalyn Hill-CofferPor Randalyn Hill-Coffer·Revisado por el equipo de Blue Canvas·4 de diciembre de 2024·8 min de lectura
En este artículo
  • Índices personalizados
  • Índices de dos columnas
  • Divisiones
  • Aplicaciones combinadas
  • Eliminación de datos
  • Informes
  • Carga de datos
  • Extracción de datos desde la API y búsquedas
  • Casos de estudio con grandes volúmenes de datos

Índices personalizados

Te damos la bienvenida a la parte 3 de nuestra serie sobre cómo optimizar organizaciones grandes de Salesforce (puedes consultar la parte 1 aquí y la parte 2 aquí). Hoy, continuamos con los casos de uso de campos con índices personalizados. Se pueden crear índices personalizados en campos de fórmula con valores estáticos que hagan referencia a otros campos de búsqueda o a funciones dinámicas de fecha y hora como TODAY. Los valores estáticos pueden ser campos de área de texto largo, campos binarios o listas de selección múltiple.

Ten en cuenta que, si modificas un campo de fórmula después de crear un índice personalizado para él, deberás comunicarte con el soporte de Salesforce para que lo vuelva a crear.

personas dibujando en una pizarra


Índices de dos columnas

Este tipo de índice es un ejemplo de índice compuesto, una función especializada de la plataforma. En las bases de datos tradicionales, las columnas usadas en los índices compuestos se concatenan, y esas claves concatenadas se almacenan en la base de datos. Cuando realizas una búsqueda, la concatenación de tus claves de búsqueda se compara con las del índice compuesto. Si el orden de tus claves de búsqueda no coincide con el orden de las columnas del índice compuesto, el índice no se puede usar.

Los índices compuestos en Salesforce son útiles para las vistas de lista y en situaciones en las que quieres usar un campo para seleccionar los registros que se mostrarán y otro para ordenarlos. Si sueles buscar estos dos campos juntos, puedes comunicarte con el soporte de Salesforce para que cree un índice de dos columnas y mejore el rendimiento. A continuación, encontrarás una consulta de ejemplo:

SELECT Name FROM Account WHERE f1__c = 'foo' AND f2__c = 'bar'

Por lo general, los índices de dos columnas tienen las mismas restricciones que los de una sola columna, excepto que permiten valores nulos en la segunda columna de forma predeterminada. Si quieres habilitar esto para un índice de una sola columna, debes comunicarte con el soporte de Salesforce.

Divisiones

Un método poco conocido para mejorar el rendimiento es habilitar las divisiones de Salesforce en tu organización. Divisiones existen desde hace tiempo y pueden ser útiles si quieres particionar tus datos. Para usar divisiones, tu organización debe tener más de 1 millón de registros en un solo objeto y más de 35 licencias.

Por ejemplo, podrías usar divisiones para crear filtros regionales llamados “US” y “EMEA”, o cualquier otra división que imagines. Estos grupos más pequeños tendrán un mejor rendimiento.

Algunos aspectos que debes considerar:

  • Los datos se pueden dividir en tres o más secciones lógicas que no comparten datos.
  • La mayoría de las divisiones tendrán un tamaño similar y ninguna será considerablemente más grande que las demás.
  • Una desventaja de usar divisiones es que no puedes desactivarlas después de habilitarlas.
  • Las cuentas y oportunidades compartidas no pueden pertenecer a más de una división.
  • No se recomienda si tienes usuarios que necesitarán acceder a datos de varias divisiones.
  • Los registros sin un registro principal se asignarán automáticamente a la división global predeterminada de la organización.
  • Las divisiones no se pueden usar para ocultar registros.

Si distribuyes menos de 5,000 registros en divisiones, los registros se transferirán de inmediato. Si distribuyes 5,000 registros o más, recibirás una notificación por correo electrónico cuando se completen las transferencias.

Aplicaciones combinadas

También puedes optar por alojar tus datos en otro lugar y mostrar una representación de ellos en Salesforce. Por ejemplo, al integrar Google Maps con Salesforce, puedes ver los datos en tu navegador. Otro ejemplo sería integrar estadísticas de ventas actuales almacenadas en un sistema ERP en la pantalla de una cuenta.

Puede haber integraciones con Google Adwords o LinkedIn en las que este método llame a servicios web o invoque una API de Salesforce para ejecutar un paso de un proceso de negocio. Sin embargo, la funcionalidad suele ser limitada, ya que no puedes generar informes sobre estos datos en tu organización. También puedes hacerlo a la inversa: usar Salesforce como cliente y exponer los datos en un sistema externo.

Eliminación de datos

¡Vacía tu papelera de reciclaje! Salesforce usa esta metáfora de la misma manera que una PC. Cuando eliminas datos, a menos que uses la opción de eliminación definitiva de la API masiva, Salesforce los marca como eliminados y los muestra en la papelera de reciclaje. Los registros que están en la papelera siguen afectando el rendimiento, y los datos eliminados permanecen allí durante 15 días o hasta que la papelera alcanza un tamaño específico. Luego, los datos se eliminan definitivamente al alcanzar el límite de tiempo o tamaño, o cuando se vacía la papelera mediante la API, la interfaz de usuario o Apex. Vaciar la papelera es una mejora fácil de implementar para muchas organizaciones.

Informes

Para los informes, puedes usar divisiones y particionar los datos. También puedes minimizar la cantidad de registros por objeto. Intenta usar un valor de filtro para segmentar tus consultas, por ejemplo, por país o estado. Reducir la cantidad de uniones y objetos consultados en un informe también mejorará el rendimiento. Puedes usar campos de resumen para sumar datos en el registro principal, en lugar de agruparlos por registro principal, y reducir así los tiempos de procesamiento. Puedes reducir la cantidad de campos consultados quitándolos de la selección, o mover los datos que no se usan a un objeto personalizado para que un informe frecuente consulte solo los registros relevantes. Intenta usar campos indexados en los informes tanto como sea posible y usa índices personalizados si los creas para campos compatibles.

Carga de datos

Intenta usar la API masiva cuando tengas más de unos cientos de miles de registros. Asegúrate de reducir al máximo los errores en tu conjunto de datos antes de cargarlos. Es importante saber que, si ocurre un error durante la carga, el procesamiento pasa a realizarse fila por fila y tarda mucho más. En la API, también intenta priorizar las operaciones más rápidas: insertar > actualizar > insertar o actualizar.

Intenta actualizar solo los campos que hayan cambiado cuando realices una operación DML mediante la API. La autenticación también importa, así que intenta autenticarte una sola vez por carga. Salesforce tiene un límite bajo para las llamadas de autenticación a la API, por lo que, después de unos miles de registros, recibirás un error por el límite de la API de inicio de sesión. Intenta usar una configuración de seguridad de lectura y escritura públicas para evitar los cálculos de acceso compartido. Cuando el sistema está configurado con lectura y escritura públicas, no evalúa las reglas de acceso compartido, incluso cuando la opción de otorgar acceso mediante jerarquías no está seleccionada.

Asigna los roles antes de definir las reglas de acceso compartido. Primero carga los usuarios en los roles > carga los datos de los registros con sus propietarios > configura los grupos públicos y las colas.

Desactiva los desencadenadores de Apex, las reglas de flujo de trabajo y las validaciones durante la carga de datos, y verifica si Apex por lotes procesa los registros como se espera. Ajusta el tamaño de carga de Apex por lotes si recibes errores de tiempo de espera.

Puedes usar la API masiva para procesar trabajos en modo serial o paralelo. Procesar los lotes en serie significa ejecutarlos uno tras otro, mientras que procesarlos en paralelo significa ejecutar varios al mismo tiempo. El modo serial es una alternativa que debes usar cuando existe una alta probabilidad de bloqueo de registros. Esto ocurre con mayor frecuencia al crear usuarios, actualizar roles de usuario, actualizar territorios o cambiar la propiedad de registros con un modelo de acceso compartido privado.

Al modificar registros secundarios, agrúpalos por registro principal usando parentId en el mismo lote para evitar conflictos de bloqueo. También puedes usar el cálculo diferido de acceso compartido y aplicaciones combinadas.

Supongamos que insertas registros AccountTeamMember y tienes referencias al mismo Account Id en varios lotes. Corres el riesgo de que se agote el tiempo de espera de bloqueo cuando estos lotes se procesen, por ejemplo, en paralelo, e intenten bloquear el registro Account. Para evitar estos conflictos de bloqueo, organiza tus datos por Account Id de modo que todos los registros AccountTeamMember que hagan referencia al mismo Account Id estén en el mismo lote.

Extracción de datos desde la API y búsquedas

Puedes usar el método getUpdated() de la API SOAP para sincronizar un sistema externo con Salesforce. También puedes usar la función de mensajes salientes para sincronizar con mayor frecuencia. Esto te permitirá obtener actualizaciones de datos más frecuentes y reducir el tiempo total de ejecución de todas las automatizaciones y consultas. Intenta reducir la cantidad de registros que devuelve cada consulta. Al igual que con el tamaño de los lotes, es fundamental evitar bloqueos en la base de datos y devolver pocos registros con frecuencia, en lugar de devolver un conjunto de datos enorme para procesar.

Intenta que las búsquedas sean lo más específicas posible; recuerda que los datos eliminados seguirán consultándose y afectarán el rendimiento. Las búsquedas en un solo objeto suelen ser más rápidas que las búsquedas en varios objetos. Usa funciones como las búsquedas mejoradas.

Para eliminar grandes cantidades de datos, recuerda eliminar primero los registros secundarios si vas a quitar datos jerárquicos. También debes usar la opción de eliminación definitiva de la API masiva si vas a eliminar más de 1 millón de registros.

Casos de estudio con grandes volúmenes de datos

Informes:

Supongamos que un cliente crea un informe con más de un objeto relacionado: cuentas, pedidos de venta, detalles de ventas (secundario de pedidos de venta) y propiedad de cuentas, con 350k, 750k, 2.300k, 1200k registros, respectivamente.

  • Para optimizar este informe, puedes agregar filtros adicionales que hagan la consulta más selectiva y asegurarte de que la mayoría de los campos filtrados se puedan indexar.
  • Reduce los datos de cada objeto; elimina los datos archivados o transfiérelos a otro objeto.
  • Mantén vacía la papelera de reciclaje, ya que también afecta a los informes.
  • Mantén al mínimo las reglas y la lógica de acceso compartido entre estos objetos.

Como segundo ejemplo, supongamos que un cliente necesita agregar métricas de intervalos regulares mediante tipos de informe estándar. Los detalles mensuales y anuales del cliente se almacenaban en objetos personalizados con 4 millones y 9 millones de registros, respectivamente. Los informes agregaban datos de millones de registros en dos objetos y el rendimiento no era óptimo.

  • Crea un objeto personalizado para almacenar los valores resumidos por intervalo de tiempo, agregados en el formato que requieren los informes. Así, los informes podrán ejecutarse desde el objeto personalizado con los datos agregados. Puedes realizar este procesamiento mediante Apex por lotes.

En la parte 4 de esta serie, continuaremos con casos de estudio sobre situaciones específicas para optimizar las búsquedas y el rendimiento de los informes, y sobre cómo aprovechar la API masiva mediante las particularidades y funciones de la plataforma.


Comentarios

Deja un comentario

Boletín
Consejos de DevOps para Salesforce en tu correo

Nuevas publicaciones, lanzamientos y guías prácticas. Sin spam; cancela tu suscripción cuando quieras.

ÍNDICE
  • Índices personalizados
  • Índices de dos columnas
  • Divisiones
  • Aplicaciones combinadas
  • Eliminación de datos
  • Informes
  • Carga de datos
  • Extracción de datos desde la API y búsquedas
  • Casos de estudio con grandes volúmenes de datos
También te puede interesar
Tendencias en Blue Canvas
Hablemos de tu configuración de Salesforce

Obtén una demostración específica o una cotización a tu medida

Agenda una consultaSolicita una cotización
Historias de clientes
Equipos reales, resultados reales
Sysco
Sysco
Dejó atrás Jenkins y redujo los despliegues de horas a minutos
Twilio
Twilio
Ahorró 2–3 días por sprint mientras ampliaba el equipo rápidamente
Catalyst Consulting
Catalyst Consulting
La ciudad de Chicago ahorra horas cada día con revisiones de código y despliegues estructurados
También podrían interesarte nuestras otras publicaciones...
Leer más
Salesforce DevOps
Kenji Sano | 6 de octubre de 2026
Las 8 mejores herramientas de implementación de Salesforce en 2026

Compara las 8 mejores herramientas y descubre cuál se adapta a tu equipo.

Read more
Salesforce DevOps
Kenji Sano | 6 de octubre de 2026
Las 9 mejores agencias de Salesforce en México en 2026

Comparamos 9 agencias y consultoras Salesforce en México por experiencia, especialización y capacidad. Además, qué preguntar sobre DevOps antes de contratar.

Leer más
Arquitectura y recursos
Randalyn Hill-Coffer | 5 de octubre de 2026
Las 19 principales herramientas de operaciones académicas para instituciones de educación superior que usan Salesforce en 2027

Compara 19 herramientas de operaciones académicas y áreas relacionadas para instituciones de educación superior que usan Salesforce en 2027. Descubre cuáles funcionan en Salesforce, cuáles se conectan a través de tu SIS y dónde podrías necesitar una integración.

Blue Canvas

DevOps de Salesforce para equipos. Control de versiones basado en Git, copias de seguridad de metadatos y despliegue continuo.

(786) 591-0702

Certificación SOC 2Socio de SalesforceSalesforce AppExchange

Despliegue en Salesforce

  • Herramientas de despliegue
  • Para metadatos de Salesforce
  • Para datos de CPQ

Producto

  • Funcionalidades
  • Seguridad
  • Historias de clientes
  • Precios

Recursos

  • Documentación
  • Blog
  • Operaciones académicas
  • Encuesta Anthropic x Salesforce
  • Socios
  • Integraciones
  • Gestión de lanzamientos

Empresa

  • Quiénes somos
  • Contáctanos
  • Empleo
  • X (Twitter)
  • LinkedIn
  • GitHub
Mantente al día
Novedades del producto

Recibe las últimas funcionalidades, lanzamientos y análisis técnicos detallados directamente en tu correo.

Seguridad y privacidad

·

Sin spam. Cancela tu suscripción cuando quieras.

© 2026 Blue Canvas. Todos los derechos reservados.

Política de privacidadTérminos de uso