RDBMSで動かしていたクエリをそのままBigQueryに移行したらなんか遅い…と思って調べたところBigQueryはWHERE句の条件が複数あっても順番は最適化してくれないらしい。
BigQueryのwhere句で複数条件を記載すると上から順番に実行されるので、効率良くデータを絞り込めるように順番を考えてクエリを作らなければパフォーマンスが落ちてしまう。
大事な情報だからもっとわかりやすいところに書いておいてほしい
式の順番が重要: BigQuery は WHERE 句で指定されている式の順序が最適だと想定し、式の順序を変更することはありません。WHERE 句には、最もデータを絞り込むことのできる式を最初に並べる必要があります。
自分の場合はWHERE句の順番を変えることで数分かかっていた処理が数秒ほどで終わるようになりました。