单一记录的Unnest查询优化



当内部客户只想返回一个结果*(以及相关的嵌套数据集(时,我正在尝试优化我的查询。我的目标是减少查询进程的大小。

然而,无论我查询的是1条记录(具有未测试的48000长度数组(还是整个数据集(10000条记录,具有未测试总数组长度514048748(,它似乎都是完全相同的值!

因此,我的表结果为一个记录查询:

SELECT test_id, value
FROM <my_table_reference>, unnest(TimeSeries)timeseries
WHERE test_id= "T0003" and SignalName = "Distance";

看起来像这样:

test_id
T00031.0
T00032.0
T00033.0
T00034.0

之所以会发生这种情况,是因为仍然需要进行全表扫描,以找到与指定ID相等的所有测试ID。

从您的示例中不清楚哪些列是timeseries记录的一部分。如果test_id不是其中之一,我建议将表聚集在test_id列上。通过聚类,数据将根据test_id列的内容自动组织。

因此,当您在该列上使用筛选器进行查询时,不需要进行完全扫描来查找所有值。

在此处阅读有关聚集表的更多信息。

最新更新