發(fā)布時間:2015-11-23 16: 57: 09
Navicat for PostgreSQL 是一套易于使用的圖形化數(shù)據(jù)庫管理工具??墒褂脧妱诺?SQL 編輯器創(chuàng)建和運行查詢、函數(shù)和使用多功能的數(shù)據(jù)編輯工具管理數(shù)據(jù)。本教程將詳細介紹 Navicat for PostgreSQL 函數(shù)高級屬性。
Navicat for PostgreSQL 最新版下載地址:http://www.whtianwei.cn/xiazai_postgresql.html
擁有者:函數(shù)的擁有者。需要注意的是,僅支持 PostgreSQL 8.0 或以上版本。
語言:函數(shù)實施的語言名??赡苁?SQL、 C、內部或用戶定義過程語言名。為了向后兼容,名可能是用單引號括著。
揮發(fā)性:這些屬性告知查詢優(yōu)化器有關函數(shù)的性能,最多可指定一個選擇。如果這些沒有出現(xiàn),默認的是 VOLATILE。
● IMMUTABLE:函數(shù)不能修改數(shù)據(jù)庫,當給予相同的引數(shù)值時,總是返回相同的結果,也就是說,它不會做數(shù)據(jù)庫查找或以其它方式使用信息,不直接出現(xiàn)在其引數(shù)列表。如果使用這個選項,任何函數(shù)調用的全部常數(shù)引數(shù)可以立即替換函數(shù)值。
● STABLE:函數(shù)不能修改數(shù)據(jù)庫,單一表掃描它時,會為相同的引數(shù)值一致地返回相同的結果,但其結果可能會改變整個 SQL 語句,函數(shù)結果取決于數(shù)據(jù)庫查找、參數(shù)變量(例如當前時區(qū))等選擇功能。此外,請注意函數(shù)的 current_timestamp 家族限制為穩(wěn)定,因為它們的值不會在事務中改變。
● VOLATILE:函數(shù)值能在單一表掃描中改變,因此沒有優(yōu)化。相對少數(shù)數(shù)據(jù)庫函數(shù)是易變的,有些例子是 random()、 currval()、 timeofday()。但請注意,任何具有副作用的函數(shù)必須分類為易變,即使其結果是相當明確的,以防止調用不斷優(yōu)化,例子是 setval()。
定義者安全性:指定函數(shù)運行時使用創(chuàng)建它的用戶權限。
返回集:表示函數(shù)將返回一組項目,而不是一個單一項目。
嚴格:表示每當函數(shù)的引數(shù)是 null 時,它總是返回 null。如果此參數(shù)被指定,當有 null 引數(shù)時,函數(shù)不會運行。相反,一個null 結果會自動假定。
估計耗費:一個正數(shù)來估計函數(shù)的運行耗費,使用 cpu_operator_cost 的單位。如果函數(shù)返回一個集,這是每返回列的耗費。如果耗費沒有被指定,C 語言及內部函數(shù)假定 1 單位,其他語言為 100 單位。較大的值策劃者應盡量避免比需要過多的評估函數(shù)。需要注意的是,僅支持 PostgreSQL 8.3 或以上版本。
估計行:一個正數(shù)來估計策劃者應預期返回的行數(shù),這只允許當函數(shù)被聲明為返回一個集,僅支持 PostgreSQL 8.3 或以上版本。
配置參數(shù):當函數(shù)輸入時設置到指定值的配置參數(shù),當函數(shù)離開時還原到以前的值,僅支持 PostgreSQL 8.3 或以上版本。
關于 Navicat for PostgreSQL 的更多相關教程,可參考 Navicat 官網(wǎng)。
展開閱讀全文
︾