阅读以下关于数据库性能优化方面的叙述,回答问题1至问题4。 某企业核心业务系统运行性能不佳,尤其是针对数据库的操作,响应时间过长。 为此,该企业专门召开了解决该问题的专家研讨会。在会上刘工指出,当前硬件设备的价格比较低廉,只需要对数据库服务器的

admin2009-04-07  37

问题 阅读以下关于数据库性能优化方面的叙述,回答问题1至问题4。
   某企业核心业务系统运行性能不佳,尤其是针对数据库的操作,响应时间过长。
   为此,该企业专门召开了解决该问题的专家研讨会。在会上刘工指出,当前硬件设备的价格比较低廉,只需要对数据库服务器的硬件设备进行升级,同时对数据库管理系统和操作系统中的相应参数进行调整就可以了;王工建议对应用系统中使用的SQL语句进行调优,针对每条SQL语句都建立对应的索引;张工认为该业务系统中存在大量的数据查询操作,更新操作不多,尤其是存在大量的只读查询操作,应该针对这一点进行优化。
   该企业采取了专家的部分建议,但优化的结果仍然不尽如人意,通过专门的监控,发现数据库管理系统中建立的索引存在问题。

选项

答案上述各个专家的建议均不完整。 基于数据库的业务系统,一般在进行调优时,需要具体问题具体分析。全面的分析方案应该包括以下三方面内容: (1)对系统中的业务数据进行搜集,判断当前硬件设备是否足够。判断数据库管理系统和操作系统的相应参数设置是否合理。 (2)对应用系统进行分析,对业务系统的类型进行确认,如联机事务处理和数据仓库对数据库的要求差异很大。 (3)对应用系统中的SQL语句、索引等进行分析。

解析 本题涉及信息系统中的数据库调优。目前绝大多数的大、中型信息系统都使用数据库作为数据存储,而信息系统的性能优化是一个综合性的问题,需要综合考虑硬件设备、操作系统、数据库和应用系统,
   基于数据库的信息系统,一般在进行调优时,需要具体问题具体分析。全面的分析方案应该包括以下三方面内容:
   (1)对系统中的业务数据进行搜集,判断当前硬件设备是否足够。判断数据库管理系统和操作系统的相应参数设置是否合理。例如数据库中SGA中的参数,操作系统中共享内存等参数、数据库中数据与索引物理存储的分离等。
   (2)对应用系统进行分析,对业务系统的类型进行确认,如联机事务处理和数据仓库对数据库的要求差异很大。OLTP和OLAP的类型也有很大的差异。
   (3)对应用系统中的SQL语句、索引等进行分析。
   本题中主要问题涉及的是第三方面的内容,即对应用系统中的SQL语句、索引等进行分析。
   SQL语句优化在信息系统调优中所占比例较大。一般来讲,一个信息系统中不同 SQL语句的数目往往在200~400条左右,在优化时,需要对每条SQL语句的性能进行测量,对性能表现不佳的SQL语句进行调整。当前也已经出现了专门的SQL语句优化的工具,可以辅助开发人员。SQL语句优化的常见策略如下:
   (1)建立物化视图或尽可能减少多表查询。
   (2)以不相干子查询替代相于子查询。
   (3)只检索需要的列,无需将表中所有的列全部检索。
   (4)用带IN的条件子句等价替换OR子句。
   (5)经常提交COMMIT,以尽早释放锁。
   一般来讲,针对查询语句,建立适当的索引以提高查询效率。但索引创建的是否合适,最终由数据库优化器来决定,因此在索引创建中也需要慎重考虑和实际测量。如果建立索引不当,数据库管理系统将会不利用已经建立的索引,而采取全表扫描。
   索引调整时还需要考虑如下原则:
   (1)如果更新操作成为系统瓶颈,因为每次更新操作会重建表的索引,因此需要考虑删除某些索引。
   (2)选择适当的索引类型。例如,如果经常使用范围查询,则B树索引比散列索引更加高效。
   (3)将有利于大多数据查询和更新的索引设为聚簇索引。
   同样,对于不同类型的应用系统(类型划分根据对数据库的操作类型而言,例如 OLTP等),在数据库操作中,可采用的优化方法也有所不同。对于只读数据,常见的处理方法如下:
   (1)数据量小的常量类型数据,可以考虑不存储在数据库中,而是通过程序常量的方式解决。
   (2)需要存储在数据库中的数据,可以考虑采用物化视图。
   (3)数据存储时可以考虑适当的数据冗余,以减少数据库表之间的连接操作,提高查询效率。
   针对数据的特点,采取特定的索引类型。例如位图索引等。
从上述的分析可以看出,基于数据库的信息系统的调优问题是一个比较复杂的问题,涉及到的硬件、操作系统、数据库管理系统和应用系统本身,即使在应用系统本身的调优上,也需要根据应用系统的类型、数据的类型等进行具体的考虑。
转载请注明原文地址:https://jikaoti.com/ti/LR67FFFM
0

最新回复(0)