日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

當您執行DELETE、INSERT、SELECT 或 UPDATE 命令時,PolarDB PostgreSQL版(兼容Oracle)會生成一組執行計劃。在分析這些執行計劃之后,PolarDB PostgreSQL版(兼容Oracle)將選擇可以在最短的時間內返回結果集的執行計劃。

PolarDB PostgreSQL版(兼容Oracle)選擇執行計劃主要從以下幾個因素考慮:

  • 數據處理操作的預估執行成本。

  • 分配給 postgresql.conf 文件 Query Tuning 部分中參數的參數值。

  • ANALYZE命令收集的列統計信息。

通常情況下,PolarDB PostgreSQL版(兼容Oracle)將選擇執行成本最低的計劃。但是您可以這個過程中使用optimizer hint來影響最終的選擇, 即使用Optimizer Hint。

Optimizer Hint是指緊跟在 DELETE、INSERT、SELECT 或 UPDATE 命令后,類似注釋的語法中的指令。注釋中的關鍵字指示PolarDB PostgreSQL版(兼容Oracle)在生成結果集時選擇或避免選擇特定的計劃。

語法

Optimizer Hint可包含在下面的任一形式中。

{ DELETE | INSERT | SELECT | UPDATE } /*+ { hint [ comment ] } [...] */
 statement_body

{ DELETE | INSERT | SELECT | UPDATE } --+ { hint [ comment ] } [...]
 statement_body
說明
  • 加號 (+) 必須緊跟在 /* 或 -- 之后,中間不能添加任何空格,否則無法將對應的內容解讀為hints。

  • 以上兩種形式中,hint和注釋的展現形式略有不同:第一種語法形式,hint和注釋可以跨越多行;第二種語法形式要求所有hint和注釋必須在一行中。但是兩種形式中,除了hint和注釋的其余部分,都必須另起一行。

  • 推薦與EXPLAIN命令一起使用,可確保hint形式正確。

參數

參數

說明

hint

優化器提示指令。

comment

帶有附加信息的字符串。請注意,注釋中可以包含哪些字符存在限制。通常,comment 只能包含字母、數字、下劃線、美元符號、數字符號和空格字符。這些字符還必須符合標識符的語法。如果注釋并非這種形式,將忽略任何后續hint。

statement_body

DELETE、INSERT、SELECT 或 UPDATE 命令的其余部分。

注意事項

  • 如果通過參數設置禁用了某種執行計劃類型,那么即使在hint中指定了該計劃,也不會使用此計劃,除非沒有其他可行的選項。參數示例: enable_indexscan、enable_seqscan、enable_hashjoin、enable_mergejoin和 enable_nestloop,均為布爾參數。

  • 由于hint是嵌入在注釋中的,如果hint拼寫錯誤,或者視圖、表或列名稱等hint的任何參數拼寫錯誤,或者 SQL 命令中不存在該參數,此時不會提示任何語法錯誤,只會忽略整個hint。

  • 如果在 SQL 命令中使用了別名表示表或視圖名稱,則必須在hint中使用別名,而不是原始對象名。例如,在命令 SELECT /*+ FULL(acct) */ * FROM accounts acct ..., acct 中,必須在 FULL hint中指定 accounts 的別名,而不是表名 accounts。

  • 不建議在生產環境中使用optimizer hint,因為生產環境中的表數據一直會發生變化。

以下各節更詳細地介紹Optimizer Hint。