楼主: gezechen

sybase 速度慢,求高手帮忙看看。

[复制链接]
论坛徽章:
0
11#
 楼主| 发表于 2011-4-5 15:15 | 只看该作者
提供有偿 服务的哥们, 提供个QQ号。
在合理的价格范围内,可以接受。
只需要定位出问题的具体原因就好,并提供解决办法或建议就好。

使用道具 举报

回复
论坛徽章:
17
ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:442015年新春福章
日期:2015-03-06 11:57:31暖羊羊
日期:2015-03-04 14:50:37马上有钱
日期:2014-05-19 11:18:35马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:112013年新春福章
日期:2013-02-25 14:51:24奥运会纪念徽章:现代五项
日期:2012-10-16 23:29:11ITPUB 11周年纪念徽章
日期:2012-10-09 18:06:202012新春纪念徽章
日期:2012-01-04 11:50:44
12#
发表于 2011-4-6 15:15 | 只看该作者
cpu繁忙主要监控是否存在I/O等待现象,另外CPU一般是多核的,记得关闭超线程。
其他方面主要是耗费CPU资源的程序有问题。

使用道具 举报

回复
论坛徽章:
0
13#
 楼主| 发表于 2011-4-8 08:54 | 只看该作者
我们已经定位出 问题的地方, 有3个 数据表, 是子表关系。 表一中一条对应表二中20条记录,表二中一条记录对应表三中1-10条数据(平均3条)。

都有主键,没建外键。
表三上有个索引(建立在用户id上)。每个用户大约有几百到几千条记录(平均3000条)。
索引建的都是 非聚集索引。

当在一分钟内 在三个表中共插入2万条记录时,(1000用户同时在线操作)。cpu很高,反应很慢。
各位高手 给个 调整建议(怎么提高数据库的插入效率,总不能把索引都删了吧 !!)。

使用道具 举报

回复
论坛徽章:
0
14#
发表于 2011-4-14 02:49 | 只看该作者
打开delayed commit 看看,这不会降低CPU,但可以加快响应速度。

使用道具 举报

回复
论坛徽章:
3
ITPUB9周年纪念徽章
日期:2010-10-08 09:28:53ITPUB十周年纪念徽章
日期:2011-11-01 16:20:282013年新春福章
日期:2013-02-25 14:51:24
15#
发表于 2011-4-20 14:04 | 只看该作者
表分区提高并行插入

使用道具 举报

回复
论坛徽章:
0
16#
发表于 2011-5-4 18:38 | 只看该作者
感觉CPU在空转,个人倾向,
1)如果是从12.5.x升级到15.0的,请打开 sp_configure 'enable compatibility mode', 1。
2)最好升级到15.0.3,1502是个中间版本,问题多多。
3)procedure cache size偏小

联系QQ:103703927, 我这有个脚本,看看哪些SQL在忙。

使用道具 举报

回复
论坛徽章:
6
ITPUB十周年纪念徽章
日期:2011-11-01 16:20:282012新春纪念徽章
日期:2012-01-04 11:50:44茶鸡蛋
日期:2012-02-29 11:04:04灰彻蛋
日期:2012-05-28 17:16:28ITPUB 11周年纪念徽章
日期:2012-10-09 18:05:372013年新春福章
日期:2013-02-25 14:51:24
17#
发表于 2011-5-5 09:26 | 只看该作者
原帖由 诺华 于 2011-4-2 10:26 发表
CPU忙的原因有很多种,你的问题首先在于你的CPU确实在做事,每秒的I/O数目为:267797.6,这对于4个CPU来说,已经很高了。要定位问题,可以使用monTables确定哪些表的I/O数多,很可能是由于有不正确的查询策略,比如表扫描,比如索引扫描,比如连接顺序不对...

你的 Spinlock Contention为26.8%,是相当高的值,建议增加内存分区数目,CPU为4,我通常建议分区在8或者16.特别对于ASE15,这个参数需要适当调高,特别你使用了性能好的机器,比如p6 CPU。

number of open objects达到了最大值,建议调高,这个会对性能有一点儿影响。

Runnable Process Search Count调整为10没有问题。我的经验是,如果调高了,比如2000,在某些平台上,业务很低的时候,系统CPU会表现较高;但如果是数据库很忙,没有影响。

Network Packet Received很高属于正常,这个不是调整网络包的依据。

热点表争用可以做,但是这个是针对锁阻塞的。而如果锁阻塞严重,则CPU就不会很高。我认为,这个不会有太大的帮助。

sysmon的监控的长度,要依据问题来定。并不是越长越好。如果系统持续忙,长短关系不大(但过长会导致参数溢出)。如果系统属于突发性性能问题,则需要尽量短(这个建议是编写sysmon的老外给的,不是我说的,嘿嘿)

同意这个观点——光看sysmon还是无法确定具体问题的,还是得另外跟踪mda表等来切实分析忙时的业务模型——例如是否io密集或cpu密集等。
另外给点建议——适当调高i/o polling process count值来增加fan in/out量,看看能否把cpu的io压力减缓。

使用道具 举报

回复
论坛徽章:
24
紫蛋头
日期:2011-06-22 13:04:01ITPUB 11周年纪念徽章
日期:2012-10-09 18:09:19鲜花蛋
日期:2012-12-28 09:05:10蛋疼蛋
日期:2013-01-16 09:47:412013年新春福章
日期:2013-02-25 14:51:24鲜花蛋
日期:2013-05-10 11:17:54保时捷
日期:2013-11-01 09:43:15路虎
日期:2013-12-09 09:52:392014年新春福章
日期:2014-02-18 16:43:09马上有钱
日期:2014-02-18 16:43:09
18#
发表于 2011-5-5 09:46 | 只看该作者
原帖由 花好月不圆 于 2011-3-24 21:10 发表
采样时间才1分钟,你让人看什么

最少采样15-30分钟把

顶个...

使用道具 举报

回复
论坛徽章:
0
19#
 楼主| 发表于 2011-5-6 11:16 | 只看该作者
问题我们已经定位解决。
主要问题原因 应该是 web 跟 数据库交互太多。
还是从应用上解决的。
3个字表关系的表的更新操作,都是在 java 里面用 for 循环更新或插入的。 所以造成客户量上升时 web和数据库间的交互太多。
将 for 改写成 in 进行更新。 将for 里面的insert ,通过存储过程来实现。 现在虽然cpu 在20%左右转。前台的反应速度还可以。 数据库参数没有做其他的调整。 web里面的事物隔离级别设置为2,因为系统的查询操作比较多。通过分析不会产生数据一致性问题,采用脏读。
谢谢各位高手!

使用道具 举报

回复
论坛徽章:
17
ITPUB新首页上线纪念徽章
日期:2007-10-20 08:38:442015年新春福章
日期:2015-03-06 11:57:31暖羊羊
日期:2015-03-04 14:50:37马上有钱
日期:2014-05-19 11:18:35马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:112013年新春福章
日期:2013-02-25 14:51:24奥运会纪念徽章:现代五项
日期:2012-10-16 23:29:11ITPUB 11周年纪念徽章
日期:2012-10-09 18:06:202012新春纪念徽章
日期:2012-01-04 11:50:44
20#
发表于 2011-5-6 13:19 | 只看该作者
先TOP,VMSTAT之类的下吧,看看交换,网络磁盘I/O最后在看看CPU

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表