日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

PREPARE

發布時間:2023/12/13 综合教程 31 生活家
生活随笔 收集整理的這篇文章主要介紹了 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

總結

以上是生活随笔為你收集整理的PREPARE的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。