花时间从 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
有什么方法可以确定 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