技术开发 频道

数据库防范

主持人:接下来请出我们另外一位资深的专家,来自易贝网的。


来自eBay的技术嘉宾



易贝:我们和淘宝网从数据库角度来讲完全一样的,所以他刚才讲的这三个问题我是完全认同的。他讲过了,我就不用讲了。从我们的角度来讲,我们怎么样防范呢?

我们任何的CQ都要有足够的DBA资源。你可以通过内部的系统看看CQ写得好不好。如果你接到这个时间,你可以去测试系统上去试,如果什么问题都没有的话,你可以根据你对Oracle、数据库方面的了解,你看一下这个数据库表现的性能怎么样。

张乐奕:因为淘宝和易贝应用上来的频率是很高的。一个应用上来,DBA会知道吗?

易贝:DBA和淘宝是很复杂的。这是我们很少管到应用这块。应用这块怎么设计,我们现在还没有参与。我们也尽可能增加这么一个环节。但是这个还是给我们带来很多的好处,至少我们出现很多的性能问题,我们没有料到。我们已经料到的,在这部分已经去掉了。但是在外面来讲可能没有这么多的资源。

刘晶炜:我们在人民银行也遇到这种类似的情况。一般来说,系统设计之初,你可以知道哪个地方是最常访问的。这段代码会非常的清新。举个例子,当时我们国内有很极端的银联,银联里面每一个代码,都要开会讨论。但是它有限。尤其像你们这种,特别高频繁的,有可能这样做。

易贝:在一个系统里,真正跑得快的,不会有多少。你的系统很少遇到问题。我个人认为95%的性能问题来自于CPU。因为从应用层面来讲,从数据库层面来讲,都是由系统引起的。我们要保持一些历史的数据,我们还是很依赖于Oracle最基础的构成。我们每十五分钟跑一次,我们保持最近三个月的。我们在这个保存之后,我们可以把里面的一些内容找出来,在某个成份之内,把执行次数乘以逻辑度最高的找出来,找出来以后,尽量实现哪一个系统是实现最大的。因为我们的数据库很多,我们只能用脚本找出来,发给每个地区邮件,然后大家看一下,通过这种方法,我们可以从这个方面能够消灭很多问题。

还有一个,要做一些历史信息。这部分,现在很多的淘宝、易贝大公司做得很好。但是小公司没有这样做。你问它提供历史数据了吗?小公司都是讲没有的。在三个CPU上面,如果达到一个CPU乘以10K,那这个CPU会非常忙的。逻辑度是非常耗CPU的,所以要注意调整CPU。还有一个经常遇到的访问效率的问题。

刘晶炜:你提到CPU,在这个领域里面,你们关注不关注内存的问题?

易贝:肯定是要考虑的。

刘晶炜:因为很多时候很容易判别的,很难的时候,很多时候差距性比较大的时候,一个是用排序,一个是用整合的。我们在DB2里面,尽量更多考虑用整合的问题。

易贝:这种方式在Oracle里面基本不用。

刘晶炜:比如业务处理,本身它就要做排序的情况下,可以这样做的。

郭志勇:有没有瞬时捕捉语句的工具。

易贝:有。

张军华:你们数据库优化的模式通常采用什么模式?因为你的数据量变化的话会产生很多问题。

易贝:因为Oracle已经自动推动了我们的升级。所以这个问题我们现在还没有考虑。

淘宝:一般情况下,你可能分析原先的数据跟现在数据有很大的差别,可能你新创建索引的时候,最好你先出来一个索引。新的索引其实是一个符合你的索引。这样时候也会采取计划变化。

易贝:我们重新启动一下,因为能耗过多的话,我们可以降一部分。

李聪:首先我们会做一些信息诊断,包括你的一些语句执行计划发生变化之后,在我们的工具里面都会发现一些变化。

0
相关文章