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 2)

Optimiza el rendimiento de tu organización de Salesforce con consultas eficientes, índices y selectividad. Parte 2 de nuestra serie de 4 partes sobre la gestión de grandes volúmenes de datos.

Randalyn Hill-CofferPor Randalyn Hill-Coffer·Revisado por el equipo de Blue Canvas·4 de diciembre de 2024·10 min de lectura

En este artículo, profundizaremos en los detalles de cómo escribir consultas eficaces en Salesforce utilizando el lenguaje de consulta de objetos de Salesforce (SOQL) y el lenguaje de búsqueda de objetos de Salesforce (SOSL). Al examinar casos de uso específicos, ventajas, desventajas y consejos prácticos, aprenderás a usar estos dos lenguajes de consulta de Salesforce y comprenderás la importancia de los índices, la selectividad y la función de características como las tablas reducidas y el cálculo diferido del acceso compartido.

Estas son nuestras 5 conclusiones clave:

  • SOQL vs. SOSL: SOQL es óptimo cuando conoces los objetos y los campos, mientras que SOSL es ideal para búsquedas amplias basadas en texto.
  • Indexación en SOQL: La indexación en SOQL es limitada; no todos los campos pueden indexarse, pero admite claves primarias, campos personalizados, campos de auditoría del sistema y claves externas.
  • Función de cálculo diferido del acceso compartido: Esta función puede ayudarte a gestionar las reglas de acceso compartido durante cambios importantes de configuración en tu organización.
  • Tablas reducidas: Las tablas reducidas disminuyen los tiempos de procesamiento de los campos consultados con frecuencia, aunque requieren actualizaciones manuales cuando se realizan cambios.
  • Uso de la selectividad y los índices: Haz que tus consultas sean selectivas y específicas para mejorar el rendimiento, y considera crear índices personalizados con la ayuda de Salesforce para obtener resultados óptimos.
En este artículo
  • Cómo escribir mejores consultas en Salesforce
  • Cálculo diferido del acceso compartido de Salesforce
  • Tablas reducidas de Salesforce
  • Selectividad de consultas e índices
  • Índice personalizado de Salesforce: explicación
  • Umbrales de índices
  • Mejora del rendimiento de Salesforce para grandes volúmenes de datos
  • Preguntas frecuentes

Esta es la Parte II de una serie de cuatro partes sobre técnicas de optimización para organizaciones de Salesforce con grandes volúmenes de datos. Puedes encontrar la Parte I de la serie aquí. 

Cómo escribir mejores consultas en Salesforce

Ya sea que uses SOQL o SOSL, si filtras un conjunto de registros, es fundamental realizar consultas selectivas. Para decidir qué lenguaje de consulta usar en Salesforce, el enfoque general es que, si sabes qué objeto y qué campos buscas, puedes usar SOQL. Tanto SOQL como SOSL tienen distintos casos de uso, con ventajas y desventajas según el escenario.

Los índices de SOQL son principalmente claves primarias, pero también pueden ser campos personalizados (con valores únicos) o campos de auditoría del sistema (CreatedDate). También pueden ser claves externas (campos de relación maestro-detalle). Por ejemplo, no puedes indexar campos de lista de selección múltiple, campos de moneda (si está habilitada la opción de múltiples monedas), campos de texto largo ni campos binarios. Además, puedes ejecutar consultas para ver el conteo de objetos secundarios en SOQL. ¡Muy útil!

El lenguaje de búsqueda de objetos de Salesforce (SOSL) es menos conocido entre los desarrolladores y se utiliza para crear consultas de búsqueda basadas en texto sobre el índice de búsqueda. El motor de búsqueda busca coincidencias en un máximo de 2,000 registros. Con una sola consulta, puedes buscar en campos de texto, correo electrónico y teléfono de varios objetos a los que tengas acceso, incluidos los objetos personalizados, mediante llamadas SOAP/REST, controladores y métodos de Apex y Visualforce, y más.

SOSL también te permite buscar en campos de texto, correo electrónico y teléfono al mismo tiempo, lo que lo hace más eficiente al gestionar consultas de grandes volúmenes de datos. Esto es especialmente útil si no sabes qué objetos contienen los valores que buscas. Antes pensaba que SOSL siempre tenía límites de ejecución más altos que SOQL, pero no es así. Si necesitas obtener más de 2,000 registros, debes usar SOQL, cuyo límite de registros por transacción en Apex es de 50,000.

Aquí tienes algunos consejos adicionales:

  • SOSL puede dividir en tokens varios términos dentro de un campo (por ejemplo, varias palabras separadas por espacios).
  • Limita el alcance a objetos específicos, filas que pertenecen al usuario y filas dentro de una división (cuando corresponda).
  • Los campos de nombre, teléfono, texto y lista de selección están indexados y son adecuados para SOSL.
  • En SOSL, las búsquedas en el feed de Chatter no se ven afectadas por el alcance de tu búsqueda, y sus resultados incluyen coincidencias en todos los objetos.

Para evitar errores de tiempo de espera en las consultas SOQL, intenta reducir el alcance de la consulta y usar filtros selectivos. Considera usar la Bulk API y agregar una cláusula LIMIT (empezando con 100,000 registros) a tus consultas. Si usas Apex por lotes para tus consultas, usa el encadenamiento para obtener conjuntos de registros (con LIMIT) o considera mover la lógica de filtrado al método execute.

Optimizador de consultas de Force.com
Fuente:http://resources.docs.salesforce.com/194/0/en-us/sfdc/pdf/salesforce_query_search_optimization_developer_cheatsheet.pdf

Cálculo diferido del acceso compartido de Salesforce

En algunas circunstancias, puede ser conveniente usar una función llamada Cálculo diferido de acceso compartido, que permite a los usuarios diferir el procesamiento de las reglas de acceso compartido cuando se agregan o actualizan usuarios y cambia la jerarquía de roles de la organización.

El administrador de una organización puede usar el permiso de cálculo diferido de acceso compartido para suspender y reanudar los cálculos de acceso compartido, y para gestionar dos procesos: el cálculo de pertenencia a grupos y el cálculo de reglas de acceso compartido. El administrador puede suspender estos cálculos al realizar una gran cantidad de cambios de configuración que podrían generar evaluaciones muy largas de las reglas de acceso compartido o tiempos de espera agotados, y reanudarlos durante un periodo de mantenimiento de la organización. Esta postergación puede ayudar a los usuarios a procesar rápidamente una gran cantidad de cambios de configuración relacionados con el acceso compartido durante el horario laboral y dejar que el proceso de recálculo se ejecute por la noche entre días hábiles o durante un fin de semana.

Tablas reducidas de Salesforce

Las tablas reducidas se pueden crear en objetos personalizados y en los objetos Account, Contact, Opportunity, Lead y Case. Aunque pueden mejorar el rendimiento, tienen un límite de 100 objetos y no pueden contener campos de otros objetos. De forma predeterminada, solo se pueden usar en sandboxes de copia completa. Para usar tablas reducidas, debes contactar al soporte al cliente de Salesforce.

Salesforce mantiene tablas separadas a nivel de base de datos para los campos estándar y personalizados. Normalmente, se requiere una unión de base de datos al consultar estos campos. Puedes crear tablas reducidas para los campos consultados con frecuencia y disminuir los tiempos de procesamiento. Sin embargo, esto solo se aplica a ciertas operaciones de solo lectura. Si cambias la consulta que se ejecuta y agregas nuevas tablas, el soporte al cliente de Salesforce también debe actualizar manualmente las definiciones de tus tablas reducidas. Salesforce también sincroniza continuamente las tablas reducidas y las tablas de origen para evitar uniones de base de datos y disminuir los tiempos de procesamiento. Las tablas reducidas son especialmente útiles para los reportes, ya que estos son operaciones de solo lectura, y obtendrás resultados mucho mejores si tienes más de un millón de registros. Las tablas reducidas también se pueden usar con datos cifrados.

Selectividad de consultas e índices

Un primer paso sencillo es aprovechar los índices estándar de la plataforma haciendo que nuestras consultas sean lo más selectivas y específicas posible.

Considera una consulta sencilla con una cláusula WHERE como la siguiente:

SELECT Id, Name FROM Opportunity WHERE Stagename = 'Closed Won'

Un desarrollador o administrador con experiencia puede obtener la información necesaria sobre el conjunto de datos con el que trabajará. Esto puede ser más eficaz que los reportes, especialmente cuando hay grandes volúmenes de datos. Por ejemplo, si necesitas ver la cantidad de oportunidades agrupadas por el nombre de su etapa, puedes usar GROUP BY ROLLUP para obtener la información necesaria. También devolverá la cantidad total de registros en la fila con valor nulo.

SELECT Stagename, COUNT(id) FROM Opportunity GROUP BY ROLLUP (Stagename)
Consulta de Salesforce: GROUP BY ROLLUP

También puedes usar condiciones de filtro más complejas. Para los filtros que combinan dos o más condiciones (mediante AND), el optimizador de consultas considera que el filtro general es selectivo cuando ambas condiciones de filtro abarcan menos de 150,000 registros.

Si una de las condiciones devuelve más de 250,000 registros, el filtro general puede hacerse selectivo si ambas condiciones se superponen y devuelven menos de 150,000 registros, siempre que cada condición de filtro corresponda a menos de 300,000 registros. Para las condiciones OR, cada filtro debe cumplir los umbrales individualmente. (Más adelante hablaremos en detalle sobre los umbrales de índices).

Para usar búsquedas indexadas en consultas SOQL con varios filtros, intenta dividir la consulta en tantas partes como filtros tenga y unir los resultados por separado.

Condiciones y umbrales de selectividad de índices de Salesforce
Fuente:http://resources.docs.salesforce.com/194/0/en-us/sfdc/pdf/salesforce_query_search_optimization_developer_cheatsheet.pdf

Además de respetar el límite de ejecución de 50,000 registros devueltos en una transacción, debes prestar atención a los registros eliminados de tu organización. También pueden afectar el rendimiento de tus consultas. Puedes usar el indicador isDeleted para filtrar estos reportes, ya que este campo está disponible en todos los objetos estándar y personalizados, o vaciar la papelera de reciclaje con frecuencia. Además, si usas Workbench, selecciona Excluir en la lista de opciones de registros eliminados y archivados disponible.

Índice personalizado de Salesforce: explicación

También podemos aprovechar los índices estándar que operan sobre los campos del sistema. Si tu condición de filtro incluye un campo personalizado, trabaja con el soporte al cliente de Salesforce para crear un índice personalizado en el campo que usa tu filtro. No todos los campos admiten índices; por ejemplo, los campos de fórmula no deterministas.

Índice SOQL: campos
Fuente:http://resources.docs.salesforce.com/194/0/en-us/sfdc/pdf/salesforce_query_search_optimization_developer_cheatsheet.pdf

Salesforce admite índices personalizados en campos personalizados, excepto en listas de selección múltiple, algunas áreas de texto, campos de fórmula no deterministas y campos de texto cifrado. Los identificadores externos se pueden indexar; sin embargo, solo los campos de numeración automática, correo electrónico, número y texto se pueden configurar como identificadores externos.

El objetivo de usar índices es permitir que los motores de búsqueda eviten los escaneos de tablas, en los que el motor busca en todos los registros de la organización correspondientes al objeto consultado. Los índices pueden basarse en el acceso compartido, en optimizaciones internas estándar de Salesforce o en índices personalizados creados en campos personalizados. También debes evitar usar comodín También debes considerar evitar los valores NULL y las consultas de campos de fórmula, ya que estos campos se calculan durante la ejecución y los valores NULL provocan un escaneo completo de la tabla. Aquí tienes un ejemplo:

String stage = NULL;
List<Opportunity> = [SELECT Name FROM Opportunity WHERE Stagename=: stage];

Para diagnosticar problemas con tus consultas, también puedes usar la Herramienta de planes de consulta. Ofrece información basada en distintos planes de consulta, indica qué filtros se deben indexar y muestra el costo de usar estas técnicas en comparación con un escaneo completo de la tabla. Aquí tienes una descripción general de la selectividad de índices:

Excepciones de selectividad de índices SOQL
Fuente:http://resources.docs.salesforce.com/194/0/en-us/sfdc/pdf/salesforce_query_search_optimization_developer_cheatsheet.pdf

‍

Umbrales de índices

Considera esta consulta:

SELECT * FROM Account WHERE Account_Type__c = 'Large'

La plataforma usa un optimizador de consultas para mantener estadísticas de las búsquedas realizadas e intenta determinar si debe usar índices estándar o los índices personalizados creados. Para la consulta anterior, si la cantidad de registros que cumplen estos criterios es inferior al umbral del índice personalizado, usará un índice estándar en lugar de uno personalizado. El umbral es el 10% del total de registros del objeto o si la cantidad de registros supera los 333,333.

¡En la siguiente publicación continuaremos con un análisis detallado de los índices personalizados y consejos para mejorar el rendimiento en Salesforce según cada caso!

Mejora del rendimiento de Salesforce para grandes volúmenes de datos

Optimizar el rendimiento de una organización de Salesforce con grandes volúmenes de datos es fundamental para lograr operaciones eficientes y una buena experiencia de usuario. En este artículo, exploramos los detalles de cómo escribir consultas eficaces con SOQL y SOSL, además de comprender la importancia de los índices, la selectividad y funciones como las tablas reducidas y el cálculo diferido de acceso compartido. Al aprovechar la selectividad de consultas, usar índices y tener en cuenta los registros eliminados, puedes mejorar el rendimiento de las consultas y minimizar los tiempos de procesamiento.

Para profundizar en las técnicas avanzadas de optimización y obtener una visión integral, no te pierdas la parte 3 de nuestra serie. En ese artículo, profundizaremos en los índices personalizados y ofreceremos consejos según cada caso para mejorar aún más el rendimiento en Salesforce. ¡No te pierdas la oportunidad de aprovechar todo el potencial de tu organización de Salesforce!

‍


Preguntas frecuentes

P: ¿Cuál es el propósito de la parte 2 de la serie de cuatro partes sobre la optimización de organizaciones de Salesforce con un gran volumen de datos?

R: La parte 2 de la serie se centra en gestionar y mejorar el rendimiento en un entorno de Salesforce con uso intensivo de datos. Para ello, explica diversas técnicas, como escribir mejores consultas, diferir los cálculos de acceso compartido, usar tablas reducidas y comprender los detalles de la selectividad de consultas y los índices.

‍

P: ¿Cuáles son los puntos clave de la parte 2?

R: Los puntos clave incluyen aprender a escribir mejores consultas con Salesforce Object Query Language (SOQL) y Salesforce Object Search Language (SOSL), diferir los cálculos de acceso compartido para mejorar el rendimiento durante cambios importantes de configuración, usar tablas reducidas para disminuir los tiempos de procesamiento y aprovechar los índices estándar de la plataforma para crear consultas más selectivas y específicas.

‍

P: ¿Qué son las tablas reducidas y cómo pueden mejorar el rendimiento de Salesforce?

R: Las tablas reducidas son tablas especiales que pueden mejorar el rendimiento al almacenar campos consultados con frecuencia y disminuir los tiempos de procesamiento. Tienen limitaciones y requieren la intervención del soporte al cliente de Salesforce para su creación y gestión. Sin embargo, se pueden usar para acelerar consultas en grandes conjuntos de datos y son especialmente útiles para reportes en entornos con uso intensivo de datos.

‍

P: ¿Qué es el cálculo diferido de acceso compartido en Salesforce?

R: El cálculo diferido de acceso compartido es una función que permite a los usuarios diferir el procesamiento de las reglas de acceso compartido cuando se agregan o actualizan usuarios y cuando cambia la jerarquía de roles de la organización de Salesforce. Esto mejora el rendimiento durante cambios importantes de configuración.

‍

P: ¿Cuál es la diferencia entre SOQL y SOSL?

R: SOQL es útil cuando conoces el objeto y los campos específicos que buscas, mientras que SOSL puede buscar en varios objetos y campos simultáneamente. Sin embargo, cada uno tiene distintos casos de uso, fortalezas y limitaciones según el escenario.

‍

P: ¿Cómo funcionan los índices personalizados de Salesforce?

R: Salesforce admite índices personalizados en campos personalizados, con algunas excepciones. Estos índices aceleran la recuperación de datos y mejoran el rendimiento de las consultas. Sin embargo, usarlos requiere coordinación con el soporte al cliente de Salesforce.

‍

P: ¿Qué se entiende por selectividad de consultas e índices en Salesforce?

R: La selectividad de consultas consiste en hacer que las consultas sean lo más específicas posible para aprovechar los índices estándar de la plataforma. Implica usar condiciones que apunten a un subconjunto específico de datos, lo que permite que el sistema use índices para recuperar los datos de forma más eficiente.

‍

P: ¿Qué importancia tienen los umbrales de índices en Salesforce?

R: Los umbrales de índices determinan cómo el optimizador de consultas de Salesforce decide si usar índices estándar o personalizados según la cantidad de registros que coinciden con una consulta. Comprender estos umbrales puede ayudarte a optimizar el rendimiento de las consultas.

‍

P: ¿De qué trata la siguiente parte de la serie?

A: Parte 3 de la serie profundizará en los índices personalizados y ofrecerá consejos para cada caso que te ayudarán a mejorar aún más el rendimiento en Salesforce.

‍

P: ¿Cuál es el objetivo final de esta serie sobre cómo optimizar organizaciones de Salesforce con grandes volúmenes de datos?

R: El objetivo final de esta serie es ofrecer una guía completa para mejorar el rendimiento de una organización de Salesforce con grandes volúmenes de datos. Se busca garantizar operaciones eficientes y una buena experiencia de usuario mediante la selectividad de las consultas, el uso de índices y la comprensión de funciones que mejoran el rendimiento, como las tablas reducidas y el cálculo diferido de acceso compartido.

‍

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
  • Cómo escribir mejores consultas en Salesforce
  • Cálculo diferido del acceso compartido de Salesforce
  • Tablas reducidas de Salesforce
  • Selectividad de consultas e índices
  • Índice personalizado de Salesforce: explicación
  • Umbrales de índices
  • Mejora del rendimiento de Salesforce para grandes volúmenes de datos
  • Preguntas frecuentes
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