论坛首页 综合技术论坛

提高你的SQL能力,温馨小提示

浏览 38715 次
该帖已经被评为良好帖
作者 正文
   发表时间:2006-12-30  
Ivan Li 写道

1:基础都不会如何做优化,连上面的那些都不清楚,你给开发人员一个查询计划,我不信他能看懂。
2:基本的东西都不懂,怎么能保证写出结构和性能良好的SQL?
3:上面的东西如果不懂,我敢说一定不是一个合格的Sybase开发者,在Sybase上的开发能力一定很差。
4:Sybase分析器是做的不好,建议4个表以内的连接,而DB2,Oracle就没有这么说,随便连,如果这个不知道,那么在Sybase上跑的sql,搞了十几个表连接,你还在那里优化什么?(在Sybase里最好分开写)
5:如果基础都不会,怎么会保证写出的SQL能够用好索引,保证速度?
6:基本概念是提高能力的基础,基础不懂,去搞优化,简直是开玩笑!

   嘿嘿,解释两点。第一,知道你所谓的基础并不是不好,或者说一个优秀的数据库开发人员应该有意识地去提高这样的能力。第二,这样的东西作为对非底层系统开发优化的一般开发人员来说,切入点并不恰当,而且作为考试去评估就更加不合适了。这样的题目考了高分,没有太多意义的。我敢说60%考了高分的都会写出相当烂的SQL,而30%考不了高分的做基本的开发效率绝对也不差。
   在培训及评估定位时,一般都需要把SQL的开发编程与数据库原理特性分开的。在做这样的考试评估时,首先要清楚的是开发人员最欠缺的,也最容易识别水平高低的东西在哪里。不是拿几本数据库的书看一看,背一背,得了高分能力就有了。
0 请登录后投票
   发表时间:2006-12-31  
凤舞凰扬 写道
Ivan Li 写道

1:基础都不会如何做优化,连上面的那些都不清楚,你给开发人员一个查询计划,我不信他能看懂。
2:基本的东西都不懂,怎么能保证写出结构和性能良好的SQL?
3:上面的东西如果不懂,我敢说一定不是一个合格的Sybase开发者,在Sybase上的开发能力一定很差。
4:Sybase分析器是做的不好,建议4个表以内的连接,而DB2,Oracle就没有这么说,随便连,如果这个不知道,那么在Sybase上跑的sql,搞了十几个表连接,你还在那里优化什么?(在Sybase里最好分开写)
5:如果基础都不会,怎么会保证写出的SQL能够用好索引,保证速度?
6:基本概念是提高能力的基础,基础不懂,去搞优化,简直是开玩笑!

   嘿嘿,解释两点。第一,知道你所谓的基础并不是不好,或者说一个优秀的数据库开发人员应该有意识地去提高这样的能力。第二,这样的东西作为对非底层系统开发优化的一般开发人员来说,切入点并不恰当,而且作为考试去评估就更加不合适了。这样的题目考了高分,没有太多意义的。我敢说60%考了高分的都会写出相当烂的SQL,而30%考不了高分的做基本的开发效率绝对也不差。
   在培训及评估定位时,一般都需要把SQL的开发编程与数据库原理特性分开的。在做这样的考试评估时,首先要清楚的是开发人员最欠缺的,也最容易识别水平高低的东西在哪里。不是拿几本数据库的书看一看,背一背,得了高分能力就有了。

这种讨论没有意义了,你觉得不重要完全可以不看,我认为对我有用,所以我看了,我觉得对我有提高,也可能对别人有提高,所以我贴出来了!
你要是觉得不爽就不要来看,谢谢!
我们不要程序员相轻,好吗?来这里提高是目的!
0 请登录后投票
   发表时间:2007-01-08  
我支持楼主的观点,好像大家见过的不会考试的强人或者只会考试的弱人太多了似的。
网上铺天盖地都是这样的评论,甚至有的逃学犯动不动就拿自己和比尔相比。
凤舞凰扬说的并没有错,但是你说的和楼主说的完全是两回事,根本没有对立性,不能拿来做辩论,而楼主提出论题再先,所以我支持楼主。
还有一点,楼主说的即使是错话,但是也没有废话。
将楼主的话改成废话如下:
》》1:基础都不会如何做优化,连上面的那些都不清楚,你给开发人员一个查询计划,我不信他能看懂。
基础都不太会如何很好地做优化,连上面的那些都不太清楚,你给开发人员一个查询计划,我不信他能完全看懂。
》》2:基本的东西都不懂,怎么能保证写出结构和性能良好的SQL?
基本的东西都不太懂,怎么才能保证写出结构和性能良好的SQL?
》》3:上面的东西如果不懂,我敢说一定不是一个合格的Sybase开发者,在Sybase上的开发能力一定很差。
上面的东西如果一点都不懂,我不敢说一定不是一个合格的Sybase开发者,但在Sybase上的开发能力一定很一般。
》》4:Sybase分析器是做的不好,建议4个表以内的连接,而DB2,Oracle就没有这么说,随便连,如果这个不知道,那么在Sybase上跑的sql,搞了十几个表连接,你还在那里优化什么?(在Sybase里最好分开写)
优化起来肯定要麻烦得多。
》》5:如果基础都不会,怎么会保证写出的SQL能够用好索引,保证速度?
如果基础都不会,怎么会保证写出的SQL能够用好索引,这要是碰到大的企业应用怎么保证速度?
》》6:基本概念是提高能力的基础,基础不懂,去搞优化,简直是开玩笑!
基本概念是提高能力的基础,基础不太懂,去搞优化,除非是怪才,否则简直是开玩笑!
凤舞凰扬的意思我想可能是,一般的人让他写SQL得了,十个有八个胡乱写也不会是有问题了,真要出了问题,自然有SM级的去搞定。
还有凤舞凰扬本身已到SM级,一招既出,即含36种变化,要去仔细回想诸般变化,确实是一件无聊无趣的事。
0 请登录后投票
   发表时间:2007-01-26  
讨厌考试
0 请登录后投票
   发表时间:2007-02-05  
不同意Ivan Li的说法,我还是觉得如果你只是一个程序员的话,最重要的是掌握标准SQL语句就行了,select, insert, update, delete, inner join,left outter join, right outter join这些基础查询技巧。做到随便给你一个查询逻辑你能用SQL表达出来。
您说要掌握基本概念,标准SQL语句就是基本概念。基本概念都是些记在心里就行了的东西,其实现在公司里的开发很少叫一般程序员直接写SQL语句的,一般都有公司自己的框架,做好ORM映射了,一般程序员只要调用接口就行了。
感觉Ivan你就像是很强调书本性质“基础”.
0 请登录后投票
   发表时间:2007-02-06  
pf_miles 写道
不同意Ivan Li的说法,我还是觉得如果你只是一个程序员的话,最重要的是掌握标准SQL语句就行了,select, insert, update, delete, inner join,left outter join, right outter join这些基础查询技巧。做到随便给你一个查询逻辑你能用SQL表达出来。
您说要掌握基本概念,标准SQL语句就是基本概念。基本概念都是些记在心里就行了的东西,其实现在公司里的开发很少叫一般程序员直接写SQL语句的,一般都有公司自己的框架,做好ORM映射了,一般程序员只要调用接口就行了。
感觉Ivan你就像是很强调书本性质“基础”.

感觉好多人是被hibernate惯坏了,呵呵
引用

基本概念都是些记在心里就行了的东西

记在心里?我见过很多人不知道group by是怎么回事,在什么情况下要用group by
0 请登录后投票
   发表时间:2007-02-06  
为什么你们只讨论自己会的呢
我觉得好的程序员不轮水平高低应该是对不了解的东西眼睛发光的
特别是自己急需要用到的
至于具体技术细节是心里知道还是找来现用 都无可厚非
当然 知道的越多越好啦  只要是对的就行
0 请登录后投票
   发表时间:2007-02-06  
补充说明一下
我的SQL水平很差 因为接触的少 顶多是能用用中间件
只是觉得 大家都要互相好好学习 不要动气哈
0 请登录后投票
   发表时间:2007-02-10  
其实这个问题要分怎么看了
1,多了解一些,总是有好处的,这个无庸置疑
2,我觉得有些题过了,比如哪个日期处理的题,我想大多数的开发人员知道应该是后面的一种处理方式,但是具体的函数以及相关参数肯定记不太清楚(或者说没有必要),使用的思考参考下手册就好了,不过这样考试是肯定考不过的
3,对于数据库优化,其实有三个层面:其一,数据库全局配置的优化,肯定是DBA的活;其二,合理的表结构以及索引、视图等优化,我觉得应该是开发人员初步确定,DBA过一下(权当审核下吧);其三,SQL语句的优化,对于简单的SQL,我想一般开发人员没有问题;对于复杂或者对性能影响比较大的SQL,一般是开发人员先不管性能先实现,然后db人员专门有针对的优化
4,对于sql的优化,不同的db差异很大的;我以前做得多点得是MS SQL和Oracle,MS SQL得优化很明显,我们专门优化得SQL语句在测试以及最后得生产系统中得性能提升比较一致;但是oracle有时候我们觉得很慢的SQL后来实际并不慢,而一些我们觉得优化很好或者按照优化工具改进得sql得效率最后反而不怎么样;这个我们当时自己解释为不同得数据库对sql得编译以及预处理不一致造成得,Oracle(本身对)的SQL优化比MS SQL好
5,对于考试,我觉得多多考试思维方面的东西好些,至于一些具体的写法什么的,参考手册好点;当然,熟能生巧,用多了就熟悉了
0 请登录后投票
   发表时间:2007-02-10  
楼主写的好详细啊~
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics