我去年中旬负责了一个电子政务的项目,项目从2006年底进行开发,经历了1期和2期,对于1期的开发自己是主要的编码人员,2期自己负责项目,架构是 osworkflow(其他公司的产品),struts+spring+hibernate,prototype,用到都是现在比较成熟的开源技术,不过其实开源给与我们带来了很大的隐患和烦恼,这个项目是jboss作为web服务器,数据库的用的sql server,用到了集群和负载均衡技术。
从去年到今年年初运行很稳定,基本没有发生什么异常状况,但是到了年后,由于年前在原来的基础上,有上了20个流程,4大模块,使得web服务器和数据库服务器的压力增大,经常会发生内存溢出,首页面白板,宕机的状况。
当时我手底下的人都被分配到了其他的项目组,我们公司没有固定的项目组成员,一个项目中途都可以调走人,所以自己也习惯了,这个时候就是自己对项目进行优化和性能提高的时候。
这里给大家说的是一个数据库设计的问题,其他如jboss内存溢出,数据库分区优化,数据库索引优化以后将陆续为大家展开,当然这只是自己的经验之谈,很多地方肯定有不对的地方,望大家指出。
这个项目有一个模块是 公告信息,并且涉及到 每个用户是否察看过 公告信息,没有察看会有new图标,察看过了new会消失,当时设计的时候遵循了数据库的范式,因为该项目用户大概300人,每天的发布的公告信息大概有30多个,公告信息的业务表 增长不大,而中间的查看信息表每天大概300*30地记录递增,因为运行了1年多,大概产生了4000000记录,级联查询语句查询每个人的消耗sql 的资源时间是 10多秒,表结构如上传的图片,为此把标示表干脆省下来,在业务表加上state字段,初始化的时候存储了所有用户得id信息,当用户看过该条公告,id就删除,虽然违背了数据库设计的范式要求,但是确实提升了性能。
其实有一个问题我现在也很奇怪,就是微软在sql server引擎的设计上,该项目的数据库服务器 4g得内存,sql server 在运行1个月的时候,会战用1.7--1.9g的内存容量,i/o成为了数据库的性能最大的瓶颈,当时自己还找了probe,和loadrunner进行了测试,没有发现连接池没有关闭的问题。查询资料。上面说,微软在设计上就是这样,令我很疑惑。也望大家给与意见。
[img][/img]
- 描述: 表结构,简单的图片
- 大小: 18.5 KB
分享到:
相关推荐
### 数据库设计经验总结 #### 一、设计数据库之前的准备 **1.1 考察现有环境** 在设计新数据库之前,深入了解当前环境是非常重要的一步。这包括但不限于研究现有系统的架构、流程以及存在的问题。大多数情况下,...
数据库设计是IT行业中至关重要的一个环节,它直接影响到软件系统的性能、稳定性和可维护性。在数据库设计过程中,有许多经验和技巧需要掌握。以下是对给定文件内容的详细解读: 1. **设计数据库之前** 在设计...
### 数据库设计之——数据库设计经验谈 在当今数字化时代,数据成为了企业运营的重要组成部分,而数据库则是管理和存储这些数据的核心工具。一个优秀的数据库设计能够极大地提升系统的性能、可靠性和可扩展性。本文...
例如,Sybase的PowerDesign是一个强大的工具,支持多种语言和数据库连接,是进行数据库设计的良好选择。同时,参考专业书籍,如《数据模式资源手册》,可以获取丰富的数据建模知识和示例。 在设计数据库表时,需要...
这份"数据库设计经验谈"涵盖了从前期准备到具体实施的多个关键步骤,以下是对这些内容的详细阐述: 1. **设计数据库之前** 在开始设计之前,需要深入考察现有的环境,理解当前系统的工作方式、数据流转以及存在的...
在开始设计数据库之前,首先要对现有的环境进行深入的考察。这包括分析现有的数据存储方式、数据流、以及系统间的交互。理解这些可以帮助你确定新设计的数据库应如何适应或改进现有的工作流程。同时,定义一套标准的...
### 数据库设计经验谈 #### 第1部分-设计数据库之前 **考察现有环境** 在启动新的数据库项目之前,深入分析当前环境是至关重要的。很多时候,组织内部已经存在一些旨在解决特定问题的系统,尽管这些系统可能并非...
### 数据库优化经验谈 #### 一、查询语句(SELECT)优化建议 1. **合理使用索引** - 在WHERE子句中确保变量的顺序与索引关键字的顺序一致,以便最大化利用索引的优势。例如,如果索引为`create index test_idx ...
因此,数据库设计是一个需要专业知识和丰富经验的工作。 在数据库应用中,索引的设计和优化是提升查询效率的有效手段。合理地使用索引可以显著提高数据检索的速度,减少磁盘I/O操作,从而提升系统性能。然而,索引...
【Sybase数据库管理与维护经验谈之日志】 在数据库管理中,日志扮演着至关重要的角色,尤其是在Sybase SQL Server这种关系数据库管理系统中。事务日志是数据库系统用来跟踪和记录所有数据库变更的关键组件。这篇...
### DB2 数据库调优浅谈 #### 数据库调优的视角 在进行数据库调优时,不同的视角可能会带来不同的解决方案。通常来说,可以从以下几个方面考虑: - **应用优化**:针对应用程序本身的优化,比如查询逻辑、事务...
温昱作为一位资深的架构师,他的"架构设计方法经验谈"为我们提供了宝贵的见解和深入的理解。以下是根据标题、描述以及可能包含在PDF文档中的内容推测出的一些关键知识点: 1. **架构定义与角色**:首先,架构设计是...
### SQL Server索引设计经验谈 #### 摘要 本文旨在探讨Microsoft SQL Server中的索引设计技巧,尤其是如何通过合理的索引策略来优化查询性能。通过对聚集索引与非聚集索引的选择、索引列的排序方式、填充因子的...
3. 教育和培训:定期对数据库维护人员进行教育和培训,提升他们的技术能力和实践经验,以便更好地应对复杂和多样化的数据库环境。 4. 建立完善的数据库管理制度:制定相应的管理制度和维护计划,确保数据库得到持续...
"cccc面试.txt"可能是另一家公司的面试经验分享,不同的公司可能对数据库的理解和使用有不同的侧重,通过对比不同公司的面试题目和流程,可以更全面地了解行业需求。 "数据库高级培训"这部分可能包含更深入的数据库...
- **交互信息**:常见问题、完全攻略、实战经验谈。 - **信息发布** - **商品信息**:按照类别分类,如电脑网络、交通工具、家用电器等。 - **热点信息**:当前热门的商品或话题。 - **信息查看**:站内搜索和...
本文将基于个人的经验,探讨结构设计的一些核心概念、原则和常见方法,以期为IT行业的专业人士提供一些实用的指导。 首先,我们要理解什么是结构设计。结构设计是软件设计的一部分,它关注的是如何组织代码,使系统...
设计阶段对数据库性能进行优化成本最低,收益最大;而到了成品阶段再进行优化,则成本最高,收益最小。 3. **性能优化方法:**数据库性能的优化可以通过网络、硬件、操作系统、数据库参数以及应用程序的优化来实现...
另一些观点则认为数据库本身就是一个独立的作品,其创作过程涉及到了创新性的选择和组织,因此应被视为一种新的版权对象。 【数据库的法律保护问题】 尽管许多国家的著作权法和反不正当竞争法已经开始涵盖数据库的...