*******服务器硬件上的考虑
添加新的CPU,扩展系统内存或者添加更多的磁盘会得到有效的性能增强,但只能在短时间内起到作用,当应用数据量持续上涨,工作量负荷不断升高时,又会面临同样的性能问题。不好的数据库设计,不恰当的SQL都会让硬件投入显的无力。
*******系统可扩展性设计
可扩展性是指系统能够处理更多有效工作载荷的能力。一般包括如下几个方面:
1:存储系统未以最佳I/O配置策略进行生产实施,造成了低效率。
2:内存管理中由于用户大量申请内存导致整体服务器过度的内存交换。
3:糟糕的事务设计造成了锁等待和串行化事务问题。
4:不良的数据库设计造成执行代价昂贵的SQL;
5:不良的SQL和不恰当的索引设计导致应用系统I/O总量上的巨大开销。
6:不良的SQL和不恰当的索引设计导致数据库内部维护的巨大开销。
7:应用在生产环境中SQL实际执行计划与预计SQL执行计划严重偏离。
对系统可扩展性具有影响的诸要素:
1:SQL应用代码问题(中间件效率问题,数据库效率问题)
2:I/O设备冲突(存储子系统效率)
3:内存分配问题(页面交换问题)
4:资源冲突问题(资源等待问题)
5:网络瓶颈(网络冲突,网络稳定性)
***********系统结构设计中的优化要素
大多数应用可以拆分成三个组成部分:
1:用户接口(UI):用户界面表现,用于用户数据输入,业务逻辑调用等操作。该部分包括:(1)定义简洁有效的工作界面。(2)定义简单明快的界面操作流程
2:中间件业务逻辑:实现业务流程和业务目标的过程化计算,进行数据库访问,生成用户接口等。
3:数据库业务逻辑:实现业务流程和业务目标的数据库计算部分,如把数据存储到Oracle表中,根据条件修改数据等。
结构方案设计需要不断跌代重复考虑如下问题:
问题一:系统目前和未来将支持的用户数。
这里不考虑少量用户数访问的情况。如果是大量用户的访问模式,例如internet 访问情况下的数据库访问,由于任何人无法预计用户数,必须依赖某种缓冲机制来防止服务器资源的耗尽。例如可以用负载均衡的方式来降低服务器压力(构建RAC,构建Stream或DataGuard同步复制系统),使用中间件方式将用户访问分层(构建WebLogic集群)。
问题二:用户访问的数据量和动态数据量分布
用户数据访问量的大小以及数据的动态程度将直接影响到数据库的逻辑设计方式(cdm)和物理实施方法(pdm)。表的设计,索引的设置将是直接受影响的元素。通常在数据库实体设计时,采用表的垂直分割技术和表的数据分区技术来进行针对数据量要素的屏蔽。
[@more@]来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24214296/viewspace-1035267/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/24214296/viewspace-1035267/