2000W条数据的Oralce数据库SQL查询优化经验 - 机会总会留给有准备的人

  无论你写了什么、做了什么、别人都觉得你没啥的、写得不好、不深入,给你泼N多冷水,但是往往这些泼冷水的家伙往往大多是狗屁不是的家伙,甚至大多是马甲而已,有本事大家都多写写文章,用文章、用实力来证明写得更好就足可以让大家心服口服了。

 

  我为了鼓励其他同行写文章,几乎觉得写得不错的文章,都给推荐+1,这是无形的支持与鼓励,举手之劳而已,但是能给人很多鼓舞了,先讲购买他的软件产品,至少点一下推荐+1,又不花费力气,也不用花钱,的确从他的文章里学到了知识、自己也提高了,那就顺手点一下推荐+1,难道就想要个这么简单的回报,都那么难?搞软件开发的都吝啬小气到这个程度了?

 

正文部分

============================================================================================ 

  1:今年公司里有一些人辞职了,他们大多都觉得在公司没有发挥潜能的机会、没被公司重视、没给足够高的薪水或者其它单位有更高的薪水。

  2:公司有一个2000W条数据的Oralce查询功能,运行速度有些缓慢,但是一直没人能有效解决这个问题,或者对此没啥兴趣爱好。

  3:有一部分人觉得,自己不是干数据库技术的,有些人觉得这个事情不管他的事情,有些人觉得这个没办法解决,但是客户的反应有些强烈。

  4:这个事情也变成了老板、项目经理、客户经理的一块心病,甚至影响了整个项目的验收及收款,我们只能迎难而上。

 

  当老板把这个任务压到我们开发部头上时,我们逃也逃不掉,虽然我们平时是写C#程序为主,但是数据库性能优化也只能由我们自己做:

  当时觉得需要2周时间有希望能解决,1周熟悉业务及数据结构,另1周用来性能优化,我也是新来的,对项目不熟悉、功能也不熟悉,所以觉得需要2周时间也是天经地义的,但是老板说必须要解决这个问题而且只能给1周时间。

  没办法的事情老板的命令下来了只能执行,要们就丢这个饭碗,我就跟我们公司的一个搭档承担了这个攻坚任务。

 

  曾经很多年前,优化过别人的MYSQL的数据库查询优化,当时公司里有个牛B轰轰的程序员,觉得自己的数学水平高、编写程序思路也很严,平时谁也不服,也不把别人放在眼里的那种,当他有一个数据量很大的程序运行效率比较低时,老板让我看看是否能提高性能,我足足用了半个小时,优化了他的SQL语句,结果性能提高了10倍,只用了1/10的运行时间就可以了,这次成功的SQL优化,给了我很大的信心,而且开始对性能优化有了很高的兴趣。

  后来几年里看了很多数据库方面的资料,但是一直没遇到过能发挥实力的机会,也学了很多数据库脚本编程,但是一直没机会能露两手,不过自己一直是对数据库优化很有信心了,平时也很自信。

 

  但是最近几年,心思没在数据库优化上了,大多是用在“大规模编程系统架构优化”上,而且Oralce没有用也有好几年了,开始也不敢吹了,毕竟不是天天干这个的,时代发展得也快,新技术都没留意过了。

  自己没信心了,那就先找找这方面的专家,看看人家有没有什么好的建议吧,我和我的搭档就开始这个痛苦的数据库优化工作了。

  01:先找集团内部的资源,找名气比较大的专业的数据库管理员,给了我们一些建议系统底层优化的建议,对我们没实质性的进展,失败。

  02:只能硬着头皮与同事们一起深入研究,发现SQL语句也很复杂,并没有想象的那么简单。

  03:把比较复杂的SQL语句先分解成若干个简单的SQL语句,运行、失望,性能影响不大,失败。

  05:里面有些多余的字段被SELECT出来的字段,去掉了,没有明显的进展,影响不大,失败。

  06:SELECT 出来的东西,再进行了SUM操作,感觉内存里的处理数据过大,先进行SUM,再进行SELECT,没有明显的进展,影响不大,失败。

  07:把2000W条数据的表,拆开成若干个表,每个表达该500W条数据,没有明显的进展,影响不大,失败。

  08:修改数据类型,把数值类型的长度、精度在变小点儿,影响不大,失败。

  09:数值类型比较,例如日期类型的比较,不要转成字符再比较,人家已经这么做了,没这方面的缺陷。

  11:查询条件的先后顺序调整,影响不大,失败。

  12:将过滤条件放到子语句里,选出来的数据尽量小一些,影响不大,失败。

  13:再看看索引,以前的开发人员索引设置得也比较合理,而且他们告诉我们,他们做测试优化索引,耗时会更多,去掉索引反而还会好一些。

  14:经过这8个步骤,我是有些失望了、心情沉重,但是我不能把这个表现出现,还是继续表现得很自信,不管遇到什么困难,都需要给自己打气、给自己信心,男人要坚强、只能靠自己了。

  15:接下来足足想了一晚上,问题会出在哪里?数据库的极限能力是多少?找谁咨询?2000W条数据不应该是Oracle的性能瓶颈呀,问题应该是我们身上。

  16:继续坚信问题应该是在设置索引上,继续把重点突破口放在深入索引设置上,按不同的组合、不同的索引方式进行优化。

  17:索引优化后,奇迹出现了,性能提高了100倍,唉,这下不用丢饭碗了谢天谢地了,问题搞定了,可以给老板一个交待了,老天不想灭我们2个呀。

  18:不管是干啥,都需要靠自己,不要指望靠别人能解决问题,关键时刻,一定要对自己时刻打气、始终需要保持必胜的信念。

 

  2000W条数据的性能优化,我跟搭档一起努力做到了,下一次目标是2亿条数据的性能优化瓶颈了,还是照样需要有信心的

  去年做的是百万元RMB级别的信息管理系统,今年开始在做千万元RMB级别的信息管理系统,将来会是亿元RMB级别的信息管理系统了,还是照样需要有信心的

 

  每天、每年都在挑战自己能力的极限,每年身心都会死三回,每次挺过来了都会升华三回,需要记住职场不同情弱者。 

 

  想要当个过硬的技术主管不仅需要有“心灵鸡汤”、还需要拿实力证明的,老板不需要“心灵鸡汤”

 

  以下是千万级Oracle数据库性能优化的前后对比表,Oracle为什么那么值钱,唉、不服不行啊、这就叫科学技术,哪一天我若能做到了就是死也愿意了。

  

 

   每个软件公司都有很多问题在困扰着老板、客户,只有能及时解决这些棘手问题的人,才是公司最需要的人才,很可能机会就摆在你眼前,其实你也可以的。

 

 

  

 

 

 

将权限管理、工作流管理做到我能力的极致,一个人只能做好那么很少的几件事情。

posted on 2010-05-01 22:17 不仅仅是通用权限设计 阅读(3766) 评论(163) 编辑 收藏

#64楼  回复 引用 查看   

我是进来看评论的。
2010-05-02 08:56 | 麦舒       

#65楼  回复 引用 查看   

从治标的角度,这种做法是OK的,如果由此不会引发新的问题(增加索引必然是insert/update时间增加),那是很简单的。

如果有这样一个报表:
每个月的销售占比,估算一下领导看到这个表至少需要:
2*12=24秒,
还是不能满足要求的,要适时使用数据仓库的工具了。

综合来说,还是个软件架构问题,和索引关系不是很大。
(意思是说:现在的做法是治标;因为只有从架构的角度,才能从根上解决和此相关的所有问题)


==》从另外的一个侧面,说明你们公司的DBA,根本不称职,或狗屁不通
(或者没有DBA职位)
2010-05-02 09:08 | 个人知识管理       

#66楼  回复 引用 查看   

我也支持一下。 但是吉日你能不能吧具体的技术细节给我们讲讲, 我对优化也满有兴趣的。
2010-05-02 09:20 | JackyZhang       

#67楼  回复 引用 查看   

索引是双刃剑,在提升查询效率的同时会降低更新效率。

几百秒的查询,我昏迷。。。。。
2010-05-02 10:21 | Ivony...       

#68楼  回复 引用 查看   

搞了N年数据库,第一次看到这么说数据库优化的。呵呵。
哥们,不要这么水好不好。
要不怪不得别人说你。
2010-05-02 10:30 | blackcat       

#69楼  回复 引用 查看   

强悍,这也值得拿出来说?
2010-05-02 10:43 | nzperfect       

#70楼  回复 引用 查看   

希望多写点管理方面的文章,比如如何确保项目进度和项目品质,具体点的。
2010-05-02 10:44 | MagicHu       

#71楼  回复 引用 查看   

靠写这样的文章来赚取点击数,实在是杯具。
2010-05-02 10:45 | nzperfect       

#72楼  回复 引用 查看   

引用吉日嘎拉 不仅权限设计:
@周强

首先,我谢谢你的回复,mssql的性能优化,大家还是很自信的,但是会微软的数据库与折腾Oralce数据库,还是有很大的差别,一个人会熟练的优化微软的数据库,未必能在短时间内就能优化Oralce数据库,但是给的时间足够长,那是90%是应该能搞定的,但是对于顶尖的数据库优化,我还是不认可的这一点的。

为什么Oralce的数据库优化专家就那么值钱,SQLServer的数据库优化专家相对就不太值钱了,呵呵,很简单的道理就明显的摆在我们眼前的,还是有很大的区别的。

优秀的的Oralce优化专家,不算顶级的,大概年薪20万以上的很普遍的吧,但是没怎么听说过优秀的SQLServer优化专家轻松有20万以上的。




Oracle不管顶级的轻松上20W以上?你给的?

"没怎么听说过优秀的SQLServer优化专家轻松有20万以上"
这说明你没在这个圈子里而已,现在很多公司在招SQL Server DBA,薪水都能达到15-20k/mon.

不清楚不要紧,不清楚还拿出来说就是你的不对了。。
2010-05-02 10:52 | nzperfect       

#73楼  回复 引用 查看   

还是去csdn吧
2010-05-02 11:03 | Steven Chen       

#74楼  回复 引用 查看   

迷糊了,如果您想写技术的文章,就不要这么多抱怨和啰嗦,
踏踏实实的有什么不好呢,
除了炫耀我没看到其他的东西,有序有精华,但被掩盖了
2010-05-02 11:21 | 玄魂       

#75楼  回复 引用 查看   

引用玄魂:
迷糊了,如果您想写技术的文章,就不要这么多抱怨和啰嗦,
踏踏实实的有什么不好呢,
除了炫耀我没看到其他的东西,有序有精华,但被掩盖了

老吉的文章多数是“心灵的鸡汤”,它是给那些初入此道,陷于困惑、迷茫、苦恼的朋友写的。如果你是一个成手,或是一个有专长的人,那还是不要看为好;或是看完笑笑就行了,不要忿忿不平...。

老实说,我还是挺喜欢看的!

哈哈...
2010-05-02 11:28 | 卡通一下       

#76楼  回复 引用 查看   

居然没有专职DBA
2010-05-02 11:28 | popu2       

#77楼  回复 引用 查看   

引用popu2:居然没有专职DBA

DBA多是自封的!

也许某一天没留神,把DBA给写成NBA、CBA也是很有可能的。

哈哈!
2010-05-02 11:32 | 卡通一下       

#78楼  回复 引用 查看   

纯经验之谈,每天的时间都浪费在这些牛逼的技术上,加上这么多废话,老板的钱都是这样被你浪费了。吉日,你可真是大牛。
2010-05-02 11:38 | 雷米       

#79楼  回复 引用 查看   

内容太水了,能不能来点实在的?
吉日你的文章初看看还有点意思,但基本每篇都这样,那就一点意思都没有了
我一直觉得,博客园还算是比较专业、严肃的,也在这里学到了很多东西
吉日,拿出你的真功夫出来
2010-05-02 11:50 | 188442       

#80楼  回复 引用 查看   

吉日大牛兄弟:
很高兴看到你这么优美的标题名称,我也经常碰见上亿级的ORACLE数据库查询计算优化问题(我们是专业开发电力行业软件的,所以数据量特别大).我们知道,ORACLE数据库优化方面的技术很多,除了最常用的索引之外,比如你还可以使用内存表技术等.
但看了你的索引优化之后,"按不同的组合、不同的索引方式进行优化"没看清楚具体怎么优化的方法(或许咋是小菜).依我看来,索引优化的方法也很多,并且索引优化这个"名词性的口号"好象大家都知道.能够给出具体案例吗,呵呵,这样也才有说服力.......
2010-05-02 12:09 | 马伟       

#81楼  回复 引用 查看   

呵呵,随便还是推荐一下
2010-05-02 12:10 | 马伟       

#82楼  回复 引用 查看   

来你这看口水战真不错啊,虽然骂你的人很多,但我觉得你成功了,写博文不就是为了让人关注么,看看回复就知道,你的知名度很快超老赵啦。到时候就财源滚滚啦
2010-05-02 12:19 | pboyin       

#83楼  回复 引用 查看   

引用马伟:
吉日大牛兄弟:
但看了你的索引优化之后,"按不同的组合、不同的索引方式进行优化"没看清楚具体怎么优化的方法(或许咋是小菜).依我看来,索引优化的方法也很多,并且索引优化这个"名词性的口号"好象大家都知道.能够给出具体案例吗,呵呵,这样也才有说服力.......

他这是心灵的鸡汤,没有鸡肉...

呵呵!
2010-05-02 12:24 | 卡通一下       

#84楼[楼主]  回复 引用 查看   

大哥,那你觉得我这篇不行,那你就写一篇,露一手呗,我这个总不不写强吧?你就算是在再牛,你的知识写不出来,最终会跟你一起离开世界,不写出来的东西,跟没说是一样的。

引用blackcat:
搞了N年数据库,第一次看到这么说数据库优化的。呵呵。
哥们,不要这么水好不好。
要不怪不得别人说你。

#85楼[楼主]  回复 引用 查看   

大师,我也不是万能的,我希望我这篇文章,能引出很多其他有想法的人的文章,让大家也写写这方面的深入的文章。

引用马伟:
吉日大牛兄弟:
很高兴看到你这么优美的标题名称,我也经常碰见上亿级的ORACLE数据库查询计算优化问题(我们是专业开发电力行业软件的,所以数据量特别大).我们知道,ORACLE数据库优化方面的技术很多,除了最常用的索引之外,比如你还可以使用内存表技术等.
但看了你的索引优化之后,"按不同的组合、不同的索引方式进行优化"没看清楚具体怎么优化的方法(或许咋是小菜).依我看来,索引优化的方法也很多,并且索引优化这个"名词性的口号"好象大家都知道.能够给出具体案例吗,呵呵,这样也才有说服力.......

#86楼[楼主]  回复 引用 查看   

我们老板愿意给,我也没办法了,你要是我老板就好了。

引用雷米:纯经验之谈,每天的时间都浪费在这些牛逼的技术上,加上这么多废话,老板的钱都是这样被你浪费了。吉日,你可真是大牛。

#87楼[楼主]  回复 引用 查看   

你以为我们公司淘宝?阿里巴巴,世界前几强的IT公司啊?

引用popu2:居然没有专职DBA

#88楼[楼主]  回复 引用 查看   

热烈欢迎 “卡通一下”初入此道,陷于困惑、迷茫、苦恼的朋友,呵呵。

引用卡通一下:
引用玄魂:
迷糊了,如果您想写技术的文章,就不要这么多抱怨和啰嗦,
踏踏实实的有什么不好呢,
除了炫耀我没看到其他的东西,有序有精华,但被掩盖了

老吉的文章多数是“心灵的鸡汤”,它是给那些初入此道,陷于困惑、迷茫、苦恼的朋友写的。如果你是一个成手,或是一个有专长的人,那还是不要看为好;或是看完笑笑就行了,不要忿忿不平...。

老实说,我还是挺喜欢看的!

哈哈...

#89楼[楼主]  回复 引用 查看   

那你觉得写什么?才能拿得手啊?还有什么能拿得出手的呢?

引用nzperfect:强悍,这也值得拿出来说?

#90楼  回复 引用 查看   

我是看到标题有2000W才来的,但我是看完所有回复才走的。
因为我还没听过Oralce。呵呵
2010-05-02 12:58 | yikalu       

#91楼  回复 引用 查看   

不知道为什么大家都在讽刺,水品高则不看,水平低则看看。我是菜鸟感觉挺有收获的。顶。
2010-05-02 13:46 | 不信算了       

#92楼  回复 引用 查看   

虽然你说你优化了,吉日,,http://www.edovip.com你写博,发到首页,至少得给大伙说说如何优化的,不知道你是在炫耀什么??
2010-05-02 14:09 | 雪痕-shawen       

#93楼  回复 引用 查看   

首先我是马甲,进来也是被标题吸引的,“经验”二字值千金啊,但是我真的没看到经验,总结起来楼主是在优化索引上取得成功的(其他全是废话),但是楼主对原来的索引设置以及设置后的所有只字未提,只说了结果,这不叫经验,这叫炫耀,而且第11条是稍微了解点数据库都知道的,这里不会出问题,无论你怎么调整,最终编译优化后的执行顺序是一样的。声明:我是马甲。
2010-05-02 14:22 | dege301       

#94楼  回复 引用 查看   

@yikalu
呵呵,兄弟,怎么不能够联想一下呢,不要这么高标准要求吗....................
2010-05-02 14:30 | 马伟       

#95楼[楼主]  回复 引用 查看   

我也不是神仙,哪里能知道有这么多网站?呵呵,不好意思啊

引用雪痕-shawen:虽然你说你优化了,吉日,, http://www.edovip.com你写博,发到首页,至少得给大伙说说如何优化的,不知道你是在炫耀什么??

#96楼[楼主]  回复 引用 查看   

@dege301

大哥,那你自己写一个吧,我没那个能力。

#97楼  回复 引用 查看   

假大空
2010-05-02 15:04 | pankw       

#98楼  回复 引用 查看   

这点上支持吉日。现在的新人啊,把饭都摆到眼前了,还怪你不拿勺喂他。

引用吉日嘎拉 不仅权限设计:
这很可能表明你还嫩一些,相对有水平的、有点儿基础的人,看个文章的大概就明白是什么意思了,呵呵,看来你还需继续提高了再来读这个文章了,不好意思啊,不是我没写出来知识点,是你没能理解而已,不能怪我了。

引用木鱼:我是来学习的....但是没学到东西...


2010-05-02 15:07 | 笨笨的考拉熊       

#99楼  回复 引用 查看   

引用吉日嘎拉 不仅权限设计:
那你觉得写什么?才能拿得手啊?还有什么能拿得出手的呢?

引用nzperfect:强悍,这也值得拿出来说?



你去看看老赵的就比你的好,你写的都是挺38的东西..
2010-05-02 15:24 | nzperfect       

#100楼  回复 引用 查看   

上次面试个电信项目的外包公司,告诉我说他们维护的项目,光广东电信一天的数据量能够有20G。。。。该说性能优化的应该是那些人吧!!!
2010-05-02 15:48 | san.       

#101楼  回复 引用 查看   

引用笨笨的考拉熊:
这点上支持吉日。现在的新人啊,把饭都摆到眼前了,还怪你不拿勺喂他。

引用吉日嘎拉 不仅权限设计:
这很可能表明你还嫩一些,相对有水平的、有点儿基础的人,看个文章的大概就明白是什么意思了,呵呵,看来你还需继续提高了再来读这个文章了,不好意思啊,不是我没写出来知识点,是你没能理解而已,不能怪我了。

引用木鱼:我是来学习的....但是没学到东西...



笨笨的考拉熊兄,你的这个观点我就不太同意.我认为"技术"方面的问题一定要精细化,讲清楚,说明白,而不是点到为止.尤其是这类"优化"话题.
就像我现在说VS2010功能很强大,你能够知道它具体在那些方便表现很强大吗?"如果这时候你再来问我具体强大在那些方面,我说你怎么连这么基础的问题还要问啊,那你去学学VS2010具体功能再来问这个问题吧..."
之所以大家喜欢老赵的文章,因为老赵讲问题很清楚很透彻,就像前段时间写的<<数组排序方法的性能比较系列>>,难到你会说这么基础的数组排序问题还需要讲吗.....
呵呵,最后声明,咋不是针对个人,就事论事而已,千万不要引起不愉快...
2010-05-02 16:00 | 马伟       

#102楼  回复 引用 查看   

查询大数据表,不要以为建了索引就好了,有时根本都没有用到你建的索引,所以这里一定要注意你写的查询语句的执行计划,这个应该是一个熟练IT工程师的基本能力
2010-05-02 18:32 | jasonqchen       

#103楼  回复 引用 查看   

一个奇迹优化的
2010-05-02 18:57 | youan       

#104楼  回复 引用 查看   

吉日兄文章的高产令人佩服!不过我还是觉得这是一篇“鸡汤”文章,呵呵!

我想多数人可能都和我一样,非常想知道你是如何优化这个索引的?

数据库性能的优化是一门学问,也可以说是经验,索引的优化只是其中之一。

我个人认为,要想真正提高数据库的性能,还是要从数据结构上下功夫,从表的设计上下功夫,从业务逻辑上下功夫。象你举的SELECE与SUM的例子,就是数据表的设计不合理,并不能从索引上做根本的解决。

----------------------------------------
http://www.cnblogs.com/ttbaojian/archive/2007/01/18/623435.html
http://www.cnblogs.com/ttbaojian/archive/2007/01/18/623450.html
http://www.cnblogs.com/lodestar/archive/2007/04/19/719933.html
http://www.cnblogs.com/chillsrc/archive/2009/09/21/1571424.html
http://www.cnblogs.com/chillsrc/archive/2009/09/21/1571444.html
http://www.cnblogs.com/chillsrc/archive/2009/09/23/1572743.html
2010-05-02 19:22 | OC Life       

#105楼  回复 引用 查看   

@卡通一下
貌似*日的文章都能看到你在鼓风吹浪,一直强调什么鸡汤,你提出的问题,他给你解答了么?有人有了疑问,提出来,*日正面回复过么?这就是你所谓的鸡汤?至于你曾经在*日要滚蛋的文章中为其辩护说海洋的文章看不懂什么的,可是至少海洋的文章没那么多废话,很实在,也许只是他写文章的逻辑还没整清楚,所以让人理解起来很难,反观*日的他自认为的技术文章,其实大多数文字都是废话或者就是忽悠人,只有一两句结论才说到正题上,可是又不讲清楚或者给点思路(又不要直接给代码什么的),更不会在回帖中回答相关的技术问题,不知道是故意的(也就说可能要付费什么的)还是他自己都不怎么清楚。你自己可以从头看*日的文章。

如果这就是你所谓的鸡汤,希望你能坚持喝下去。
2010-05-02 19:34 | OC Life       

#106楼  回复 引用 查看   

无论是什么的程序一次要读2000W数据。这样的程序本身就有问题。
2010-05-02 20:04 | 秋色       

#107楼  回复 引用 查看   

引用OC Life:
@卡通一下
貌似*日的文章都能看到你在鼓风吹浪,一直强调什么鸡汤,你提出的问题,他给你解答了么?......
如果这就是你所谓的鸡汤,希望你能坚持喝下去。

我能得到您的关注,很是荣幸;同时也为吉日感到荣幸,这说明你也经常光顾吉日的博客,不是吗?

至于你说我是鼓风吹浪,一直强调什么鸡汤,那是因为我在喝汤之前,一定要鼓起腮帮子吹去浮油,否则喝多了对身体不好。如果非要说我,那就当我是个汤勺吧,就是来和弄鸡汤的,呵呵...

对于吉日,你恨也好、骂也好、怒也好,毕竟你自己的内心还是想来看看热闹,否则你怎么知道吉日的那么多事情呢?

我曾与吉日开玩笑,说看他的文章一定要把文章的推荐数和反对数加在一起算,如果平淡无奇,到是索然无味!你看吉日文章有那么高的阅读数,不也能说明问题吗?

说到海洋,我觉得海洋的写作态度要比吉日严肃,也很是可爱,呵呵!

海洋的文章不便在此评论,还是到海洋的博客上再说吧。

最后,我要说的是博客园中的一些文章,是属于“心灵鸡汤”类的,是用来滋润人们心灵的,而不是用来学习技术的。如果这类文章能引起您的共鸣,那说明您的心灵确实需要“鸡汤”;如果引起您的反感,那您还是快快地倒掉...

我自己既不需要“鸡汤”,也不反感,因为我就是一个大汤勺!

哈哈...

2010-05-02 21:05 | 卡通一下       

#108楼[楼主]  回复 引用 查看   

@卡通一下

我给大家带来的更多是,工作之余的娱乐,娱乐你我,娱乐大家,顺便宣传一下走火入魔系列的权限产品,呵呵。

#109楼[楼主]  回复 引用 查看   

@卡通一下

本想写个好文章,但是往往评论比文章更精彩,我也没办法,也没那个能力写出比评论更强的文章来,可能还需要锻炼几年吧。

#110楼  回复 引用 查看   

吉日说的极是!如果你真是写个技术性很强的文章,到是不一定能得到喝彩。虽说写文章不是为了喝彩,可无人关注也是非常令人寂寞的,这也大家都非常愿意把文章放在首页的原因吧!
2010-05-02 21:25 | 卡通一下       

#111楼[楼主]  回复 引用 查看   

@卡通一下

我也是解决了温饱问题,生活无忧、工作无忧、家庭无忧,才能有这么多空写写文章,扯扯蛋,真的哪个人也能跟我一样,能静下心来写来写去又赚不到钱啥的,还是需要付出很多精力、代价的,不是吹的一般人写个几百篇原创文章,还是没那么容易的,很多人的知识一方面是没的什么好写,很可能都不知道能写些什么,不管怎么样,在能写,也能得到大家的点击,已经很不错了,很成功了。

很多人,多么想吸引人家的目光,都很难啊,我的点击量、回复量有时候也很让我知足了,大家都懒得看了,那我就离失败越来越近了。

#112楼  回复 引用 查看   

@卡通一下
技术文章普遍没啥人看,不过有助于带来客户。非技术文章看的人多,有助于提高排名。
2010-05-02 21:55 | xiaotie       

#113楼  回复 引用 查看   

@卡通一下
海洋的文章没法看啊,南辕北辙。
2010-05-02 21:56 | xiaotie       

#114楼  回复 引用 查看   

吉日的文章大部分写的都挺好的。用人和营销/推销都比技术重要,水也深。只不过大部分程序员没啥体会而已。
2010-05-02 21:58 | xiaotie       

#115楼  回复 引用 查看   

能Google解决的技术,不叫技术。这种技术碰不得。
2010-05-02 21:58 | xiaotie       

#116楼[楼主]  回复 引用 查看   

你是魔鬼,鉴定完毕。

引用xiaotie:能Google解决的技术,不叫技术。这种技术碰不得。

#117楼  回复 引用 查看   

@马伟
只看老赵的吵架文。技术性文章看多了不一定好,限制思路是一方面,另一方面,给你多个选择,意志不坚定的会在各种选择之间摇摆。我经常写东西,经验是:写小说,一定不能多看小说。我培养我lp写小说,结果看了2年,杂七杂八的看了一大堆,没写出两千字出来,为什么呢?没自信。写小说,不要看小说,而是想到一个卖点,就写,然后修改,修改再修改。做技术也是,一个问题或需求,先实现,再修改修改再修改。。。
2010-05-02 22:04 | xiaotie       

#118楼  回复 引用 查看   

写软文是相当难的。看过报道,讲史玉柱写软文,半个月一个月才能写出一篇,都是改了几十遍的。而手下好几个员工,天天的工作就是写软文,就这个部门,一个月产出的软文绝大部分都被史给毙掉了,每个月通过的只有一两篇。出一篇软文,代价是上万工资。
2010-05-02 22:26 | xiaotie       

#119楼  回复 引用 查看   

引用OC Life:
@卡通一下
貌似*日的文章都能看到你在鼓风吹浪,一直强调什么鸡汤,你提出的问题,他给你解答了么?......
如果这就是你所谓的鸡汤,希望你能坚持喝下去。

我能得到您的关注,很是荣幸;同时也为吉日感到荣幸,这说明你也经常光顾吉日的博客,不是吗?

至于你说我是鼓风吹浪,一直强调什么鸡汤,那是因为我在喝汤之前,一定要鼓起腮帮子吹去浮油,否则喝多了对身体不好。如果非要说我,那就当我是个汤勺吧,就是来和弄鸡汤的,呵呵...

对于吉日,你恨也好、骂也好、怒也好,毕竟你自己的内心还是想来看看热闹,否则你怎么知道吉日的那么多事情呢?

我曾与吉日开玩笑,说看他的文章一定要把文章的推荐数和反对数加在一起算,如果平淡无奇,到是索然无味!你看吉日文章有那么高的阅读数,不也能说明问题吗?

说到海洋,我觉得海洋的写作态度要比吉日严肃,也很是可爱,呵呵!

海洋的文章不便在此评论,还是到海洋的博客上再说吧。

最后,我要说的是博客园中的一些文章,是属于“心灵鸡汤”类的,是用来滋润人们心灵的,而不是用来学习技术的。如果这类文章能引起您的共鸣,那说明您的心灵确实需要“鸡汤”;如果引起您的反感,那您还是快快地倒掉...

我自己既不需要“鸡汤”,也不反感,因为我就是一个大汤勺!

哈哈...
-----------------
不看行吗?非得每篇文章往首页放,假如你让他放到候选区,或者干脆去新手区(反正你也说了他的文章是给新手看的),阅读数超100都难,再说那个阅读数也没什么意义,又不是不能刷。

海洋是个严肃的人,但是他也乐于分享,至少你对文章提到的技术有啥问题,他看到了也会互相讨论,据理力争都没关系,总比发出来丢在那不管,别人有了技术疑问,就沉默或者指责别人没看懂什么的,你觉得博客弄成这样,又总是发到首页,还装委屈说博客园不容他,csdn抢着邀请,这样有啥意义?

既然你把*日的文章当鸡汤,没当他的文章是技术的,那又何必提什么技术问题了?

后面也不没啥好说的,都扯太远了,您请继续享用,我先找地方吐去。
2010-05-02 23:52 | OC Life       

#120楼  回复 引用 查看   

引用xiaotie:
@马伟
我经常写东西,经验是:写小说,一定不能多看小说。我培养我lp写小说,结果看了2年,杂七杂八的看了一大堆,没写出两千字出来,为什么呢?没自信。。。

说到自信,我觉得这是最根本的东西,无论做什么事,如果缺乏自信,那什么也做不好。

对于一个自信满满地人来说,看看吉日的文章也没有什么;但对于缺乏自信的人来说,就可能引发焦躁、不安、愤怒,继而引发口水。

其实吉日文章大家看多了,只要一见到标题,就能猜出是吉日文,只是有些人还是忍不住,非要“窥一窥”,然后猛烈地抨击,以彰显自己的正义。更有些人还要到边上吐一吐,不是很好笑吗?
2010-05-03 08:06 | 卡通一下       

#121楼  回复 引用 查看   

引用xiaotie:
@卡通一下
海洋的文章没法看啊,南辕北辙。

海洋应当是一个非常有激情的人,他能把自己关在屋内尽情地“造车”。也许他没有多少实战的经验,可他的那份投入,他的那份努力,还是令人感动的。

我们每个人所处的环境不一样,海洋也应当有他自己的一份天地,我还是给予深深地理解。

海洋的文章确实有些东拉西扯的,宽容一些地看,也是挺有意思的。

刚刚看到“世界因你不同”的最后一句,“成功并没有绝对的意义,成功,就是做最好的自己,并把最好的你呈现出来”

是啊!我们是否把自己做到最好了呢?
2010-05-03 08:17 | 卡通一下       

#122楼  回复 引用 查看   

引用马伟:
引用笨笨的考拉熊:
这点上支持吉日。现在的新人啊,把饭都摆到眼前了,还怪你不拿勺喂他。

引用吉日嘎拉 不仅权限设计:
这很可能表明你还嫩一些,相对有水平的、有点儿基础的人,看个文章的大概就明白是什么意思了,呵呵,看来你还需继续提高了再来读这个文章了,不好意思啊,不是我没写出来知识点,是你没能理解而已,不能怪我了。

引用木鱼:我是来学习的....但是没学到东西...



笨笨的考拉熊兄,你的这个观点我就不太同意.我认为"技术"方面的问题一定要精细化,讲清楚,说明白,而不是点到为止.尤其是这类"优化"话题.
...




呵呵,马兄多虑了,讨论观点而已么,不至于的。

我写文章也是喜欢讲得非常细致的,可以看看我的博客,有的文章我是每一步操作都要截图的。而且一项技术,从操作到原理都会说到,读者照着文章操作,甚至可以一点脑筋不动就做出来。而不是像吉日这样一带而过。

这里我说的不是不要细节,而是说如何写文章是根据每个人的风格不同决定的。一盘文章写的详细,能教会你知识,哪应该心怀感激;如果写的不细,也没啥好说的。因为作者不欠你什么,没必要为你没有学到东西而负责。

不过现在博客园的首页也是够乱的了,真是林子大了啥鸟都有,什么破文章都敢往上放,前几天我都忍不住差点开骂了。我发首页的宗旨只有一条,那就是确保这篇文章肯定对别人的实际工作有帮助才会放,像吉日的这篇文章,以我的标准不但首页,连新手区我都不会放的,只会归档在文章里,为以后做个参考。
2010-05-03 12:55 | 笨笨的考拉熊       

#123楼[楼主]  回复 引用 查看   

@笨笨的考拉熊

大哥,不小心我也踩了你的博客,虽然不是菜鸟吧,也不神奇到哪里去,先别光顾着批评别人了,先把自己的博客写得高度、深度提高了,再来批评我们这些菜鸟吧,从你的留言与你的博客质量比,差距太大了,我还以为哪个大师来了,唉,让我有些失望啊,兄弟。

#124楼  回复 引用 查看   

SQL Server 2000和SQL Server 2005/2008是不一样的,在2k的时候SQL Server几乎就是个Black box,所以要进行优化的话你可以使用的手段其实是比较有限的,但是还是可以通过Profile来解决大多数问题的。从2005/2008来说,系统体系还是发生了很多的变化,为我们提供了很多手段和方式来进行优化。
不管是Oracle/SQL Server也好,要做好优化,关键是要了解他们的机制,然后采取楼上几位XDJM的优化建议和意见来分析问题,然后制定方案来解决问题,这样的话做到一定的优化还是可以的。当然了,要是系统的架构有问题的话,你可以提升性能的空间的天花板也是很快要被touch的,在那时候得找找别的出路了,一切到最后都是空间和时间的平衡,关键在于自己的取舍。
换个角度来说,单纯讨论Oracle/MS SQL产品其实是无意义的,花钱买了别人的产品,还帮别人吹牛,这样的话难道厂商就会给你打折了吗?No Way!所以没必要进行产品好坏之争,除非Oracle/MS给你们发红包。
2010-05-03 15:41 | WebClerk       

#125楼  回复 引用 查看   

我记的楼主不是要搬走吗?
2010-05-03 19:23 | NewSea.       

#126楼  回复 引用 查看   

哈,这个不错

如果是我优化,我一般会修改这块的程序

纯SQL优化,我功力不够
2010-05-03 19:58 | 大石头       

#127楼  回复 引用 查看   

算法的力量是很大的,哈哈
2010-05-03 21:09 | FireWard       

#128楼  回复 引用 查看   

引用吉日嘎拉 不仅权限设计:
大哥,那你觉得我这篇不行,那你就写一篇,露一手呗,我这个总不不写强吧?你就算是在再牛,你的知识写不出来,最终会跟你一起离开世界,不写出来的东西,跟没说是一样的。

引用blackcat:
搞了N年数据库,第一次看到这么说数据库优化的。呵呵。
哥们,不要这么水好不好。
要不怪不得别人说你。




老兄,我是好意。莫攻击哈。
2010-05-03 23:38 | blackcat       

#129楼  回复 引用 查看   

数据查询优化第一选择是索引!一个公司都没有人能没有人知道!?!?!?
大概能了解楼主巨牛无比公司的水平了!

楼主不去CSDN了吗?欢送仪式都搞了!!!!
2010-05-04 08:42 | 阿水       

#130楼  回复 引用 查看   

说句题外话!博客园程序高手多了去了。但是感觉(没有证据)数据库熟悉(不说精通,只是熟悉)的人真的不多。很多基础的东西都没有掌握。
2010-05-04 08:48 | 阿水       

#131楼  回复 引用 查看   

引用吉日嘎拉 不仅权限设计:
大师,我也不是万能的,我希望我这篇文章,能引出很多其他有想法的人的文章,让大家也写写这方面的深入的文章。

引用马伟:
吉日大牛兄弟:
很高兴看到你这么优美的标题名称,我也经常碰见上亿级的ORACLE数据库查询计算优化问题(我们是专业开发电力行业软件的,所以数据量特别大).我们知道,ORACLE数据库优化方面的技术很多,除了最常用的索引之外,比如你还可以使用内存表技术等.
但看了你的索引优化之后,"按不同的组合、不同的索引方式进行优化"没看清楚具体怎么优化的方法(或许咋是小菜).依我看来,索引优化的方法也很多,并且索引优化这个"名词性的口号"好象大家都知道.能够给出具体案例吗,呵呵,这样也才有说服力.......


这就是所谓的吉日大师,在真正的大师面前也只能敷衍一下,杯具!
2010-05-04 08:51 | YSL       

#132楼  回复 引用 查看   

楼上的兄弟,早上好!

大家不要那么地叫真,五一刚过放松、放松...

看一个人的技术水平,不是看他潇潇洒洒地写了多少;或是看他口若悬河地说了多少,只从一些技术的细节上,就大致可以判断出他的水平了。

再说,博客吗,又不是论文,何必这么当真呢?就是论文,现在不也是假大空,你引述我的、我诠释你的,大家一同快快乐乐的,呵呵!
2010-05-04 09:02 | 卡通一下       

#133楼  回复 引用 查看   

其实还是可以学到一些技术东西的,通过看这篇文章可以总结下:

1:首先对SQL进行解析,也就是解剖分析,如果你不理解SQL语句代表的内容那么你又该如何优化呢,所以楼主前面做了那么多的解析操作,比如去字段啊,拆分啊,sum啊。这其实都是一个对SQL语句了解的过程。

2:“16:继续坚信问题应该是在设置索引上,继续把重点突破口放在深入索引设置上,按不同的组合、不同的索引方式进行优化”,这句话我是这么理解的,一般像2000W条数据查询出来的比较慢,可以说99%的情况是没有正确的使用索引,或者说根本就没有使用索引,所以LZ的坚信是没问题的,这点从后面的实际解决问题也可以看出来,按不同的组合,不同的索引方式进行优化,这也体现了LZ不愿思考的习惯,给人一种瞎猫碰死耗子的感觉,其实可以对这方面再详细讨论下,为什么用这种组合什么的,这样以来,相信LZ的文章,以及技术能力肯定会更加精彩一点。

3:最后楼主通过设置索引解决了问题,但是LZ有没有考虑设置索引有没有什么不良影响啊,会不会对其他SQL有作用,以及可以针对查询计划做下分析什么的。

4:LZ写的文章,还是符合LZ的性格的,浮夸,这点从
“2000W条数据的性能优化,我跟搭档一起努力做到了,下一次目标是2亿条数据的性能优化瓶颈了,还是照样需要有信心的。

去年做的是百万元RMB级别的信息管理系统,今年开始在做千万元RMB级别的信息管理系统,将来会是亿元RMB级别的信息管理系统了,还是照样需要有信心的。”就可以看出来了,给人一种,稍微有点阳光就灿烂,给点颜色就开染坊的感觉,虽然这样LZ肯定很爽,虚荣心得到了极大满足,但总的来说像这样的字眼还是少出现为妙,哈哈。

5:希望LZ继续努力,可以再朴实一点,知道LZ是想鼓励一些人,但是这样子的话,这些人不仅不会被鼓励,反而会自卑。有时候大师之所以是大师,是因为别人叫你大师,而不是自己叫自己大师,希望LZ体会。
2010-05-04 09:14 | LindyBoy       

#134楼  回复 引用 查看   

怎么不使用查看执行计划的方法,可以查看那他表的查询逻辑扫描比较多来定位哪些需要建立索引的表,感觉有点摸着石头过河的感觉!
2010-05-04 10:57 | 庄燚强       

#135楼[楼主]  回复 引用 查看   

@庄燚强

饿都快饿死了,先过河吃饱喝足,然后再想想,下次应该怎么过河效率会更高再说。

#136楼  回复 引用 查看   

楼主,支持你
2010-05-04 13:20 | sunshine51       

#137楼  回复 引用 查看   

引用NewSea.:我记的楼主不是要搬走吗?

你记错了,楼主说你们逼我走,我就不走。
参见
http://www.cnblogs.com/jirigala/archive/2010/05/03/1726816.html
2010-05-04 14:05 | 阿水       

#138楼  回复 引用 查看   

....
2010-05-04 14:19 | WorkTimer       

#139楼  回复 引用 查看   

太水了,下次会不会说用Java写了一个HelloWorld?
结果据复杂无比,全公司都没有人会,最后被楼主神奇的
解决了。终于在控制台上打印出了“Hello world"!
估计能比这篇还火。
楼主加油!!!
2010-05-04 14:19 | 阿水       

#140楼  回复 引用 查看   

怎么到了16条才想到索引???

2000W数据完全不是瓶颈

不要太依赖数据库,2000万?就算再加两个0. 20亿数据,只要数据表设计合理,用MySql数据库也轻松搞定


一张表2000万数据是很忌讳的,为何不用分库分表的形式来提高性能呢?

举个例子20亿数据,全国20个省在使用,那么每省一台数据库服务器,那分担在每台服务器上也就1亿数据,然后对每服务器建表1000张(根据ID取模,结果即为表名),1亿级别的数据就被分解成了10万级别,再对每张表建立索引,20亿数据的查询根本就是毫秒级的事情。

另外缓存也是很重要的。

PS,购买正版Oracle的钱远不止买20台服务器了
2010-05-05 11:14 | 小 雷       

#141楼  回复 引用 查看   

引用小 雷:
怎么到了16条才想到索引???

2000W数据完全不是瓶颈

不要太依赖数据库,2000万?就算再加两个0. 20亿数据, 只要数据表设计合理,用MySql数据库也轻松搞定

你这个同志真糟糕!你是哪个单位的?

难道你没听说过“贵人多忘事”、“大智若愚”什么的?

哈哈...
2010-05-05 11:27 | 卡通一下       

#142楼  回复 引用 查看   

引用卡通一下:
引用小 雷:
怎么到了16条才想到索引???

2000W数据完全不是瓶颈

不要太依赖数据库,2000万?就算再加两个0. 20亿数据, 只要数据表设计合理,用MySql数据库也轻松搞定

你这个同志真糟糕!你是哪个单位的?

难道你没听说过“贵人多忘事”、“大智若愚”什么的?

哈哈...



没明白你的意思...
2010-05-05 12:14 | 小 雷       

#143楼  回复 引用 查看   

引用小 雷:
引用卡通一下:
引用小 雷:
怎么到了16条才想到索引???

2000W数据完全不是瓶颈

不要太依赖数据库,2000万?就算再加两个0. 20亿数据, 只要数据表设计合理,用MySql数据库也轻松搞定

你这个同志真糟糕!你是哪个单位的?

难道你没听说过“贵人多忘事”、“大智若愚”什么的?

哈哈...


没明白你的意思...

哈哈!Sorry一下,只是调侃调侃。

我挺认同你的观点,难道没有看到我给改的黑体字?
2010-05-05 12:21 | 卡通一下       

#144楼  回复 引用 查看   

@卡通一下
喔,呵呵
2010-05-05 12:32 | 小 雷       

#145楼  回复 引用 查看   

好多人都不太会阅读。。人家说的是优化索引,根据不同的方式优化索引的顺序和层次。一个个的都蹦出来以为人家没加过索引。。。太好笑。

#146楼  回复 引用 查看   

PL/SQL可以看查询计划
2010-05-05 20:36 | wgz       

#147楼  回复 引用 查看   

数据优化都不知道先看索引,还好意思在这里炫耀,吉日还不走,无语
2010-05-05 22:38 | 寻自己       

#148楼  回复 引用 查看   

引用韦恩卑鄙 v-zhewg @waynebaby:好多人都不太会阅读。。人家说的是优化索引,根据不同的方式优化索引的顺序和层次。一个个的都蹦出来以为人家没加过索引。。。太好笑。

夸张了吧?他都不知道有执行计划,那他优化索引的顺序和层次的依据是什么?靠猜吗?哈哈。我觉的好笑不是大家而是你。
2010-05-06 08:52 | 阿水       

#149楼[楼主]  回复 引用 查看   

@阿水

就你啥都懂了,可以了不?你懂那么多,我也没见你写出什么像样的文章来啊,垃圾。

#150楼  回复 引用 查看   

引用阿水:
引用韦恩卑鄙 v-zhewg @waynebaby:好多人都不太会阅读。。人家说的是优化索引,根据不同的方式优化索引的顺序和层次。一个个的都蹦出来以为人家没加过索引。。。太好笑。

夸张了吧?他都不知道有执行计划,那他优化索引的顺序和层次的依据是什么?靠猜吗?哈哈。我觉的好笑不是大家而是你。

阿水,我怎么觉得你有痛打落水狗的精神!

记住,中国有一句古训:得饶人处,且饶人!

呵呵...
2010-05-06 09:02 | 卡通一下       

#151楼[楼主]  回复 引用 查看   

@卡通一下

若是痛打落水狗,还算好了,就是感觉到被狗咬住了,甩也甩不掉,踢也踢不开的感觉,就更搞笑了,而且是一只小哈巴狗,死命咬着,我跟这只小狗狗可是无怨无仇的呀,真是发神经的小狗狗一条了,林子大了,什么狗都有啊。

而且是个马甲,呵呵。

#152楼  回复 引用 查看   

不知道查询计划这种工具 直接按照理论优化索引的 那不正是理论基础良好的人么?

可笑x2

#153楼  回复 引用 查看   

楼主优化的思路不对,Oracle提供了不少的优化分析的工具,为什么不利用,通过这些工具能很快发现问题的关键点在哪里,直接定位病原。少走多少弯路。

#154楼[楼主]  回复 引用 查看   

@知道得越多知道的越少

我说我没用了吗?怎么就这么专牛角尖了?我说了,我没用优化分析的工具? 我说了我没用执行计划了吗?

#155楼  回复 引用 查看   

楼主若能虚怀若谷,从别人的回复中分析自己的不足,而不是认为他人都是不怀好意的,将来必会更上一层楼。

#156楼[楼主]  回复 引用 查看   

@知道得越多知道的越少

好多年前,在宁波时,有个部门经理,就教过我看查询计划什么的,肉眼运行都知道问题出在哪里了,还用得着看查询计划嘛?

还没来得及用查询计划,问题就提前被解决了,等遇到更困难的问题,查询计划才能派上用处,肉眼三下两下就解决了。

#157楼  回复 引用 查看   

楼主很牛逼,我要向你学习。
2010-05-06 17:12 | 聋哑病人       

#158楼  回复 引用 查看   

写文章就写文章,但每次看了你的文章都受不了...不像个搞技术的.
尊重自已,尊重别人...
2010-05-06 22:53 | 透明梦柯       

#159楼  回复 引用 查看   

后来几年里看了很多数据库方面的资料,但是一直没遇到过能发挥实力的机会,也学了很多数据库脚本编成,但是一直没机会能露两手,不过自己一直是对数据库优化很有信心了,平时也很自信。
这个是数据库脚本编程,不是编成.........

看了这篇文章对我什么用都没有,所以决定以后不看了。
2010-05-09 09:55 | Artur       

#160楼[楼主]  回复 引用 查看   

@Artur

谢谢你的提醒,马上修正好了。

#161楼  回复 引用 查看   

l楼主你好,我最近也遇到一个问题,就是从oracle数据库导出到Excel的问题,速度很慢,我跟踪过了,写一条数据就要半秒钟
程序流程如下:1 打开excel模板
2 从数据库中查找sheet名,数据,以及数据的位置
3 写数据
数据量大概有1000条,导出几乎要十分钟左右!
希望您给点建议,提高excel导出的速度
2010-05-09 17:11 | zhanxj       

#162楼[楼主]  回复 引用 查看   

@zhanxj

本人一般提供有偿技术支持,这个问题,我大概5-6年前解决过。

#163楼  回复 引用 查看   

我擦,这种也拿出来讲
说一堆,原来是索引优化
你没听说过反转优化吗?pivot!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值