暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 19C 开发具有绑定变量的应用程序以提高安全性和性能

原创 Asher.HU 2021-02-04
533

Real-World Performance团队创建了有关如何优化Oracle数据库应用程序中的游标共享的准则。

本节包含以下主题:

 

20.4.1开发具有绑定变量的应用程序以提高安全性和性能

Real-World Performance性能小组强烈建议所有企业应用程序都使用绑定变量。

Oracle数据库应用程序旨在使用绑定变量编写。避免应用程序设计导致大量用户发布动态的,未共享的SQL语句。

每当Oracle数据库在库缓存中找不到与语句匹配的内容时,它都必须执行硬解析。尽管使用文字开发应用程序存在危险,但并非所有实际应用程序都使用绑定变量。开发人员有时会发现编写使用文字的程序更快,更轻松。但是,减少开发时间不会在部署后导致更好的性能和安全性。

视频:


使用绑定变量的主要好处如下:

  • 资源效率

    每次执行之前编译程序都不会有效地利用资源,但这实际上是Oracle Database在执行硬解析时所做的事情。数据库服务器必须消耗大量的CPU和内存来创建游标,生成和评估执行计划,等等。通过使数据库共享游标,软解析将消耗更少的资源。如果应用程序使用文字而不是绑定变量,但是每天仅执行少量查询,则DBA可能不会将额外开销视为性能问题。但是,如果应用程序每秒执行数百或数千个查询,则额外的资源开销很容易将性能降低到不可接受的水平。使用绑定变量可使数据库仅执行一次硬解析,而不管语句执行了多少次。

  • 可扩展性

    当数据库执行硬解析时,数据库将花费更多时间来获取和保持共享池和库高速缓存中的锁存器。锁存器是低级序列化设备。数据库在共享内存中锁存结构的时间越长和越频繁,这些锁存的队列就越长。当多个语句共享同一执行计划时,对闩锁的请求和闩锁的持续时间将下降。此行为增加了可伸缩性。

  • 吞吐量和响应时间

    当数据库避免不断重新分析和创建游标时,其更多时间都花在了用户空间上。真实世界性能小组发现,更改文字以使用绑定通常会导致吞吐量和用户响应时间提高几个数量级。

    视频:

  • 安全

    防止SQL注入攻击的唯一方法是使用绑定变量。恶意用户可以通过将代码“注入”到应用程序中来利用连接字符串的应用程序。

也可以看看:

《 Oracle数据库PL / SQL语言参考》提供了一个应用程序示例,该应用程序修复了文字造成的安全漏洞

 


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论