ITPub博客

首页 > Linux操作系统 > Linux操作系统 > sql优化原则

sql优化原则

原创 Linux操作系统 作者:hwhsmiple 时间:2011-03-01 15:50:19 0 删除 编辑
    一般情况下,Hash Join处理代价非常高,是数据库服务器内存和CPU的头号杀手之一,尤其是涉及到分区(数据量太大导致内存不够的情况,或者并发访问很高导致当前处理线程无法获得足够的内存,那么数据量不是特大的情况下也可能需要进行分区),为了尽快的完成所有的分区步骤,将使用大量异步的I/O操作,因此期间单一一个线程就可能导致多个磁盘驱动器出于忙碌状态,这很有可能阻塞其它线程的执行。 因此,
    1. 要避免大数据的Hash Join,尽量将其转化为高效的Merge Join、Nested Loops。可能使用的手段有表结构设计、索引调整设计、SQL优化,以及业务设计优化。例如冗余字段的运用,将统计分析结果用service定期跑到静态表中,适当的冗余表,使用AOP或类似机制同步更新等。
    2. 尽量减少join两个输入端的数据量。这一点比较常犯的毛病是,条件不符合SARG,在子查询内部条件给的不充分(SQL过于复杂情况下SQL Server查询优化器经常犯傻,写在子查询外部的条件不会被用在子查询内部,影响子查询内部的效率或者是跟子查询再join时候的效率)。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/24686519/viewspace-688196/,如需转载,请注明出处,否则将追究法律责任。

上一篇: linux目录
下一篇: 追女孩子的要点
请登录后发表评论 登录
全部评论

注册时间:2010-12-24

  • 博文量
    13
  • 访问量
    10467