【べくとるかじっこう】
ベクトル化実行 とは?
公開:
💡 1行ずつ呼ばず、まとまりで渡す
データベースの処理を1行ずつではなく、複数行をまとめた単位で実行する方式。呼び出しの繰り返しを減らし、CPUを効率よく使うことを狙う。
📌 このページのポイント
まとめるだけで何が変わるの?
たとえば4096行を1行ずつ受け渡すなら4096回、1024行ずつなら4回の受け渡しになる。この1024は説明用で、実装の固定値ではないよ。各行を計算する仕事が消えるわけではなく、呼び出しなどの繰り返しを減らせるんだ。
実際には何行くらいまとめるの?
実装によるよ。DuckDBの文書は既定のベクトルサイズを2048行としている。すべてを一度に巨大な表として渡すのでも、必ず同じ件数が埋まるのでもなく、末尾などでは少ない件数を扱うこともあるんだ。
SIMDや並列処理と同じなのかな?
まとめるほど速くなるの?
まとめ:ざっくりこれだけ覚えればOK!
「ベクトル化実行」は「1行ずつ呼ばず、まとまりで渡す」と押さえておこう!
📖 おまけ:英語の意味
「vectorized execution」 = ベクトル単位の実行
💬 vectorized executionは「ベクトル単位の実行」という意味の表現だよ。