¿Por qué mi consulta se ejecuta varias veces?

Al actualizar en Power Query, se hace mucho en segundo plano para intentar ofrecer una experiencia de usuario fluida y ejecutar las consultas de forma eficaz y segura. Sin embargo, en algunos casos puede observar que Power Query desencadena varias solicitudes de origen de datos cuando se actualizan los datos. A veces, estas solicitudes son normales, pero otras veces se pueden evitar.

Cuándo se producen varias solicitudes

En las secciones siguientes se describen algunas instancias en las que Power Query puede enviar varias solicitudes a un origen de datos.

Diseño de conector

Los conectores pueden realizar varias llamadas a un origen de datos por diversos motivos, incluidos metadatos, almacenamiento en caché de resultados, paginación, etc. Este comportamiento es normal y está diseñado para funcionar de esa manera.

Varias consultas que hacen referencia a un único origen de datos

Pueden producirse varias solicitudes al mismo origen de datos si varias consultas tiran de ese origen de datos. Estas solicitudes pueden producirse incluso en un caso en el que solo una consulta haga referencia al origen de datos. Si una o varias consultas hacen referencia a esa consulta, cada consulta (junto con todas las consultas de las que depende) se evalúa de forma independiente.

En un entorno de escritorio, se ejecuta una única actualización de todas las tablas del modelo de datos mediante una sola caché compartida. El almacenamiento en caché puede reducir la probabilidad de que se realicen varias solicitudes al mismo origen de datos, ya que una consulta puede beneficiarse de la misma solicitud que ya se ha ejecutado y almacenado en caché para una consulta diferente. Aunque aquí puede obtener varias solicitudes porque el origen de datos no está almacenado en caché (por ejemplo, archivos CSV locales), la solicitud al origen de datos es diferente de una solicitud que ya estaba almacenada en caché debido a operaciones de bajada (que pueden modificar el plegado), la memoria caché es demasiado pequeña (que es relativamente poco probable) o porque las consultas se ejecutan aproximadamente al mismo tiempo.

En un entorno de nube, cada consulta se actualiza mediante su propia caché independiente, por lo que una consulta no puede beneficiarse de la misma solicitud que ya se ha almacenado en caché para una consulta diferente.

Plegado

A veces, la capa de plegado de Power Query puede generar varias solicitudes a un origen de datos, en función de las operaciones de bajada que se realizan. En tales casos, puede evitar varias solicitudes mediante Table.Buffer. Más información: Almacenamiento en búfer de la tabla

Carga en el modelo de Power BI Desktop

En Power BI Desktop, Analysis Services (AS) actualiza los datos mediante dos evaluaciones: una para capturar el esquema, que AS hace solicitando filas cero, y otra para capturar los datos. Si para calcular el esquema de fila cero se requiere capturar los datos, se pueden producir solicitudes de origen de datos duplicadas.

Análisis de privacidad de datos

La privacidad de datos realiza sus propias evaluaciones de cada consulta para determinar si las consultas son seguras para ejecutarse juntas. A veces, esta evaluación puede provocar varias solicitudes a un origen de datos. Un signo revelador de que una determinada solicitud procede del análisis de privacidad de datos es que tendrá una condición "TOP 1000" (aunque no todos los orígenes de datos admiten tal condición). En general, deshabilitar la privacidad de los datos, suponiendo que sea aceptable, eliminaría los "TOP 1000" u otras solicitudes relacionadas con la privacidad de los datos durante la actualización. Más información: Deshabilitación del firewall de privacidad de datos

Descargas de datos en segundo plano (también conocidos como "análisis en segundo plano")

De forma similar a las evaluaciones realizadas para la privacidad de los datos, el editor de Power Query descargará de forma predeterminada una vista previa de las primeras 1000 filas de cada paso de consulta. Descargar estas filas ayuda a garantizar que la vista previa de datos esté lista para mostrarse en cuanto se seleccione un paso, pero también puede provocar solicitudes de origen de datos duplicadas. Más información: Deshabilitación del análisis en segundo plano

Otras tareas en segundo plano del editor de Power Query

Otras tareas en segundo plano del editor de Power Query también pueden desencadenar solicitudes de origen de datos adicionales (por ejemplo, análisis de plegado de consultas, generación de perfiles de columnas, actualización automática de la vista previa de 1000 filas que Power Query desencadena después de cargar los resultados en Excel, etc.).

Aislamiento de varias consultas

Puede aislar instancias de varias consultas desactivando partes específicas del proceso de consulta para aislar el lugar de dónde proceden las solicitudes duplicadas. Por ejemplo, si empieza:

  • En el editor de Power Query
  • Con el firewall deshabilitado
  • Con el análisis en segundo plano deshabilitado
  • Con la generación de perfiles de columnas y otras tareas en segundo plano deshabilitadas
  • [Opcional] Haciendo un Table.Buffer

En este ejemplo, solo tendrá una evaluación M única que se produce al actualizar la versión preliminar del editor de Power Query. Si las solicitudes duplicadas se producen en este momento, son inherentes de alguna manera a la forma en que se crea la consulta. Si no es así, y si habilita la configuración anterior de una en una, puede observar en qué momento comienzan a producirse las solicitudes duplicadas.

En las siguientes secciones se describen estos pasos con más detalle.

Configuración del editor de Power Query

No es necesario volver a conectar ni volver a crear la consulta, simplemente abra la consulta que desea probar en el editor de Power Query. Puede duplicar la consulta en el editor si no quiere alterar la consulta existente.

Deshabilitación del firewall de privacidad de datos

El siguiente paso es deshabilitar el firewall de privacidad de datos. En este paso se da por supuesto que no le preocupa la pérdida de datos entre orígenes, por lo que deshabilitar el firewall de privacidad de datos se puede realizar mediante la opción Ignorar siempre la configuración del nivel de privacidad que se describe en Establecer opciones de combinación rápida en Excel o utilizando el ajuste de Ignorar los niveles de privacidad y mejorar el rendimiento potencialmente que se describe en Niveles de privacidad de Power BI Desktop en Power BI Desktop.

Asegúrese de deshacer este paso antes de reanudar las pruebas normales.

Deshabilitación del análisis en segundo plano

El siguiente paso es deshabilitar el análisis en segundo plano. El análisis en segundo plano se controla mediante la opción Permitir que se descargue la vista previa de datos en segundo plano que se describe en Deshabilitación de la actualización en segundo plano de Power Query para Power BI. También puede deshabilitar esta opción en Excel.

Imagen que muestra las opciones de consulta en Excel con el análisis de fondo deshabilitado.

Almacenamiento en búfer de la tabla

Opcionalmente, también puede usar Table.Buffer para forzar que se lean todos los datos, lo que imita lo que sucede durante una carga. Para usar Table.Buffer en el editor de Power Query:

  1. En la barra de fórmulas del editor de Power Query, seleccione el botón fx para agregar un nuevo paso.

    Imagen con la ubicación del botón fx resaltado.

  2. En la barra de fórmulas, rodee el nombre del paso anterior con Table.Buffer(<el nombre del paso anterior va aquí>). Por ejemplo, si el paso anterior se llamaba Source, la barra de fórmulas mostrará = Source. Edite el paso en la barra de fórmulas para que indique = Table.Buffer(Source).

Más información: Table.Buffer

Ejecutar la prueba

Para ejecutar la prueba, realice una actualización en el editor de Power Query.

Imagen con la ubicación del botón actualizar resaltado.