Forum Discussion
Filtro
Hola
por favor, sería tan amable y me ayude con mi código dax. No puedo menos que me desaceleré por qué no tengo suficiente memoria.
Mi código es:
Columna : COUNTROWS(FILTER(Sales_table,Sales_table[Date_issued_X]<-Combinación[Fecha]&&Sales_table[ID]-Combinación[ID])))
pero cuando uso sólo una condición, por ejemplo:
Columna : COUNTROWS(FILTER(Sales_table,Sales_table[Date_issued_X]<-Combinación[Fecha]))
No voy a tener problema con la memoria, pero cuando uso ambas condiciones en el filtro recibo esta información:
Error de memoria: Error de asignación de memoria . Intente simplificar o reducir el número de consultas.
Gracias de antemano.
Dávid
5 Replies
- DavidKFrequent Visitor
yes, second condiotion should reduce count row
- AnonymousNot applicable
Hola @DavidK,
¿Cuánta memoria inactiva tiene su dispositivo, ¿ha funcionado en el cliente de escritorio de 32 bits? AFAIK, 32bit tiene un límite de memoria de 4 GB en el uso de la aplicación:
Límites de memoria para versiones de Windows y Windows Server
Creo que esto debería estar relacionado con los cálculos de iterador, su fórmula calculará en cada fila de la tabla 'Combinación' para iterar y comprobar con registros de tablas de venta. ('combinación' recuento de filas X 'sales' recuento de filas de tabla)
Optimización de iteradores anidados en DAX
BTW, también puede usar Dax studio para rastrear cuántas filas calcula la fórmula DAX en:
saludos
Xiaoxin Sheng
- DavidKFrequent Visitor
No puedo entender por qué no funciona corect 😞 .... agredo aquí ejemplo con datos de entrenamiento. Por favor, ¿sería tan amable y comprobar dónde me equivoco 😞
https://drive.google.com/drive/folders/1XoFc1e0odTNQ1SiNO6hIV1-9F-gGpjrD?usp=sharingGracias de antemano.
- AnonymousNot applicable
hola @DavidK,
Esto debería estar más relacionado con las cantidades de datos. Después de que termine de revisar su archivo de muestra y descubrí que tienen registros 81M y 40K.
Para este escenario, la fórmula iterará y calculará más de 3240B (81M x 40K) filas. Obviamente gastará una gran cantidad de recursos del sistema para calcular.
Si agrega más condiciones a la expresión, costará más recursos que menos condiciones versión. (parece que su dispositivo es lo suficientemente bueno para procesar la versión simple, pero falló en más versiones de condición)
En mi opinión, me gustaría sugerirle que use la expresión de medida en lugar de la fórmula de columna calculada, solo calcula cuándo la utiliza para analizar visualizaciones.
Además, también puede intentar realizar algunos agregados previos en el resultado para reducir el intervalo de bucle de registros y, a continuación, puede calcular en menos registros para evitar el problema de "asignación de memoria".
Aviso: 1 GB de memoria igual a 1.048.576 KB. Si suponemos que cada bucle de filas de 100K pasará 1 KB de memoria, 3240B filas también requieren 31 GB de memoria para almacenar en caché rápidamente y calcular en el rango expandido de registros o pasar más tiempo para ejecutar con recursos inactivos hasta el tiempo de espera de cálculo. (el escenario real y el cálculo no pueden ser tan complejos o de bajo rendimiento de lo que supuesto)
saludos
Xiaoxin Sheng