IBM刘晶炜:数据库性能使用的思路
主持人:接下来有请IBM公司的刘晶炜先生。
刘晶炜:我虽然是IBM公司的,但是我觉得对大家更有帮助的,我个人的经验,不是产品的问题,而是我们要做条路方面的一些思路。

- Oracle数据库客户端的安装和配置
- 数据库人员面试:SQL Server常用测试
- 用JSP从数据库中读取图片并显示在网页
- PHP连接数据库的方法(3)
- Oracle数据库网络的安装和配置(1)
- 利用外部命令Oralce数据库导入导出
- PHP中使用类对数据库进行操作
- 图解MySQL数据库的安装和操作 (1)
- [冷枫推荐]:数据库操作,内外联查询
- 使用VB处理MYSQL数据库中二进制数据问
刘晶炜,IBM软件部中国区信息管理部门技术经理
这个思路里面如何去用到数据库自身的特性。我们去讨论性能问题的时候,最重要一点就是性能问题平均就是是什么?在做条路之前,像医生看病一样,要知道病是什么?这个是一种监控的手段,大家做条路的时候,要考虑监控。这里面我们想到数据库执行过程中,两方面,一个是设计,做任何设计的操作,执行计划是不是合理。执行计划如果不合理,这种方式带来的数倍甚至数十倍的差异。这种情况下,数据库今天的情况下,涉及到固定场景模式。这个大多业务系统常见。第二个分析业务的条路。设计人员可以很清楚知道的条路,Oracle里面有一些制定。利用数据库自身的优化手段去进行。在这个条路的时候,对于DB2来说,要知道统计的分布,统计信息很重要。统计信息是不是准,如果不准的话,去条路的话,没有意义。两张表,最简单的链子,一张表有十张记录,一张表有十万记录,这样就差得很远,产生的某种方式差很多。这样,在过去很多项目里面,跟合作伙伴谈到这点。
从本身数据库而言,要想到哪几个环节对你的数据库最关键。无外乎把三个方面的能力,IO、内存、CPU的分配是否均衡。不管一台机器,还是所有的机器都不能产生瓶颈。下面的问题就是如何做到IO效率高,就是让你的访问模式和数据库本身存在的模式要接近。
当数据分布的盘,经常访问的数据分布在一个盘上面,效率怎么也不会高起来。这个在输入条例里面要注意到的。每个数据库都会有自己的体现。同时尽量避免,同样的访问如果很多相同的地方,尽量让你内存的运用率高。这样就不用访问IO了。内存怎么做得高呢?你在设计规划上面,数据库体系上面,让你最可能访问到的数据,这里很简单的,就是把索引的东西尽量常驻内存。也里面涉及一些指标,或者怎么样监控。简单的内存中标,就是内存运用率的问题。围绕这个基础里面,去年有一个技术出来也是市场比较接受的,就是数据的压缩技术。利用IO和内存两个都要提升,我们考虑到把数据压缩了,存在磁盘上面。这样IO的效率会高。第二个,把数据压缩好,在内存里面放的内容多了,这样运用率也就高了。现在,数据库里面自动维护一个字典,你很多信息不同的技术都相同。
这样的话,一下子就会做到,像我们在做数据仓促的体系,很多业务系统高的压到80%。这个技术原理能带来IO的好处,带来了内存运用率的好处。
还有CPU的层面,最重要的就是CPU操作系统自动控制。要让CPU比较均衡的忙起来,关键点要从理论上看。数据库的理论里面哪些环节最不容易被分割,就是我们大多数任何数据库里面,做关联的,最麻烦的就是做排序。排序是最难以去执行的。怎么样优化排序的效率,就变成各家数据库厂商里面的重点。一万条记录排序,如果花一分钟,十万条记录会花超过十分钟的时间。是不是数据库里面的数据,全部都是排序的重点呢?绝对不是这样的。排序的目的是为了关联。这种情况下,产生的就是往下细分的用多结点的方式集成。
排序本身能不能涵盖一定的业务含义呢?按照时间区隔,按照一定东西来做,如果多维分析的体系里面,常用访问到的这些的,可能有时间,地方、产品都常用,怎么样把它们的数据更好物理的放在一起呢?让数据本身和它的访问模式比较接近。由于这个设计师想的,产生另外的技术就是我们的缩影技术是块缩影。如果缩影的话,数据基本的组织单元已经按照这几个块以后,缩影量大大减少。这个就是我们在性能条约上面的很多技术。这个技术上面,数据库发展这么成熟,很多开发商,即使是数据库高手只能了解其中的一些片面的东西。再往深层次,就是怎么样让它做得更智能,就是不需要每个细节去做,DB2、Oracle都是在往这方面去做。其实上次数据库大赛也提高这个问题,当然那个时候我相信大家有疑惑,今天来提是为什么呢?因为我们派出一个工程师在华为进行测试,他们调完以后最后剩两天,结果测出来,我们有一个新的技术,主要解决内粗如何条约的问题,在数据库里面最关键的,就是在很多访问的时候,无法预测用户数会有多少,基本上你们看数据库的细节,私有内存是什么,每个用户做的排序都是私有内存。如果为五百个用户同时访问,只有十个G,这样你排不下会怎么样,就会往磁盘里面放。这种情况下,基本上很多数据库的仓库是设死的。很多数据库都是根据访问量去自动调的。这样的话,会大大的优化。我们通过测试,没做什么调整,就是简单的调了一下内部的数据访问量,这样就达到了调整。
另外的特点,包括我们和SAP的合作,SAP许多新的版本出来,就是也做了内存的调整。数据库在性能优化上面大概分成这样几个方面的领域。时间的原因就不详细说了,谢谢!
- 最新文章
- IBM:实施SOA五个切入点助企业扫除入门障碍[01-04]
- IBM:帮你成功迈入信息随需应变时代[01-04]
- IBM 刘晶炜:面向soa,ibm信息管理技术的方向发展[01-04]
- IBM Lotus Quickr提高团队生产力[01-04]
- IBM Lotus Notes/DominoV8新特性[01-04]
- GPLv3: 免费还是商业化?[01-04]
- 相关文章
- Zope与各种数据库的连接方法[01-04]
- 在pb6.0以上版本中创建数据库[01-04]
- PB5对SQLSERVER6数据库的访问[01-04]
- PB应用ODBC访问不同数据库[01-04]
- PB/Sybase系统开发中的数据库转移[01-04]
- 如何在PB中用直连驱动联接数据库[01-04]
