Sql Oracle按级别连接是否有最大级别数?
我有一个connect by level查询作为CTE链的一部分。这会一直正常运行,直到到达connectby级别,这会导致查询超时 上面的CTE返回250行,最高继承人等级将在13-14级左右Sql Oracle按级别连接是否有最大级别数?,sql,oracle,Sql,Oracle,我有一个connect by level查询作为CTE链的一部分。这会一直正常运行,直到到达connectby级别,这会导致查询超时 上面的CTE返回250行,最高继承人等级将在13-14级左右 按级别连接查询可以返回的深度级别数是否有限制?否: SELECT LEVEL FROM DUAL CONNECT BY LEVEL <= 1e38; 选择级别 来自双重 按级别连接否: 选择级别 来自双重 按级别连接级别的数量受运行时可用内存的限制。从这个角度来看,13-14级是超级安全的 如果
按级别连接查询可以返回的深度级别数是否有限制?否:
SELECT LEVEL
FROM DUAL
CONNECT BY LEVEL <= 1e38;
选择级别
来自双重
按级别连接否:
选择级别
来自双重
按级别连接级别的数量受运行时可用内存的限制。从这个角度来看,13-14级是超级安全的
如果没有其他复杂问题,问题只是“级别太多”,那么内存限制会相对较快地达到,并且在出现这种情况时会收到错误消息。如果您的查询运行了很长时间,那么肯定还有其他原因
最可能的怀疑是一个不完整的CONNECTBY子句,其中您没有足够的条件,并且在每个级别生成了太多的行。它可以在相对较低的级别上生成大量行。级别的数量受运行时可用内存的限制。从这个角度来看,13-14级是超级安全的
如果没有其他复杂问题,问题只是“级别太多”,那么内存限制会相对较快地达到,并且在出现这种情况时会收到错误消息。如果您的查询运行了很长时间,那么肯定还有其他原因
最可能的怀疑是一个不完整的CONNECTBY子句,其中您没有足够的条件,并且在每个级别生成了太多的行。这会以相对较低的级别生成大量行。理论上没有限制,但实际上它受到配置的SGA/PGA的限制。您的语句导致我的服务器上出现“ORA-30009:没有足够的内存进行操作连接”理论上没有限制,但实际上它受到配置的SGA/PGA的限制。您的语句导致我的服务器上出现“ORA-30009:内存不足,无法通过操作进行连接”