金融其它数据库

shell中如何实现表级数据并发提取

现在数据库中有一百多个表,现在要实现同时对100多个表进行查询,但是每个表需查询的字段除了主键之外其他sum字段,不同表的sum字段还不一样。(表的主键有的是2个,有的是3个,还有的是一个)请问这样情况怎样实现?如果不加表的sum字段怎样实现?
参与13

13同行回答

marvelyumarvelyu软件开发工程师IBM
1.同时指的是一个sql查询关联了100多个表?2.表的数据量如何?小的话可以采用hash join法表连接,将排序连接操作到内存3.开启PDQ4.其他字段的离散度如何?关联字段都有哪些?显示全部
1.同时指的是一个sql查询关联了100多个表?
2.表的数据量如何?小的话可以采用hash join法表连接,将排序连接操作到内存
3.开启PDQ
4.其他字段的离散度如何?关联字段都有哪些?收起
互联网服务 · 2011-04-11
浏览541
shanshan系统工程师gs
压根就没看清楚楼主想要什么,惭愧:o显示全部
压根就没看清楚楼主想要什么,惭愧:o收起
互联网服务 · 2011-04-11
浏览517
yunzhongyueyunzhongyue数据库运维工程师GBase
可以用加&的方式来实现并发,不过并发个数最好不要超过CPU VP的个数!显示全部
可以用加&的方式来实现并发,不过并发个数最好不要超过CPU VP的个数!收起
互联网服务 · 2011-04-07
浏览525
其实他要的不是实现查询事务的并发,而是多个任务并发执行,这是两个概念任务并发可以在SHELL中控制如果是同一个查询的并发才是实用PARALLEL  :)显示全部
其实他要的不是实现查询事务的并发,而是多个任务并发执行,这是两个概念
任务并发可以在SHELL中控制
如果是同一个查询的并发才是实用PARALLEL  :)收起
IT分销/经销 · 2011-03-18
浏览556
jillmejillme课题专家组CIO某大型银行
并发查询,用&只是放到后台去查询了,依旧是顺序执行 并没有并发哈以下脚本是参考网上说明后改写的#定义并发进程数量PARALLEL=3#定义临时管道文件名TMPFILE=$$.fifo#将要查询的表名写入其中CMD_CFG=task.cfg#定义失败标识文件FAILURE_FLAG=failure.log# 中断时kill子进程fun...显示全部
并发查询,用&只是放到后台去查询了,依旧是顺序执行 并没有并发哈
以下脚本是参考网上说明后改写的

#定义并发进程数量
PARALLEL=3
#定义临时管道文件名
TMPFILE=$$.fifo
#将要查询的表名写入其中
CMD_CFG=task.cfg
#定义失败标识文件
FAILURE_FLAG=failure.log

# 中断时kill子进程
function trap_exit
{
kill -9 0
}
# 执行函数
exec_cmd()
{
   dbaccess db1 <   select * from $1;
   !
   
    if [ $? -ne 0 ]
    then
        echo "命令执行失败"
        return 1
    fi
}

trap 'trap_exit; exit 2' 1 2 3 15

rm -f  ${FAILURE_FLAG}
exec 4<>$TMPFILE
rm -f $TMPFILE
#给管道命名
exec 4<>$TMPFILE  

#读取并发数目,并判断并发多少次
{
        count=$PARALLEL
        while [ $count -gt 0 ]
        do
                echo
                let count=$count-1
        done
} >&4


while read task
do

  read <&4
  (  exec_cmd ${task} || echo ${task}>>${FAILURE_FLAG} ; echo >&4 ) &
done<$CMD_CFG

wait

exec 4>&-


#并发进程结束后判断是否全部成功
if [ -f ${FAILURE_FLAG} ]
then
        exit 1
else
        exit 0
fi收起
互联网服务 · 2011-03-17
浏览581
忧愁绽放说的是一种方式,加 &把程序放在后台执行,这样多条命令可以同时并发来做显示全部
忧愁绽放说的是一种方式,加 &把程序放在后台执行,这样多条命令可以同时并发来做收起
IT分销/经销 · 2011-03-17
浏览573
chenhuajun0311chenhuajun0311系统管理员信龙科技
看是看明白了,不过并发查就不会了。显示全部
看是看明白了,不过并发查就不会了。收起
IT分销/经销 · 2011-03-17
浏览605
afliaoafliao数据库管理员南大通用
不知有人看懂题目的意思没显示全部
不知有人看懂题目的意思没收起
IT咨询服务 · 2011-03-17
浏览528
忧愁绽放忧愁绽放系统工程师zznode
在shell的 语句后面加 &这样就是同时后台执行了,不过你说一个表有2个主键????显示全部
在shell的 语句后面加 &
这样就是同时后台执行了,不过你说一个表有2个主键????收起
电信设备制造商 · 2011-03-17
浏览531
依浓浓依浓浓数据库管理员picc人保财险
拿同时查询三个表来举例,prpc表需查询主键(两个),sum1,sum2,sum3prph表需查询主键(三个)和sum1,sum2prpb表需查询主键(一个)主键通过系统表查询得出来的。我怎样写shell能够并发查询这三个表。因为表比较多,数据量也比较大。需要并发来查询。...显示全部
拿同时查询三个表来举例,prpc表需查询主键(两个),sum1,sum2,sum3
prph表需查询主键(三个)和sum1,sum2
prpb表需查询主键(一个)
主键通过系统表查询得出来的。
我怎样写shell能够并发查询这三个表。因为表比较多,数据量也比较大。需要并发来查询。收起
金融其它 · 2011-03-17
浏览685

提问者

依浓浓
数据库管理员picc人保财险

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2011-03-17
  • 关注会员:0 人
  • 问题浏览:5863
  • 最近回答:2011-04-11
  • X社区推广