简单的SQL查询和写入PL / SQL到SQL查询之间的区别?

时间:2016-08-04 12:53:48

标签: sql plsql

在最近的一次采访中,采访者问道:

“您是否会编写一个简单的SQL查询或将该查询作为存储过程写入PL / SQL中。”

我的问题是,有什么不同,何时应该使用?

3 个答案:

答案 0 :(得分:2)

SQL查询通常比PL / SQL查询更快,因为Oracle不必更改引擎来执行。

答案 1 :(得分:2)

要理解这一点,您需要了解上下文切换。编写简单的sql时,只播放Oracle SQL引擎。但是当您在PL / SQL中编写sql语句时,SQL引擎会将上下文切换到PL / SQL引擎,因此会执行该语句。上下文切换越多,性能越差。请查看以下链接,您可以更多地了解上下文切换。

  

http://www.oracle.com/technetwork/issue-archive/2015/15-jul/o45plsql-2543984.html

答案 2 :(得分:0)

基本上没有区别,因为SQL引擎无论主语言如何都执行查询 - 它可能是所有关心的COBOL。

额外组件略有开销(您调用该过程并执行SQL,而不是直接执行SQL),但该步骤通常可以以微秒为单位进行测量。 (一旦程序执行了多个操作 - 例如两个查询 - 那么优势就在于程序。)

存在权限影响,因为存储的权限存储PL / SQL在独立SQL时无法看到角色。