GBase 8s并行数据库查询

并行数据库查询 (PDQ) 是一种数据库服务器功能,当服务器处理由决策支持应用程序启动的查询时,该功能可以显著提高性能。PDQ 使 GBase 8s 能够将查询的一个方面的工作分发给多个处理器。例如:如果查询要求聚集,那么 GBase 8s 可以将聚集工作分发给几个处理器。

PDQ 还包含用于资源管理的工具。

数据库服务器的另一功能 - 表分段存储,允许您将表的各部分存储在不同的磁盘上。查询的数据位于分段表时,PDQ将提供最佳的性能优势。有关如何使用分段存储以获得最佳性能的信息,请参阅规划分段存储策略。
PDQ 查询的结构
每个决策支持查询都有主线程。数据库服务器可能启动附加的线程来执行查询任务(例如:扫描和排序)。根据查询必须搜索的表或分段的数量以及决策支持查询可使用的资源,数据库服务器将查询的不同组成部分分配给不同的线程。

数据库服务器启动这些 PDQ 线程,这些线程在 SET EXPLAIN 输出中列为辅助线程。

根据其功能,辅助线程可进一步分类为生产者或消费者。生产者线程给另一线程提供数据。例如:扫描线程可从与给定的表相对应的共享内存读取数据并将数据传递到连接线程。在这种情况下,扫描线程被看作生产者,而连接线程则被看作消费者。反过来,连接线程也可将数据传递到排序线程。当执行此操作时,连接线程被看作生产者,而排序线程则被看作消费者。

几个生产者可以向单个消费者提供数据。当这种情况发生时,数据库服务器建立一个内部机制,称为交换,该机制使从那些生产者到消费者的数据传输同步。例如:如果要对分段表进行排序,那么优化器通常对于每个分段调用不同的扫描线程。由于 I/O 特征有所不同,因而扫描线程预期可能完成的时间也将不同。交换用来将各种扫描线程产生的数据传递给一个或多个排序线程,而最低限度地使用缓冲。 根据查询的复杂性,优化器可能会需要一个生产者、交换和消费者的多层层次结构。 一般来讲,消费者线程与生产者线程并行工作,以便交换执行的中间缓冲量可忽略。

数据库服务器自动并透明地创建这些线程和交换。当完成对给定的查询的处理时,它们将自动终止。数据库服务器按后续查询需要创建新的线程和交换。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值