WAS 7.0关于千万级数据优化问题

前一阵,系统经常挂起,后排查发现为数据库中的很多表的数据量过大并且代码、sql有问题。
表数据量超过千万,并且每天以30~40W的数据量再增加,想请教各位大侠怎么来进行优化,无论是数据库、代码、was各方面的都行。
表查询语句都是类似最简单的,按userid或deptid、或者创建时间查询。


系统 在线访问量为2000人
服务器 :红旗linux4 、32G内存、 8CPU
Was7.0
DB2 V9.7
jdk6
参与16

14同行回答

请叫我航哥请叫我航哥软件开发工程师IBM(苏州)
要优化,要考虑的东西真不少。代码经常挂起,你是指WAS hung住了?如果是这样,你杀javacore下来分析吧。找出相应的代码块,优化代码,优化sql,加索引 and so on.观察一下WAS资源的使用情况,包括JVM,Datasource,GC等。看一下你的webserver各项参数有没有设置的余地。对于DB2 V9.7 通常...显示全部
要优化,要考虑的东西真不少。
代码经常挂起,你是指WAS hung住了?如果是这样,你杀javacore下来分析吧。找出相应的代码块,优化代码,优化sql,加索引 and so on.
观察一下WAS资源的使用情况,包括JVM,Datasource,GC等。
看一下你的webserver各项参数有没有设置的余地。
对于DB2 V9.7 通常数据的一致性读时个不小问题,看看再WAS连接池有设置JDBC的隔离级别吗?(没有的话考虑设置隔离级别,打开DB2的CC特性。)
......收起
互联网服务 · 2014-04-17
浏览829
JZhangJZhang系统工程师亿阳信通
代码中可以对语句进行以下优化:1.如果没有使用绑定变量的,可以使用绑定变量。2.根据需要进行查询,例如表中有十几,或者几十列,而你只需要查询返回几列的结果,那么最好在sql语句中进行控制,不要使用类似与 select * 这样的操作。数据库方面:索引建立的时候,如果表过大,索引创建时需...显示全部
代码中可以对语句进行以下优化:
1.如果没有使用绑定变量的,可以使用绑定变量。
2.根据需要进行查询,例如表中有十几,或者几十列,而你只需要查询返回几列的结果,那么最好在sql语句中进行控制,不要使用类似与 select * 这样的操作。
数据库方面:
索引建立的时候,如果表过大,索引创建时需要考虑到索引创建带来的代价,不要一味的追求查询速到胡乱创建索引 ,最后导致DML操作变慢。
页面展示方面:
如果有默认展示的地方,可以考虑默认展示的数据量是否可以进行调整。收起
软件开发 · 2014-05-13
浏览1189
cosmicbugscosmicbugs软件开发工程师思翰科技
回复 13# guansnow 现在还在观察中,做了以下工作1、把一些容易造成挂起的代码精简或重新梳理业务。2、加索引3、把数据量大的表分表、分区。显示全部
回复 13# guansnow

现在还在观察中,做了以下工作
1、把一些容易造成挂起的代码精简或重新梳理业务。
2、加索引
3、把数据量大的表分表、分区。收起
软件开发 · 2014-05-05
浏览1180
guansnowguansnow系统分析师科大讯飞
问题解决了吗?显示全部
问题解决了吗?收起
系统集成 · 2014-04-29
浏览1173
wxawxa系统运维工程师IT
基本都是老套了显示全部
基本都是老套了收起
互联网服务 · 2014-04-22
浏览1164
泊涯泊涯系统测试工程师高伟达公司
数据量大,一天三十几万,那肯定有些是历史数据,可以做表分区,把不用的数据迁移到历史表系统做集群等等显示全部
数据量大,一天三十几万,那肯定有些是历史数据,可以做表分区,把不用的数据迁移到历史表
系统做集群等等收起
银行 · 2014-04-18
浏览1391
cosmicbugscosmicbugs软件开发工程师思翰科技
回复 8# 请叫我航哥 索引有加。现在考虑的是在数据库上将表进行分区。显示全部
回复 8# 请叫我航哥


索引有加。现在考虑的是在数据库上将表进行分区。收起
软件开发 · 2014-04-18
浏览1366
frankiesfrankies数据库管理员雅马哈信息(厦门)发动机有限公司
1. HTTP  或 AJP 并发线程最大数 设置多大?2. 数据库表的索引添加 是否合理?建议查看一下查询语句的执行计划,然后视情况再做调整。3. 程序上是否大量的日志打印出来,生产环境还是得把日志级别调高,减少日志输出。4.采集一下Heap的样本和内存对象存储情况,可以用jcon...显示全部
1. HTTP  或 AJP 并发线程最大数 设置多大?
2. 数据库表的索引添加 是否合理?建议查看一下查询语句的执行计划,然后视情况再做调整。
3. 程序上是否大量的日志打印出来,生产环境还是得把日志级别调高,减少日志输出。
4.采集一下Heap的样本和内存对象存储情况,可以用jconsole或用jvm 自带的一些命令行 如:jmap 等5. 数据库的连接池设置情况怎么样,是否及时释放连接,是否够用?

总之,最好你自己构建一个压力测试环境,详细测试一下。 希望对你有帮助!收起
互联网服务 · 2014-04-18
浏览1416
请叫我航哥请叫我航哥软件开发工程师IBM(苏州)
回复 6# cosmicbugs 有加索引吗?显示全部
回复 6# cosmicbugs

有加索引吗?收起
互联网服务 · 2014-04-17
浏览1400
cosmicbugscosmicbugs软件开发工程师思翰科技
回复 3# guansnow     感谢提醒,这两天做个压力测试!显示全部
回复 3# guansnow


    感谢提醒,这两天做个压力测试!收起
软件开发 · 2014-04-17
浏览1350

提问者

cosmicbugs
软件开发工程师思翰科技

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2014-04-16
  • 关注会员:1 人
  • 问题浏览:9527
  • 最近回答:2014-05-13
  • X社区推广