Saya ingin membandingkan beberapa query SQL dengan database PostgreSQL saya. Apakah ada cara saya dapat menggunakan SQL-queries psql
?
postgresql
benchmark
psql
Jonas
sumber
sumber
Jawaban:
Nyalakan waktu dengan memasukkan:
\timing
sumber
psql
tidak mengizinkan pengaturan ini. Anda dapat melakukan ini dengan sesuatu seperti:psql --o /dev/null <<EOF \timing select 1 EOF
psql -c '\timing' -c 'select 1'
Pengaturan waktu dapat diaktifkan dengan
\timing
di psql prompt (seperti yang sudah dikatakan Caleb).Jika Anda menggunakan 8.4 atau lebih, Anda dapat menambahkan argumen on / off opsional
\timing
, yang dapat membantu jika Anda ingin dapat mengatur waktu pada .psqlrc - Anda kemudian dapat mengatur\timing on
secara eksplisit dalam skrip di mana plain\timing
akan beralih itu matisumber
Waktu yang
\timing
kembali juga termasuk latensi jaringan, jika Anda terhubung ke server jauh.Ketika Anda tidak menginginkannya dan juga tidak memerlukan output kueri, gunakan yang lebih baik
EXPLAIN ANALYZE
, yang menampilkan rencana kueri dengan perkiraan perencana ditambah waktu eksekusi aktual.sebagai contoh,
EXPLAIN ANALYZE SELECT foo from bar ;
sumber
explain analyze
hasil kali yang kira-kira dua kali lipat apa yang saya lihat saat menggunakan\timing
, yang merupakan kebalikan dari apa yang saya harapkan berdasarkan komentar di sini mengenai latensi jaringan. Saya menduga bahwa ada overhead dalam eksekusi normalanalyze
yang menambah waktu permintaan. Berdasarkan dokumen, saya pikir ituEXPLAIN (ANALYZE, TIMING OFF) SELECT foo FROM bar
akan memberi Anda informasi waktu yang lebih berguna. Lihat postgresql.org/docs/9.6/static/sql-explain.html untuk detailnya.