程序开发注意4项,你知道吗?
程序开发注意以下4项,
1:它们应该最小化请求数据库中数据的次数。可以使用分布的数据库对象(如物化视图)来帮助减少查询数据库的次数。
2:相同应用程序的不同用户应该以非常类似的方式查询数据库。数据的共享不仅包括检索的表和行,还有使用的查询。如果查询相同,则查询的解析版本就可能已经存在于共享的SQL 池中,从而减少处理查询所需的时间量。
3:应该限制使用动态SQL。按照定义,动态SQL 直到运行时才被定义。应用程序的动态SQL 第一次可以选择几行,第二次对有序表执行若干完整的表扫描,第三次以不注意的方式执行迪卡尔连接(或在select 语句中使用cross join 关键字有意识地执行迪卡尔连接)。另外,没有办法可以保证动态生成的SQL
语句在语法上是正确的,直到运行时。动态生成的SQL 是一把双刃剑:既具有根据用户输入动态创建SQL的灵活性,又可能对内部应用程序和外部网站应用程序产生SQL 攻击。
4:应该最小化打开和关闭数据库中会话的次数。如果应用程序重复打开会话,执行少量的命令,然后关闭会话,则SQL 的性能就可能是整体性能中的次要因素。会话管理可能比应用程序中的其他任何步骤都花费更多的时间。
2:相同应用程序的不同用户应该以非常类似的方式查询数据库。数据的共享不仅包括检索的表和行,还有使用的查询。如果查询相同,则查询的解析版本就可能已经存在于共享的SQL 池中,从而减少处理查询所需的时间量。
3:应该限制使用动态SQL。按照定义,动态SQL 直到运行时才被定义。应用程序的动态SQL 第一次可以选择几行,第二次对有序表执行若干完整的表扫描,第三次以不注意的方式执行迪卡尔连接(或在select 语句中使用cross join 关键字有意识地执行迪卡尔连接)。另外,没有办法可以保证动态生成的SQL
语句在语法上是正确的,直到运行时。动态生成的SQL 是一把双刃剑:既具有根据用户输入动态创建SQL的灵活性,又可能对内部应用程序和外部网站应用程序产生SQL 攻击。
4:应该最小化打开和关闭数据库中会话的次数。如果应用程序重复打开会话,执行少量的命令,然后关闭会话,则SQL 的性能就可能是整体性能中的次要因素。会话管理可能比应用程序中的其他任何步骤都花费更多的时间。