日期:2014-05-17  浏览次数:20551 次

简单的一句代码 ,花了1秒,如何优化?
SQL code

SELECT 
    a.OUID,
    a.OUName,
    a.OULevel,
    a.OUFullName,
    a.ParentOUID
    ,(SELECT COUNT(1) FROM tbEmployeeInfo tei 
     WHERE 
        (a.OULevel> 2 AND tei.OUIDs LIKE a.OUID+'%')
        or (a.OULevel< 3 AND tei.DeptOUIDs = a.OUID)
    ) AS 人员总数
FROM tbOrganization a
WHERE  a.OULevel< 4
ORDER BY OULevel



就是统计每个部门有多少人

------解决方案--------------------
先查看SQL执行计划, 然后根据执行计划考虑下面的方法:
1,尝试把子查询拆出来
2,考虑在tei.DeptOUIDs和a.OULevel上面建索引