以前做研发,SQL方面有数据库高手处理
现在转做运维了,发现自己的SQL水平不太够用。
平时工作中用到的主要包括:基本SQL,存储过程,SQL效率,数据库效率,JOB等方面。请个各位高手们,有些什么比较好的提高SQL水平的方法。
有好的学习资料提供更好。先谢过。

解决方案 »

  1.   

    看看书,上上网,试着回答CSDN上的一些提问,这上面的高手还是挺多的。不懂得,多问问他们就好了
      

  2.   


    个人观点:
       要想写出好的SQL,那么就必须了解SQL 语句在DB里的解释过程,知道它的执行计划,以及影响性能的地方,
    比如索引: 执行计划中可选择
    (1)index unique scan
    (2)index range scan
    (3)index full scan 
    (4)index fast full scan 
    (5)index skip scan错误的执行计划会导致SQL 运行时占用过多CPU,I/O 资源,简言之,就不是最优的SQL.  所以要想写出好的SQL,就要先了解其运行机制。 现在很多的开发人员写出来的SQL 都仅仅是满足于功能上的实现,在效率上还有很多优化的余地,而且数据字典的设计也会影响SQL的运行效率,所以优化这块还是比较复杂。Oracle SQL优化 总结
    http://blog.csdn.net/tianlesoftware/article/details/7008801
      

  3.   

    我觉得SQL这个东西,主要还是多写,多思考.当初我的SQL也就会谢谢简单的语句,连NVL都不知道,后来有一段时间,专门负责客户的报表开发,几十张报表..各种需求都有..想着各种各样的办法去实现..你们系统肯定有很多的报表,你有空的时候可以自己去实现它,然后看看其他人怎么去实现的,就会有成长。记住,尽量不要用过程、游标和固化表去实现一个报表,因为写久了你就会发现,SQL有各种各样的函数去实现各种各样的功能..这是我的成长过程,希望对你有帮助.写出一个SQL固然是好的,然后写出一个优化、效率的SQL是困难的,给你一篇非常好的文档,如果你能完全吃透,对你SQL优化会有一个很大的成长。http://wenku.baidu.com/view/f93259661ed9ad51f01df200.html?from=rec&pos=0&weight=4&lastweight=1&count=4
      

  4.   

    忘了说,上面的文档,在ORACLE 11g 以后会有部分的不适用,但大体的思想是正确的