幂查询中的表缓冲区 - 帮助我理解这一点



我一直在幂查询M函数中阅读有关Table.buffer的几篇文章。

这里和那里有几句话谈到"通过将表保留在内存中来提高性能"或"加载到表上并使用此表执行其他工作,而不是通过查询步骤再次重新加载表......"

我有点理解,但如果可能的话,我希望有更多的隐喻或例子。

原则上,这与将函数值保存为常量类似,当您在代码中进一步重复引用函数值时,计算成本很高。它也可以被认为是一种时空权衡,尽管不能保证速度的增加。

它的作用是将表加载到内存中,以便它可以对存储的内存缓存进行操作,而不是在应用进一步步骤时返回到源数据。尽管 M 代码通常是在步骤中编写的,其中一行在前一行上运行,就好像它在每个步骤中都存储一样,但这实际上并不是它在幕后所做的,因为它会自动尝试优化查询折叠等操作,除非您明确告诉它不要使用Table.Buffer(这会破坏任何查询折叠(。

相关内容

最新更新