0
我創建了一個表Year1並使用Generate_series將數據插入到表中。greenplum中的表掃描和seq掃描有什麼區別
DROP TABLE IF EXISTS YEAR1;
CREATE TABLE YEAR1
(
ID BIGSERIAL NOTNULL,
DAT_YEAR INTEGER
);
INSERT INTO YEAR1 (DAT_YEAR)
SELECT GENERATE_SERIES(1,10000);
創建和插入數據後,我跑到下面的查詢與傳統和PQO優化
SET OPTIMIZER=OFF;
EXPLAIN
SELECT MAX(DAT_YEAR) FROM YEAR1;
SET OPTIMIZER=ON;
EXPLAIN
SELECT MAX(DAT_YEAR) FROM YEAR1;
下面是查詢計劃我
有人能解釋是Seq掃描和Table Scan之間的區別。我聽說兩者都是一樣的。如果兩者都相同,那麼爲什麼成本是不同的。
如果我插入0.1M數據到YEAR1表再表掃描的成本並沒有改變,但改變的序列掃描
如何知道哪些優化器在這些情況下最好?我們是否必須比較兩個優化器的執行計劃並基於此決定? –
你是說表掃描的成本將是相同的,無論表中的記錄數量是多少? –
前進的計劃是使用新的優化器。 GP5將默認啓用優化器,如果遇到無法處理的內容,它將回退到默認規劃器。 是的,由於編碼和計劃生成的差異,優化器的一些成本固定(基於大小)。 –