`
freeheron
  • 浏览: 67428 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表

工作八年总结

    工作这么多年了。突然想总结一下。      知识和经验是需要积累的,当知识和经验都积累到一定的程度,或许就能产生质变的效果。这是我近八年的IT职业经历的感受。      本科毕业时去找工作,当时真的很迷茫, ...
在这家公司七年了,整整七年了,感觉自己真的很忠诚。 期间经历了两次的公司股东转换,一次大裁员,还有两次领导离职。 想当年刚进来时,团队只有5个人,然后急剧扩张,当我们正要往100人进发时,金融危机爆发了。公司要进行大裁员,我们不是正统,当然不能幸免,三分之一被砍掉了。 多年来,我们的一支独立团式的精锐部队,在打造着自己旗舰产品。最优秀的团队经过千锤百炼,终于使产品完善,甚至达到业界领先,这时风云突变,产品并不符合高层的发展意愿,被中止了。 将来要走什么样的路,是高层领导的决定,我们跟着走就是了。 职场可能就是这样风云变幻。说不定,不久的将来,我们的股东又要变了,这很有可能的。
最近系统出了一点问题。在客户那边,因为系统的用户规模的变大,历史数据变得特别大。十来天的数据就有上千万了。系统本身就是一个准实时系统,响应要求较高。但是有个数据库操作却需要化4分钟多。客户没法接受了。这 ...
最近在读老白的Oracle优化日记,老白确是高人。 书写得不错,有点像在读小说。 同开发商和客户的交锋,确是激烈。 这也让我有些感慨。   做DBA,做优化的确实不易。特别在中国的大地上,面对众多急功近利做出来的系统。 想想自己也在做开发,也做优化,也做一些数据库的优化。有时也有点庆幸自己不用去面对那样的系统,去面对那样的开发商。也庆幸现在做的是整体解决方案。当系统出问题的时候,会先从开发本身找问题。人说80%的性能问题是在应用本身,这么多年的经历,自己也早就体会到这点了。尽管也有不少机会要直接去面对数据库的优化,但还是少,看来要修练到老白的高度是难了。   说到开发和测试,自己 ...
最近的产品测试发现一个问题,当并发数量小于10时,响应时间可以维持在100毫秒以内。但是当并发数到达30个时,响应时间就超过1秒。这太不能接受了,要求是通过1秒中并发100个。 经过检测发现,时间主要是耗在其中的一个存储过程中。把存储过程的语句一条一条的过一遍也没有发现明显的不合理。因为mysql本身不能提供毫秒级别的时间,google了一个mysql的能提供毫秒的时间函数,再做测试,做了一个定位。发现是其中一条语句,语句是这个样子:    select .... from A, B where .....and A.id in (select id from C where ...); ...
IT部门的人来找我,说有个windows 2003下的oracle起不来了。 我过去看,所有的oracle服务启动都很正常。但是sqlplus "/as sysdba"就是没法进入oracle的空闲历程,要不就是说没有权限,不然就是挂在那里没有什么响应,而cpu的使用率上升到100%。更改了所有的有关net方面的可能的设置,试了很多,还google了,都没有找到解决方法。半天都没有解决。真是奇怪了。很没有道理。 一度还觉得可能是oracle系统文件有问题了。把它卸了重装,还是一个样。 以前都是在linux的环境下搞oracle,几乎没搞过windows下的应用,甚至连这 ...
有个应用的CPU使用率很高,有时到100%,因为这个原因,产生连锁反应,最终系统宕掉。 检查应用的源码,发现其中使用了开源的common pool的对象池来管理对象。以前就知道这个开源包有些问题,但是看其中的使用,应该没有什么问题。自己也做了大量的实验也没有重现CPU高的问题。 再仔细分析找个应用发现一个特别的情况,pool的大小是1000,而访问这个pool的线程甚至能到达4000。(这么多线程,应用本身的设计就不合理)。这是一个发现,做个实验,果然:当pool的最大对象数小于访问pool的线程数量时,CPU急剧上升。由通常情况的5%左右上升到70%。好可怕^_^。还好我几乎不用这个,现在 ...
按照JDK文档的描述, 如果池中的实际线程数小于corePoolSize,无论是否其中有空闲的线程,都会给新的任务产生新的线程 如果池中的线程数>corePoolSize and <maximumPoolSize,而又有空闲线程,就给新任务使用空闲线程,如没有空闲 ...
一直来,系统中总有几百万的数据,变态的QA总是要测试几十万页的翻页。对于Mysql来说,翻到几十万页之后,常规的查询的肯定会慢了。还好用户不会这样去用。只有QA才会提这种‘无礼’的要求。 对于查询:     select * from table limit 1000000,20 当然会慢得不行了。 现在终于发现了,还可以这样改写:    select * from table a,(select id from table limit 1000000,20) b where a.id=b.id 这样就快得不是一点半点了。以前真是笨了^_^   看来,使用MySQL,还是得多 ...
针对数据库引擎:MyISAM和InnoDB.做了一些性能测试和比较。包括有没有索引的情况下的比较。 主要是想证实一些性能问题。 数据量:6 Millions, 机器:dell 2950 1. alter from InnoDB to MyISAM: -----------------------------------------------------                         no index   has two indexes -----------------------------------------------------         ...
    牺牲了五一的三天时间,参加itpub的oracle性能优化的培训。一个字:值。      应领导的要求,找个有关oracle性能优化方面的培训。最后,发现itpub上的一个有关oracle性能方面的培训不错。讲师是itpub上有很有经验的oracle大拿斑竹,价格又便宜(太便宜公司了,才找了一个这么便宜的培训^_^)。唯一的缺点是要牺牲五一了,本来至少4天的课程,压到3天,累死了,一个超过10个小时的课。       还好,收获不少。当然,oracle的性能调优不能一口吃成胖子。参加完这个课,至少有这些收获:  性能调优的思想和思路,比如如何从表面现象去渗入分析问题的根本原因。厚 ...
首先得有一个response文件,这个文件可能从/staging/response中得到。当然还得做必要的修改。 可以根据需要做一些修改: RESPONSEFILE_VERSION=2.2.1.0.0 FROM_LOCATION="../stage/products.xml" ORACLE_HOME="/u01/app/oracle/product/10.1.0/db_1" ORACLE_HOME_NAME="OUIHome1" TOPLEVEL_COMPONENT={"oracle.server",&q ...
用于数据仓库和大规模数据分析的数据库不多,开源的更少了。基于mysql的数据库infobright是一款不错的数据库,可惜它的社区开源版短板不少,企业板也不便宜。monetDB是一款不错的开源数据库,它是面向列的存储模式,有很高的查询性能(比普通关系数据高20-100倍)。 monetdb提供的文档还是比较完备的,使用和编程的文档都有。 monetDB可以在windows和linux上安装。windows上的安装比较简单。这里说说在linux上的安装和使用。 在linux上的安装是一个源码的编译安装过程,下载后,运行 ./monetdb-install.sh --enable-xquery ...
本来以为很容易的,想不到遇到了几个问题。 首先,安装MySQLdb模块时,出现没有setuptools的问题。去http://pypi.python.org/pypi/setuptools/下载了源码,装上了。 解决了第一个问题,再次安装MySQLdb,又出现问题了,没有mysql_config, 又去下了一个Mysql_devel安装。 都装好了,试试:      import MySQLdb      MySQLdb.connect(user='root') 又出问题了:Can't connect to local MySQL server through ...
最近在研究开源OLAP-Mondrian.   通常Mondrian中的数据源的默认设置都是JDBC字符串,如:    Provider=mondrian;Jdbc='jdbc:mysql://localhost/foodmart';Catalog=/WEB-INF/queries/FoodMart.xml;JdbcDrivers=com.mysql.jdbc.Driver;JdbcUser=foodmart;JdbcPassword=foodmart;PoolNeeded=false;     就打算都改成容器的JNDI数据源,如: Provider=mondrian;DataS ...
Global site tag (gtag.js) - Google Analytics