花时间从 csv 文件填充 POSTGRES table

Get time to populate a POSTGRES table from csv file

有什么方法可以确定 Postgres 从 csv 文件填充 table 所需的时间。我尝试使用 'time' 命令但它没有用。

time copy TABLE_NAME from /home/ankit/Documents/file.csv delimiter ',' csv header ;

错误是: ERROR: syntax error at or near "time"

我正在使用 Ubuntu 16.04

您的 table 中应该有 "created" 类型的 "timestamp without time zone" 字段,您还可以在列定义屏幕中将默认值指定为 now() 。

然后每条记录都将分配有创建的时间戳,无论是从 csv 加载还是通过任何其他方式创建。

或在SQL中:

ALTER TABLE mytable ADD COLUMN created TIMESTAMP;
ALTER TABLE mytable ALTER COLUMN created SET DEFAULT now();

这取决于您将查询提交给 Postgres 的方式。如果您在 shell 中使用 psql 命令行客户端,您可以在它之前添加时间命令。因此,例如,它将类似于以下内容:

time psql -c "copy TABLE_NAME from /home/ankit/Documents/file.csv delimiter ',' csv header ;"

您可能还需要向命令添加连接参数。

如果您使用 psql,另一种方法是使用以下命令,psql 将打印每个查询花费的时间:

\timing