我正在针对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
,正如您所看到的,但我无法判断它是否有帮助或伤害。
有什么想法吗?
答案 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"