Usted está aquí:
Optimizar una actividad de consulta SQL
Las actividades de consulta SQL se agotan transcurridos 30 minutos. Puede evitar tiempos de espera y fallos optimizando sus actividades de consulta SQL. Si su consulta se ejecuta de forma coherente durante más de 10 minutos, recomendamos utilizar una herramienta diferente, como Salesforce Customer Data Platform, para transformar sus datos.
Revise estas directrices para obtener sugerencias, trucos e información general que puede utilizar para optimizar sus consultas SQL.
- Claves principales
Utilice claves principales como identificadores exclusivos para su conjunto de datos. - Longitud de campo y tipo de datos
Considere la longitud del campo y el tipo de datos que está recuperando. - Cantidad y retención de datos
Para mejorar el desempeño, limite la cantidad de datos en sus consultas y extensiones de datos. - Argumentos con capacidad de búsqueda (consultas SARGable)
Los argumentos con capacidad de búsqueda, también conocidos como consultas SARGable, son operadores que pueden utilizar índices. Para hacer que su consulta se ejecute con mayor rapidez, utilice argumentos con capacidad de búsqueda cuando sea posible. - Actividades simultáneas
La actividad simultánea se produce cuando varios procesos intentan acceder a los mismos datos al mismo tiempo, lo que puede provocar que las consultas fallen o que se agote el tiempo de espera. Por ejemplo, dos procesos intentan escribir simultáneamente en el mismo conjunto de datos, o un proceso está escribiendo activamente en un conjunto de datos que otro proceso intenta leer. - Etapa de datos
Puede organizar sus datos dividiendo una consulta de gran tamaño con múltiples uniones en consultas pequeñas con mayor desempeño. Este método es especialmente efectivo para consultas de larga ejecución que de lo contrario podrían agotar el tiempo de espera.
Claves principales
Utilice claves principales como identificadores exclusivos para su conjunto de datos.
- Sea estratégico al designar un campo como una clave principal. Tener demasiadas claves principales anula el propósito de un identificador exclusivo y disminuye el desempeño.
- Automation Studio mejora el desempeño indexando automáticamente claves principales, campos de relaciones con capacidad de envío y sus otros campos más utilizados. Pero no necesita designar campos como claves principales para forzar el indexado. El uso excesivo de claves principales ralentiza las inserciones en extensiones de datos desde consultas, API y otros procesos.
- Para analizar múltiples conjuntos de datos, utilice el mismo campo de clave principal en cada extensión de datos que desee vincular. Luego una las extensiones de datos utilizando el campo de clave principal.
Longitud de campo y tipo de datos
Considere la longitud del campo y el tipo de datos que está recuperando.
- Al definir la longitud del campo, mantenga la longitud en el número de caracteres necesarios. Por ejemplo, si el campo es un código de estado de dos dígitos, limite la longitud de la columna a 2 caracteres en vez de los 50 predeterminados.
- Evite utilizar los tipos de datos nvarchar (max) y varchar (max).
- Al almacenar datos, menos es más. Solo almacene datos críticos para su proceso y para la tabla específica.
- Recomendamos limitar las anchuras de filas a 4.000 caracteres o menos.
- Solo una columnas del mismo tipo de datos.
- Utilice el mismo tipo de datos para columnas que coinciden en las extensiones de datos de origen y destino.
Cantidad y retención de datos
Para mejorar el desempeño, limite la cantidad de datos en sus consultas y extensiones de datos.
- Utilice una consulta SQL cuando trabaje con un conjunto de datos limpio y estructurado donde ya se crearon audiencias. Si desea unificar y segmentar un conjunto de datos de gran tamaño, recomendamos utilizar su propio almacén de datos interno o una aplicación, como Salesforce Data 360.
- No utilice una consulta SQL para tareas de gran tamaño como copiar datos entre extensiones de datos. En su lugar, utilice una extracción de extensión de datos con una actividad de importación en Automation Studio.
- Si tiene una extensión de datos con una gran cantidad de datos, divídala en múltiples extensiones de datos relacionadas a través de claves externas.
- Solo consulte tantos datos como necesite. Por ejemplo, si solo necesita 24 horas de datos, no recupere 30 días de datos.
- Solo recupere datos que cambiaron desde la última consulta. Por ejemplo, utilice un campo Fecha de modificación para limitar su consulta.
- Almacene datos que cambian frecuentemente en una extensión de datos separada. Cuando realice solicitudes para estos datos o actualice la extensión de datos, evite ejecutar otras automatizaciones o solicitudes al mismo tiempo.
- Si detecta problemas de desempeño con una extensión de datos en la que se eliminaron varias columnas anteriormente, vuelva a construir la extensión de datos. Para reconstruir, cree una extensión de datos y utilice una actividad de consulta para transferir datos desde la extensión antigua a la nueva extensión.
- Utilice la configuración de retención de datos para especificar cuánto tiempo retiene su cuenta los datos.
- Al crear una consulta, seleccione la forma con mayor desempeño de redactar datos para su caso de uso.
- Anexar es normalmente lo mejor para registros de eventos y otros casos de uso donde solo necesita los datos más recientes.
- La sobrescritura es la opción con mayor desempeño para la mayoría de los otros casos de uso.
- La actualización es normalmente la opción con menor desempeño y puede ampliar significativamente su tiempo de consulta.
Argumentos con capacidad de búsqueda (consultas SARGable)
Los argumentos con capacidad de búsqueda, también conocidos como consultas SARGable, son operadores que pueden utilizar índices. Para hacer que su consulta se ejecute con mayor rapidez, utilice argumentos con capacidad de búsqueda cuando sea posible.
- No utilice estos argumentos sin capacidad de búsqueda en una cláusula de
WHERE.ORNOT<>NOT EXISTSNOT INNOT LIKE- Funciones intrínsecas que funcionan en un valor de columna
Estos son algunos ejemplos de funciones intrínsecas sin capacidad de búsqueda que se pueden reescribir en argumentos con capacidad de búsqueda.
Argumento sin capacidad de búsqueda Argumento con capacidad de búsqueda AND datediff(day, convert(DATE, calculated_subscription_start_dtm), GetDate()) = 26AND calculated_subscription_start_dtm >= DATEADD(DAY, -26, CAST(GETDATE() AS DATE))AND calculated_subscription_start_dtm < DATEADD(DAY, -25, CAST(GETDATE() AS DATE))WHERE convert(DATE, gsl.SendDate) >= convert(DATE, dateadd(dd, - 10, GETUTCDATE()))WHERE gsl.SendDate >= DATEADD(DAY, -10, CAST(GETUTCDATE() AS DATE))AND gsl.SendDate < DATEADD(DAY, -9, CAST(GETUTCDATE() AS DATE)) - Utilice
SELECT DISTINCTsolo cuando haya datos duplicados en múltiples extensiones de datos. - Cuando utilice
SELECT TOP, utilice tambiénORDER BYpara evitar resultados impredecibles. - Especifique columnas por nombre en vez de utilizar
SELECT *. Al utilizarSELECT *, el analizador de actividad de consulta almacena en caché las columnas que existen cuando se guarda la consulta. Si agrega otra columna en el futuro, no se incluye automáticamente. - SQL Server no distingue entre mayúsculas y minúsculas, por lo que no utilice la función
LOWER.
Actividades simultáneas
La actividad simultánea se produce cuando varios procesos intentan acceder a los mismos datos al mismo tiempo, lo que puede provocar que las consultas fallen o que se agote el tiempo de espera. Por ejemplo, dos procesos intentan escribir simultáneamente en el mismo conjunto de datos, o un proceso está escribiendo activamente en un conjunto de datos que otro proceso intenta leer.
- Evite tiempos de inactividad y problemas de desempeño limitando las actividades de consulta a una consulta por paso de una automatización.
- Evite la actividad simultánea escalonando sus automatizaciones y creando conjuntos de datos exclusivos para sus procesos.
- La mayoría de las automatizaciones están programadas en la hora. Mejore el desempeño programando sus automatizaciones en otras horas, como las 8:30 en vez de las 8:00.
Etapa de datos
Puede organizar sus datos dividiendo una consulta de gran tamaño con múltiples uniones en consultas pequeñas con mayor desempeño. Este método es especialmente efectivo para consultas de larga ejecución que de lo contrario podrían agotar el tiempo de espera.
- Utilice múltiples consultas pequeñas para recopilar datos desde diferentes extensiones de datos y redactar esos datos en tablas de mantenimiento.
- Después de ejecutar todas las consultas pequeñas, utilice una consulta final para unir los datos de las tablas de mantenimiento.
Para un ejemplo, consulte Utilizar tablas intermedias para optimizar una consulta.

