我遇到了使用
的情况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的情况。
答案 0 :(得分:-1)
使用cat,您将生成一个新进程,并重定向输出。 Useless Use of Cat Award很好地描述了这一点。 通过扩展在stdin上提供文件,你只需要给sqllite3工具一个参数。