对于220mln行,此更新需要194秒。 有没有办法改善它?
#standardSQL
UPDATE dataset.people SET CBSA_CODE = '54620' where substr(zip,1,5) = '99047'
答案 0 :(得分:3)
在询问性能帮助时,从BigQuery UI中包含执行计划的屏幕截图非常有用,可以查看哪些阶段是最密集的,以及花费的时间。但是,如果没有这个,我怀疑这个小优化应该会有所帮助:
UPDATE dataset.people SET CBSA_CODE = '54620' WHERE zip LIKE '99047%'
BigQuery应该能够将此过滤器推送到其存储系统,因为它是表达字符串包含的一种更自然的方式,因此如果您看到一个高的" Read"在原始查询的执行计划中,这可能会减少它。