我想将psycopg2的执行速度与psql进行比较。我目前有一个看起来像
的脚本SQL="SOME LONG SQL QUERY"
time psql -h $HOST -d $DB -U $USER -p $PORT -c "EXPLAIN ANALYZE $SQL"
time python -c "from dbpg import execute; rows = execute('''$SQL''', info='$CS')"
其中execute是:
def execute(sql, args=None, info=None):
with psycopg2.connect(info) as con:
with con.cursor() as c:
c.execute(sql, args)
return c.fetchall()
为了确保比较公平,我不希望让psql将结果集写入文件,因为I / O惩罚会给psycopg2带来优势。我目前有脚本计时我要运行的查询的EXPLAIN ANALYZE
,但我相当确定不包括将结果集从服务器传输到客户端所花费的时间我正在运行此脚本。
有没有办法让psql运行查询,下载查询集,并将其丢弃而无需写入文件,这样我就可以正确地比较查询执行时间?