猫怎么样?重定向结果在同一命令的不同运行时?

时间:2016-11-17 01:10:48

标签: performance unix sqlite

我遇到了使用

的情况
cat file | executable

executable < file

导致运行时间大不相同。具体来说,我有一个查询,使用SQLite Expert或在命令行sqlite3内运行10-20秒。我将此可执行文件保存到文件并运行

sqlite3 database.sqlite < file

这需要10 - 20秒才能运行

cat file | sqlite3 database.sqlite3

运行时间超过15分钟。

数据库是相同的,相同的机器,相同的sql脚本,只有sqlite3接收其指令的方式不同。为什么我看到的行为却截然不同。

注意这是Unix和Windows的情况。

1 个答案:

答案 0 :(得分:-1)

使用cat,您将生成一个新进程,并重定向输出。 Useless Use of Cat Award很好地描述了这一点。 通过扩展在stdin上提供文件,你只需要给sqllite3工具一个参数。