![]() |
1
8
我相信,plpgsql提供了更大的类型安全性,如果要使用两个类似类型的不同列(如varchar和text或int4和int8)执行操作,则必须执行显式强制转换。这一点很重要,因为如果需要让存储过程使用索引,Postgres要求类型在连接条件之间完全匹配(我认为编辑:对于相等性检查也是如此)。 在其他语言中可能有这样的功能,但是我没有使用它们。无论如何,我希望这能为你的调查提供一个更好的起点。 |
![]() |
2
6
plpgsql与sql非常好地集成-源代码应该非常干净和可读。对于像pljava或plpython这样的SQL语言,SQL语句必须是独立的——SQL不是语言的一部分。所以你得多写点代码。如果您的过程有很多SQL语句,那么plpgsql过程应该更干净、更短、更快。当您的过程没有SQL语句时,来自外部语言的过程可能更快——但是外部语言(解释)需要一些时间进行初始化——所以对于简单的任务,SQL或PLPGSQL语言的过程应该更快。 当您需要一些功能(如访问网络、访问文件系统)时,可以使用外部语言。- http://www.postgres.cz/index.php/PL/Perlu_-_Untrusted_Perl_%28en%29 我知道-人们通常使用PL语言(SQL、PLPGSQL、PLPerl)或(SQL、PLPGSQL、PLpython)的组合。 |
![]() |
3
2
如果不进行实际的测试,我希望plpgsql比其他语言更高效,因为它很小。尽管如此,请记住,如果一个函数足够简单,可以用SQL编写,那么SQL函数可能比PLPGSQL更快。 |
![]() |
jimangel2001 · 在大小写表达式中指定子查询的值 3 年前 |
![]() |
Ian · 如何将复合类型传递给PL/pgsql函数? 7 年前 |
![]() |
rxmnnxfpvg · 使用前一DO子句中的变量 7 年前 |
![]() |
Coyolero · 当第一次选择不返回行时,从函数返回默认行 7 年前 |
![]() |
rxmnnxfpvg · ASSERT与PostgreSQL的示例使用 7 年前 |
![]() |
Arun · “尝试选择时,在“,”处或附近出现语法错误” 7 年前 |
![]() |
Lenijas · 安全定义器不在内部工作,而不是触发? 7 年前 |
![]() |
Ogre · 我们如何使用约束来确保数组中没有空值? 7 年前 |