第1章 概述

同一个数据集创建列表类型的报表时,禁止全部使用select公式,会产生笛卡尔积现象,导致内存溢出,系统宕机,后果非常严重。

1

1.1 原因阐述

报表的select公式同sql中的select查询类似,会查出数据集中该字段的所有内容,当你的数据有十条就会查出十条该字段的记录,报表工具本身具有扩展和依赖功能。 首先会查出国家列的十条记录,我们分别可以用A3-0,A3-1,A3-2...A3-9来表示,这时第一列国家的逻辑填充完成,现在要填充第二列地区的内容,第二列会依赖第一个列国家的值进行扩展。 就会产生这样的结果A3-0会对应出B3-0,B3-1,B3-2...B3-9, A3-1也会对应出B3-0,B3-1,B3-2...B3-9,... ,A3-9也会对应出B3-0,B3-1,B3-2...B3-9这样就导致,本来就十条数据,前两个字段就会出现10 * 10的数据量。 以此类推,如果都使用select公式的话,7个字段就会产生10 * 10 * 10 * 10 * 10 * 10 * 10=1000万条数据,产生笛卡尔积现象,导致内存溢出。这还仅仅是10条原始数据就会产生海量数据。所以新用户切记这样使用。 正确是使用是一个select公式,其他为get公式即可。

2 3 4 5

results matching ""

    No results matching ""

    results matching ""

      No results matching ""