2025-11-18 04:13:15
首先用大白话说:Oracle里用link命令建数据库连接,用explain看SQL执行计划。生成的explain文件默认存在数据库临时表空间里,具体路径看操作系统和数据库设置。比如Linux下可能在/oracle/dbs/目录,但得确认表空间有没有权限。
为啥是这个答案呢?因为explain生成的执行计划本质是存到临时表空间的SQL表里,比如DBA_TAB_MODIFICATIONS。根据Oracle 19c文档,临时表空间路径由参数temp_tablespaces决定,默认是多个路径用逗号分隔。比如我之前调优时遇到问题,发现explain文件在/oracle/dbs temporary tablespace下,后来查到配置里有/oracle/dbs, /oradata temporary tablespace。再比如有人用Windows,路径可能是C:ORACLEORADBS临时表空间,但得用DBA_TAB_MODIFICATIONS表里的DBF列找具体位置。所以得先确认临时表空间路径,再用 SQL> show temp表名查文件名。不过有时候文件会自动清理,得注意执行explain前建个永久表备份。
本题链接: