> cat data.csv | awk -F "|" '{ sum += $4 } END { printf "%.2f\n", sum }'
"Don't pipe a cat".
My test doesn't show a speed improvement, but there are less processes running, and less memory consumed.
bch:~ bch$ jot 999999999 2 99 > data.dat
bch:~ bch$ time cat data.dat | awk '{sum +=$1} END {printf "sum: %d\n", sum}'
sum: 50499999412
real 6m21.111s
user 6m15.506s
sys 0m5.711s
PID COMMAND %CPU TIME #TH #WQ #PORTS #MREGS RPRVT RSHRD RSIZE VPRVT VSIZE PGRP PPID STATE UID FAULTS COW MSGSENT MSGRECV
22342 awk 100.7 05:11.84 1/1 0 17 21 52K 212K 340K 17M 2378M 22341 22306 running 501 311 49 73 36
22341 cat 1.1 00:03.94 1/1 0 17 21 272K 212K 548K 17M 2378M 22341 22306 running 501 268 51 73 36
==============
bch:~ bch$ time awk '{sum +=$1} END {printf "sum: %d\n", sum}' ./data.dat
sum: 50499999412
real 6m24.023s
user 6m13.828s
sys 0m2.774s
PID COMMAND %CPU TIME #TH #WQ #PORTS #MREGS RPRVT RSHRD RSIZE VPRVT VSIZE PGRP PPID STATE UID FAULTS COW MSGSENT MSGRECV
22373 awk 100.0 00:30.16 1/1 0 17 21 276K 212K 624K 17M 2378M 22373 22306 running 501 256 46 73 36