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

Oracle 19C 设计应用程序的准则(建模&编写)

原创 Asher.HU 2021-02-04
542

2.1设计应用程序的准则

获得良好的SQL性能的关键是在设计应用程序时要考虑性能。

2.1.1数据建模准则

数据建模对于成功的应用程序设计很重要。

您必须以代表业务实践的方式执行数据建模。关于正确的数据模型可能会引起激烈的争论。重要的是将最大的建模工作应用于那些受最频繁的业务交易影响的实体。

在建模阶段,人们很想花太多时间对非核心数据元素进行建模,从而导致开发提前期增加。然后,使用建模工具可以快速生成模式定义,并且在需要快速原型时很有用。


2.1.2编写高效应用程序的准则

在系统开发的设计和体系结构阶段,请确保应用程序开发人员了解SQL执行效率。

为了实现此目标,开发环境必须支持以下特征:

  • 良好的数据库连接管理

    连接到数据库是一项昂贵的操作,无法扩展。因此,最佳实践是最大程度地减少与数据库的并发连接数用户在应用程序初始化时进行连接的简单系统是理想的。但是,在基于Web的或多层的应用程序中,其中应用程序服务器将数据库连接复用到用户,这种方法可能很困难。使用这些类型的应用程序,将它们设计为池数据库连接(数据库连接池-即长),而不是为每个用户请求重新建立连接。

  • 良好的cursor使用和管理

    维护用户连接对于最小化系统上的解析活动同样重要。解析是解释SQL语句并为其创建执行计划的过程。这个过程有很多阶段,包括语法检查,安全检查,执行计划生成以及将共享结构加载到共享池中有两种类型的解析操作:

    • 硬解析

      第一次提交SQL语句,但在共享池中找不到匹配项。硬解析是最耗费资源且不可扩展的,因为它们执行解析中涉及的所有操作。

    • 软解析

      首次提交SQL语句,并在共享池中找到匹配项。匹配可以是另一个用户先前执行的结果。SQL语句是共享的,这对于性能而言是最佳的。但是,软解析不是理想的,因为它们仍然需要语法和安全检查,这会消耗系统资源。

    由于应尽可能减少解析,因此应用程序开发人员应设计其应用程序以解析一次SQL语句并执行多次这是通过游标完成的。有经验的SQL程序员应该熟悉打开和重新执行游标的概念。

  • 有效使用绑定变量

    应用程序开发人员还必须确保SQL语句在共享池中共享。为了实现此目标,请使用绑定变量来表示查询在执行之间变化的部分。如果不这样做,则该SQL语句很可能仅被解析一次,而不会被其他用户重复使用。为了确保SQL是共享的,请使用绑定变量,并且不要在SQL语句中使用字符串文字。例如:

    带有字符串文字的语句:

    SELECT * 
    FROM   employees 
    WHERE  last_name LIKE 'KING';
    

    具有绑定变量的语句:

    SELECT * 
    FROM   employees 
    WHERE  last_name LIKE :1;
    

    以下示例显示了在一个简单的OLTP应用程序上的一些测试的结果:

    Test                         #Users Supported
    No Parsing all statements           270 
    Soft Parsing all statements         150
    Hard Parsing all statements          60
    Re-Connecting for each Transaction   30
    

    这些测试是在四CPU计算机上进行的。随着系统上CPU数量的增加,差异也随之增加。

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

评论