2011-11-01 81 views

回答

5

定义,from wikipedia

存储过程是提供给应用程序 访问关系数据库系统的子程序。

的一般存储过程

优势,from wikipedia

开销:由于存储过程中的语句直接存储在 数据库中,他们可能会删除编译开销 的全部或部分是在软件应用程序 将内联(动态)SQL查询发送到数据库的情况下通常需要使用。 (...)

避免网络流量:主要优势在存储过程中 是,他们可以在数据库引擎中直接运行。在 生产系统中,这通常意味着程序完全在专门的数据库服务器上运行 ,该服务器可直接访问要访问的数据。这样做的好处是可以完全避免网络通信成本。这对于复杂的一系列SQL语句尤其重要。

业务逻辑封装:存储过程允许程序员 嵌入业务逻辑数据库中的API,它可以简化 数据管理,减少需要的逻辑 客户端程序的其他地方进行编码。 (...)

代表团访问权限:在许多系统中,存储过程可以 授予访问权限给谁执行这些程序 用户不直接对数据库。

SQL注入攻击的一些保护:用于防止注入攻击的存储过程可以是 。即使攻击者插入SQL命令,存储过程参数 也将被视为数据。 (...)

在PostgresSQL存储过程被称为用户定义函数。 定义例如:

CREATE FUNCTION somefunc(quantity integer) RETURNS integer AS $$ 
DECLARE 
    myvariable integer := 2; 
BEGIN 
    RETURN quantity * myvariable; 
END; 
$$ LANGUAGE plpgsql; 

(您可以使用其他语言PostgreSQL中定义存储功能)

调用例如:

SELECT somefunc(100); 

更多信息:http://www.postgresql.org/docs/9.1/static/server-programming.html

+1

在PostgreSQL存储过程被称为“用户定义的函数”。 – filiprem

2

PostgreSQL的运行存储过程以十几种编程语言,包括Jav a,Perl,Python,Ruby,Tcl,C/C++和它自己的 PL/pgSQL,它类似于Oracle的PL/SQL。

使用存储过程的取决于你的需求和依赖于你的程序的逻辑,在我看来,存储过程只是在某些情况下非常有用,而不是以往任何时候都...

我用存储已经过程在多数据库服务器应用程序中,在这种情况下,使用存储过程可能非常有用,例如,如果您有一个查询需要修改以便在另一个数据库服务器类型中运行,那么您可以编写一个存储过程,并从程序中调用它,确保它运行并检索想要的结果集,而不会对客户端代码进行任何更改。

要了解如何在PostgreSQL中创建存储过程,请参阅文档this page

0

主要优点是减少网络流量开销。存储过程与业务逻辑或逻辑轮胎几乎相同(不完全)。它的主要优势在于制定动态的企业应用程序。仅仅因为缺乏动态的数据库结构,您可以发现100多件好的产品失败。存储过程,函数,触发器,数据库的序列,索引和关系性质是创建优秀应用程序的真正关键。我公司一直试图通过存储过程来减少客户端逻辑层。大多数关键逻辑都存储在存储过程中,这使得程序员和测试人员感到高兴并满足他们的时间表。

相关问题