当一条查询语句在所涉及的表中的数据量达到阈值时,由规划器生成的计划去执行扫描时性能会比较差,因此需要使用多个worker线程并行各自去执行扫描表操作。这就是并行流式执行,简称SMP。
它是一种利用计算机多核CPU架构来实现多线程并行计算,以充分利用CPU资源来提高查询性能的技术。
本文将为您介绍Vasebase中SMP并行执行流程的实现原理,包括解决的问题、整体设计框架以及原理等。通过了解Vastbase SMP并行执行流程,数据库管理员和开发者可以更好的利用Vastbase,提高数据库算力。
常规SQL执行计划结构

下层算子向上层算子吐出数据,在单个线程中只能顺序执行。中间算子(例如HashJoin、NestedLoop等)一般拥有1-2个下层算子,部分算子(例如Append)拥有多个下层算子。叶节点算子一般是某种Scan算子(例如SeqScan、IndexScan)。
显而易见,当某个算子的时间开销过大时,会拉低整个计划的性能。