在存储过程中,有多个select语句,每个select语句执行的时间不一致,最长的12秒,最短的2秒。按顺序执行的话总时间就是各个select语句执行的时间和。能不能让他们并行执行?这样总时间就是执行时间最长的select语句决定了。
你写在一个存储过程里面,说明查询顺序是关系的,不然可以用线程跑,可是你就需要很多的连接,这些你都要考虑清楚
你这统筹方法学的真好。。。
你怎么看出来的?
我本来的思路是启用多个连接,每个连接执行一条语句。这样就可以实现同时执行了。但启用多个连接又有额外的连接开销,很可能得不偿失。在这里提问就是看看有没有另外的思路。
@横槊: 你再怎么着,你也就一个CPU啊,一个硬盘来io啊。。。
@顾晓北: 难道一个数据库的所有查询都是排队执行的吗?开两个链接执行查询语句难道是必须一个执行完毕返回结果另外一个连接的语句才开始执行的?我说的只是select语句,并不是对同一个表同时进行insert、update、select。
@横槊: 那倒肯定不是,否则一个语句卡住了,整个数据库都死了?不可能。。。
所以说,人家的语句本来就是并行执行的。。。
@顾晓北: 所以我就想知道在同一个存储过程有没有办法并行执行?
哥们,你统筹学真心牛。。。。还是楼上正解,CPU只有一个,又不是N多个刀片。。