設(shè)置查詢最大和最小并發(fā)度通常,一個(gè)查詢的并行度會(huì)影響一個(gè)查詢的性能以及系統(tǒng)的吞吐量。資源管理器分配給一個(gè)查詢的virtual segment個(gè)數(shù)決定了一個(gè)查詢的并行度。 一般情況下,用戶不需要人為干預(yù)資源管理器對(duì)virtaul segment個(gè)數(shù)的分配,OushuDB資源管理器會(huì)很好的管理查詢的并行度。但有些時(shí)候,用戶可能想要控制一個(gè)查詢的并發(fā)度,OushuDB提供了多個(gè) 可供用戶調(diào)控的手段。 通過hawq_rm_nvseg_perquery_limit:這個(gè)是資源管理器針對(duì)一個(gè)查詢可以分配的最大virtual segment數(shù)。默認(rèn)值為512。用戶可以調(diào)整這個(gè)值來放松或者加緊對(duì)并行度的限制。 NVSEG_UPPER_LIMIT/NVSEG_LOWER_LIMIT:這兩個(gè)值可以在創(chuàng)建資源隊(duì)列時(shí)指定。決定了一個(gè)資源隊(duì)列中的查詢使用的最小和最大virtual segment個(gè)數(shù)。如果不指定這兩個(gè)值,這兩個(gè)參數(shù)默認(rèn)處于不生效狀態(tài)。 NVSEG_UPPER_LIMIT_PERSEG/NVSEG_LOWER_LIMIT_PERSEG:這兩個(gè)值可以在創(chuàng)建資源隊(duì)列時(shí)指定。決定了一個(gè)資源隊(duì)列中的查詢?cè)诿總€(gè)節(jié)點(diǎn)上使用的最小和最大virtual segment個(gè)數(shù)。如果不指定這兩個(gè)值,這兩個(gè)參數(shù)默認(rèn)處于不生效狀態(tài)。 如果節(jié)點(diǎn)數(shù)為10,NVSEG_UPPER_LIMIT_PERSEG為2,則該資源隊(duì)列的查詢最大可以使用10 * 2 = 20個(gè)virtual segment。下面的語(yǔ)句可以對(duì)該值進(jìn)行設(shè)置:
CREATE RESOURCE QUEUE adhoc2 WITH (PARENT='department3', ACTIVE_STATEMENTS=3, MEMORY_LIMIT_CLUSTER=50%, CORE_LIMIT_CLUSTER=50%, NVSEG_UPPER_LIMIT_PERSEG=2); hawq_rm_nvseg_perquery_limit是一個(gè)硬性限制,NVSEG_UPPER_LIMIT/NVSEG_LOWER_LIMIT和NVSEG_UPPER_LIMIT_PERSEG/NVSEG_LOWER_LIMIT_PERSEG的設(shè)置也不能突破hawq_rm_nvseg_perquery_limit的限制。
|