0

BigQuery DMLのパフォーマンスの良いアイデアを得るために、いくつかのBigQuery DMLテストを実行しています。これまでのところ、ここでいくつかの初期の観察は以下のとおりです。 1)非常に小さなテーブルではわずか数レコードを更新パフォーマンスの低下(30K +記録)Google BigQuery DML - 更新と削除を実行するとパフォーマンスが遅くなる

UPDATE babynames.names_2014 
SET name = 'Emma B' 
WHERE name = 'Emma'; 

出力: - 影響を受けた2行(テーブル内のレコードの# :33176) - 完全なクエリ(4.5Sは、621キロバイト)が処理経過


2)非常にパフォーマンスが低下小さなテーブルからわずか数レコードを削除

SQL:

DELETE from babynames.names_2014_copy 
where gender<>'U' 

出力: -2行が影響を受けます。完全 -Query(、経過処理さ1.21メガバイトを162.6s) - 〜3分

質問: 1)は、これらの既知の動作はありますか? 2)パフォーマンスを改善する方法に関する提案はありますか?

答えて

0

(1)とほぼ同じです - プライマリDMLシナリオは、多くの行(数百万/十億行)に影響する大きな更新/削除です。したがって、スループットよりレイテンシは重要ではありません。

(2)は正常ではありません - もう一度試すことができますか?更新しようとしているテーブルについて珍しいことは何ですか?

パフォーマンスを改善する方法についてのご意見はありますか?

各文で多くの行を更新するDML文が少ない方に最適化してください。たとえば、影響を受ける行の大きなセットを指定するには、joins/semijoinsを使用します。

+0

1.「遅延はスループットよりも重要ではない」とはどういう意味ですか? 2.私は何度も試したことがあり、行動は同じです。 –

関連する問題