如何提高查询性能?

时间:2017-06-19 17:43:04

标签: powerquery m

我正在针对3列乘37,636行的源表运行以下查询,并且需要花费数小时才能运行。我怎样才能提高性能?

源表本身就是先例查询的结果,如果重要的话。先前的查询在合理的时间内(以分钟为单位)执行,但这一次陷入了严重的困境。

源表的列名是Columns,Columns2和Count。

let
Source = Table.Buffer(GetWordCounts),
#"Grouped Rows" = Table.Buffer(Table.Group(Source, {"Count"}, {{"AllData", each _, type table}})),
Custom1 = Table.Buffer(Table.MaxN(#"Grouped Rows","Count",10)),
#"Expanded AllData" = Table.ExpandTableColumn(Custom1, "AllData", {"Columns", "Columns2"}, {"Columns", "Columns2"})
in
#"Expanded AllData"

我尝试在一些地方添加Table.Buffer,正如您所看到的,但我无法判断它是否有帮助或伤害。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

在Excel中使用相同数量的测试数据,它会在大约2秒内与我一起运行。如果在单独的Excel worbook或pbix文件中隔离此查询的输入,您是否仍然具有相同的不良性能?我怀疑糟糕的表现是由于之前的步骤。

编辑:您可以尝试的替代代码:

let
    Source = Table.Buffer(GetWordCounts),
    #"Removed Duplicates" = Table.Distinct(Source, {"Count"})[Count],
    Max10 = List.Sort(#"Removed Duplicates",Order.Descending){9},
    #"Filtered Rows" = Table.SelectRows(Source, each [Count] >= Max10)
in
    #"Filtered Rows"