Oracle Database 12c DBA文官手册(第8版)——第5章 开发和实现应用程序

1 调整设计:最佳实践

        1.1做尽可能 少的工作

            应该简化应用程序每个步骤所涉及的过程。强调应用程序的功能和满足业务性能需求的能力。

            1、应用程序设计中努力消除逻辑读

                  如果多个用户需要读取相同的数据,应将其存储在表中或程序包变量中。

                  修改应用程序设计,以消除不必要的命令执行。

                  缓冲区极高命中率可标识为执行过多的逻辑读。

                  在11g和12c中最好使用基于等待的调整。

            2、 应用程序设计中努力避免对数据库的往返访问

                   在数据库服务器、应用服务器和终端计算机之间的来回通信是应该调整的目标。

                   在本地变量中存储经常需要的值避免重复查询数据库。

            3、对于报告系统,按照用户的查询方式存储数据

                  创建维护物化视图或报告表避免为用户作数据格式的转换。

            4、避免重复的连接到数据库

                  保持数据库连接为打开状态并重复使用

            5、正确使用索引

                  在OLTP应用程序中不应该使用位图索引

                  如果某列具有非常少的不同值勿建索引

        1.2 做尽可能 简单的工作

              1、在原子级执行

                    对于执行批处理操作应创建临时表存储每个步骤的数据

                    将操作分解为较小的组成部分能解决性能问题

               2、消除不必要的排序

                    SORT ORDER BY是集合操作完成前不会返回数据

                    UNION也执行排序建议以UNION ALL代替之

              3、消除使用撤消操作的需求

                     应用程序设计应避免频繁查询其它人可能会同时改变的数据

        1.3 告诉数据库需要知道的内容

                1、保持更新统计

                    默认情况下ASG在(维护窗口)每晚10点至6点及周末全天收集统计信息

                    批量加载的表大小增加了10%以上时可手动收集

                    12c允许在模式表或表的分区中并行收集统计信息

                    手动收集前的会话级或系统及参数的使用以优化性能

                2、在需要的地方使用提示

                      基于成本优化器(CBO)选择最有效的查询执行路径

        1.4 最大化环境中的吞吐量

                1、使用适当的数据库块大小8KB

                2、设计吞吐量而非磁盘容量

                3、避免使用临时段

                      尽可能 在内存中执行所有排序

         1.5 分开处理数据

                1、使用分区

                2、使用物化视图

                3、使用并行化

         1.6 正确测试

                1、使用大量数据测试

                      拆分叶块和维护索引时可能引发争用

                2、使用许多并发用户测试

                      确认并发用户是否引起死锁、数据一致性和性能问题

                3、测试索引对加载次数的影响

                      添加一个索引会带来DML操作的开销

                4、所有的测试可重复

                      必须能重建使用的数据集、执行动作、预期结果和记录的结果

                      未遵循测试的标准常见原因是时间和成本

        1.7 标准的可交付成果

                1、实体关系图

                    表明组成应用程序的实体之间的标识关系

                2、物理数据库图

                    从实体中生成的物理表及其属性生成的列

                3、空间需求初始值

                4、查询和事务处理的调整目标

                    必须定义和批准应用程序中使用最多的每个操作的响应时间

                    建立合理目标和伸展目标

                    根据不同目标建立查询和事务性能的控制边界

                5、安全需求

                    指定应用程序使用的账户结构及相关授权

                6、数据需求

                     定义数据输入和检索方法

                    描述应用程序的备份和恢复需求并与企业数据库备份计划比较

                7、查询执行计划

                    数据库执行查询所需要完成的步骤

                8、验收测试过程


                

            

猜你喜欢

转载自blog.51cto.com/551173/2318258
今日推荐