Man page - prepare(7)
Manual
PREPARE
NAMESYNOPSIS
DESCRIPTION 描 述
PARAMETERS 引 數
NOTES 注 意
COMPATIBILITY 相 容 性
譯 者
跋
NAME
PREPARE - 建 立 一 個 準 備 好 的 查 詢
SYNOPSIS
PREPARE plan_name [ ( datatype [, ...] ) ] AS statement
DESCRIPTION 描 述
PREPARE 建 立 一 個 已 準 備 好 的 查 詢 。 一 個 已 準 備 好 的 查 詢 是 伺 服 器 端 的 物 件 , 可 以 用 於 最 佳 化 效 能 。 在 執 行 PREPARE 語 句 的 時 候 , 指 定 的 查 詢 被 分 析 , 重 寫 以 及 規 劃 。 當 隨 後 發 出 EXECUTE 語 句 的 時 候 , 已 準 備 好 的 查 詢 就 只 需 要 執 行 了 。 因 此 , 分 析 , 重 寫 , 以 及 規 劃 階 段 都 只 執 行 一 次 , 而 不 是 每 次 查 詢 執 行 的 時 候 都 要 執 行 一 次 。
準 備 好 的 查 詢 可 以 接 受 引 數 : 在 它 執 行 的 時 候 替 換 到 查 詢 中 的 數 值 。 要 給 一 個 準 備 好 的 查 詢 宣 告 引 數 , 我 們 需 要 在 PREPARE 語 句 裡 包 含 一 個 數 據 型 別 的 列 表 。 在 查 詢 本 身 裡 , 你 可 以 按 照 位 置 來 引 用 這 些 引 數 , 比 如 $1, $2, 等 。 在 執 行 查 詢 的 時 候 , 在 EXECUTE 語 句 裡 為 這 些 引 數 宣 告 實 際 的 數 值 。 參 考 EXECUTE [ execute (7)] 獲 取 更 多 資 訊 。
準 備 好 的 查 詢 是 在 本 地 儲 存 的 ( 在 當 前 後 端 裡 ) , 並 且 只 是 在 當 前 資 料 庫 會 話 的 過 程 中 存 在 。 如 果 客 戶 端 退 出 , 那 麼 準 備 好 的 查 詢 就 會 被 遺 忘 , 因 此 我 們 必 須 在 被 重 新 使 用 之 前 重 新 建 立 。 這 也 意 味 著 一 個 準 備 好 的 查 詢 不 能 被 多 個 同 時 的 資 料 庫 客 戶 端 使 用 ; 但 是 , 每 個 客 戶 端 可 以 建 立 它 們 自 己 的 已 準 備 好 的 查 詢 來 使 用 。
如 果 一 個 會 話 準 備 用 於 執 行 大 量 類 似 的 查 詢 , 那 麼 已 準 備 好 的 查 詢 可 以 獲 得 最 大 限 度 的 效 能 優 勢 。 如 果 查 詢 非 常 複 雜 , 需 要 複 雜 的 規 劃 或 者 重 寫 , 那 麼 效 能 差 距 將 非 常 明 顯 。 比 如 , 如 果 查 詢 設 計 許 多 表 的 連 線 , 或 者 有 多 種 規 則 要 求 應 用 。 如 果 查 詢 的 規 劃 和 重 寫 相 對 簡 單 , 而 執 行 起 來 開 銷 相 當 大 , 那 麼 已 準 備 好 的 查 詢 的 效 能 優 勢 就 不 那 麼 明 顯 。
PARAMETERS 引 數
plan_name
給 予 這 個 特 定 的 已 準 備 好 查 詢 的 任 意 名 字 。 它 必 須 在 一 個 會 話 中 是 唯 一 的 , 並 且 用 於 執 行 或 者 刪 除 一 個 前 面 準 備 好 的 查 詢 。
datatype
已 準 備 好 查 詢 的 某 個 引 數 的 資 料 型 別 。 要 在 已 準 備 好 查 詢 內 部 引 用 這 個 引 數 , 使 用 $1, $2, 等 。
statement
任 何 SELECT , INSERT , UPDATE , 或 DELETE 語 句 。
NOTES 注 意
在 一 些 情 況 下 , PostgreSQL 為 一 個 已 準 備 好 的 查 詢 生 成 的 查 詢 規 劃 可 能 還 不 如 按 照 普 通 方 法 提 交 併 執 行 的 查 詢 生 成 的 規 劃 好 。 這 是 因 為 該 查 詢 在 被 規 劃 的 時 候 ( 也 是 最 佳 化 器 檢 視 判 斷 最 優 查 詢 規 劃 的 時 候 ) , 在 查 詢 中 宣 告 的 任 何 引 數 的 實 際 數 值 都 還 不 可 見 。 PostgreSQL 在 表 中 收 集 資 料 分 佈 的 統 計 , 而 且 可 以 利 用 查 詢 中 的 常 量 來 猜 測 執 行 查 詢 的 可 能 結 果 。 因 為 這 些 資 料 在 準 備 哪 種 帶 引 數 的 查 詢 的 規 劃 的 時 候 還 不 可 得 , 所 以 , 選 出 來 得 規 劃 可 能 是 次 好 的 。 要 檢 查 PostgreSQL 為 已 準 備 好 的 查 詢 選 取 的 查 詢 計 劃 , 使 用 EXPLAIN EXECUTE 。
有 關 查 詢 規 劃 和 PostgreSQL 為 查 詢 最 佳 化 的 目 的 收 集 的 統 計 的 更 多 資 訊 , 參 閱 ANALYZE [ analyze (7)] 文 件 。
COMPATIBILITY 相 容 性
SQL 標 準 包 含 一 個 PREPARE 語 句 , 但 是 它 只 用 於 嵌 入 的 SQL 客 戶 端 。 PostgreSQL 實 現 的 PREPARE 語 句 的 語 法 也 略 有 不 同 。
譯 者
Postgresql 中 文 網 站 何 偉 平 <laser@pgsqldb.org>
跋
本
頁 面 中 文 版 由
中 文 man 手 冊 頁 計
劃 提 供 。
中 文 man 手 冊 頁 計
劃 :
https://github.com/man-pages-zh/manpages-zh