【发布时间】:2019-12-07 07:02:44
【问题描述】:
我的 Linux 机器上有一个 oracle 数据库。 通过bash的单个sql查询(1个连接)如下:
su - oracle
sqlplus <dbuser>/<dbpass>
select * from cat;
exit
我正在尝试通过 bash 运行并行查询,以下脚本用于并行运行 10000 个连接(如果我错了,请纠正我):
for i in $(seq 1 10000); do echo "select * from <tableName>;" | sqlplus <dbuser>/<dbpass>&done
我想让这段代码更加健壮和灵活,例如,我想在以下每个命令之间添加一个睡眠:
- 创建连接
- 创建一个表(此连接唯一,例如 i 作为索引)
- 从表格中选择数据
- 关闭连接
以下代码是我这样做的尝试:(不工作)
for i in $(seq 1 10000);
do
echo "CREATE TABLE test+i (id NUMBER NOT NULL);"
sleep 2
echo "select * from test+i"
sleep 2
echo "DROP TABLE test+i" | sqlplus <dbuser>/<dbpass>&
done
1) 语法上,我应该怎么写?
2) 我如何知道有多少查询/连接成功和多少失败?
3) 我如何知道实际并行运行的连接数
【问题讨论】:
标签: linux database bash oracle parallel-processing