1. 那么这个 IO 资源就会被他一直占用,这样别人想用就没有办法用了,所以这会造成资源浪费。
你要关闭资源,最好写在 nally 中,如果这个东东出现一个异常,你就关不掉了。
(实际的输入流是一个网络连接。如果忘记 close() 的话,它会一直占用着,直到 timeout 后系统自
动关闭这个网络连接。也就是说,如果你忘记了关闭这个资源,到了一定的时候,系统会替你关闭。但
如果类似这样的程序被执行很多次,就会有大量资源被长时间无效占用,极端情况下可能导致后续程序
资源不足而失败。
也不是所有的资源都能自动回收,比如 FileInputStream,你要是忘记关闭了,它就一直占用着,直
到 JVM 退出)
2. ORDER BY 子句只在两种严格的条件下使用索引.
ORDER BY 中所有的列必须包含在相同的索引中并保持在索引中的排列顺序.
ORDER BY 中所有的列必须定义为非空.
WHERE 子句使用的索引和 ORDER BY 子句中所使用的索引不能并列.
例如:表 DEPT 包含以下列:
DEPT_CODE PK NOT NULL DEPT_DESC NOT NULL DEPT_TYPE
NULL 非唯一性的索引(DEPT_TYPE)
低效: (索引不被使用)
SELECT DEPT_CODE FROM DEPT ORDER BY DEPT_TYPE
EXPLAIN PLAN: SORT ORDER BY TABLE Access FULL
高效: (使用索引)
SELECT DEPT_CODE FROM DEPT WHERE DEPT_TYPE > 0
EXPLAIN PLAN: TABLE ACCESS BY ROWID ON EMP INDEX RANGE
SCAN ON DEPT_IDX
3 避免改变索引列的类型.
当比较不同数据类型的数据时, ORACLE 自动对列进行简单的类型转换.