• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    oracle 使用递归的性能提示测试对比
    当你用start with connect by nocycle prior
    进行递归查找数据的时候那么下面两段代码的性能肯定是有明显差别的大家用的时候 请注意了代码可以不看下面 直接看我的总结
    //查询某个文件夹文件夹ID=12里面的层次数以及 文件的个数
    A:为文件之间的关联关系 上下级关系
    B:为文件夹里面的文件
    正解:
    复制代码 代码如下:

    select count(0) cou,max(levels)+1 as levels
    select C.a1,C.a2,C.levels...
    from
    (Select A.a1 ,A.a2,,,
    level levels//层次关系
    from A
    where A.a1=,,,
    and A.a2=....
    start with A.a1 = 12
    connect by nocylce prior A.ID=A.ParentID
    ) C left join B
    on C.文件ID=B.文件ID
    and C.文件类型=文件夹

    错解:
    复制代码 代码如下:

    select count(0) cou,max(levels)+1 as levels
    select C.a1,C.a2,C.levels...
    from
    (Select A.a1 ,A.a2,,,
    level levels//层次关系
    from A
    left join B
    on C.文件ID=B.文件ID
    where C.文件类型=文件夹
    and A.a1=,,,
    and A.a2=....
    start with A.a1 = 12
    connect by nocylce prior A.ID=A.ParentID
    ) C

    上面代码的区别在于
    正确的做法是
    先递归循环出某个文件夹下面的所有的文件夹以及文件在关联文件表查找文件的内容
    错误的做法是
    先找到某个文件夹下面的 文件夹和文件
    然后再 递归循环出 他下面的文件夹里面所有的文件夹以及文件
    这样就造成了关联关联后冗余的数据 一起进行了 循环递归 本来就和文件没有关系 不应该吧文件也放进来递归
    您可能感兴趣的文章:
    • 深入sql oracle递归查询
    • Oracle 11GR2的递归WITH子查询方法
    • Oracle通过递归查询父子兄弟节点方法示例
    • oracle SQL递归的使用详解
    • Oracle递归查询start with connect by prior的用法
    上一篇:And,Where使用提示以及用+进行左关联的提示及注意事项
    下一篇:Oracle与Mysql主键、索引及分页的区别小结
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    oracle 使用递归的性能提示测试对比 oracle,使用,递归,的,性能,