oracle 9i&10g编程艺术-读书笔记1

2024-01-01 06:28:33

根据书中提供的下载代码链接地址,从github上找到源代码下载地址。

https://github.com/apress

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

下载好代码后,开始一段新的旅行。

设置 SQL*Plus 的 AUTOTRACE

设置 SQL*Plus 的 AUTOTRACE
AUTOTRACE 是 SQL*Plus 中一个工具,可以显示所执行查询的解释计划(explain plan)以及所用
的资源。这本书中大量使用了 AUTOTRACE 工具。
配置 AUTOTRACE 的方法不止一种,以下是我采用的方法:
(1)cd [ORACLE_HOME]/rdbms/admin;
(2)作为 SYSTEM 登录 SQL*Plus;
(3)运行@utlxplan;
(4)运行 CREATE PUBLIC SYNONYM PLAN_TABLE FOR PLAN_TABLE;
(5)运行 GRANT ALL ON PLAN_TABLE TO PUBLIC

utlxplan是Oracle提供的查看SQL语句执行计划的工具,该工具位于 [ORACLE_HOME]/rdbms/admin路径下,所以先要进入到该路径中。在该路径下启动cmd,sqlplus
在这里插入图片描述
在这里插入图片描述

运行

运行 @utlxplan

运行 create public SYNONYM synonym_plan_table for plan_table;

运行 grant all on synonym_plan_table to public;

在这里插入图片描述

查看执行计划

运行 explain plan for select * from emp;
运行 select * from table(dbms_xplan.display);

在这里插入图片描述

当我们执行如下sql,会报错。

set autotrace on;

在这里插入图片描述

创建plustrace角色

此时需要创建plustrace角色,登录sys系统用户,创建plustrace角色,并赋予相应的权限(下面的权限)。

  SQL> drop role plustrace;
   角色已删除。
  SQL> create role plustrace;
   角色已创建。
  SQL> grant select on v_$sesstat to plustrace;
   授权成功。
  SQL> grant select on v_$statname to plustrace;
   授权成功。
  SQL> grant select on v_$mystat to plustrace;
   授权成功。
  SQL> grant plustrace to dba with admin option;
   授权成功。
  SQL> 
  SQL> grant plustrace to scott; 
  SQL>  

重新执行set autotrace on; 即可。

当用户密码快过期时,执行set autotrace on; 会报如下错误。
在这里插入图片描述

SQL> set autotrace on;
ERROR:
ORA-28002: 4 天之后口令将过期


SP2-0619: 连接时出错
SP2-0611: 启用 STATISTICS 报告时出错

修改密码即可。

alter user scott identified by 123456;

在这里插入图片描述
重新使用scott登录,重新执行set autotrace on; 正确执行,结果如下:
在这里插入图片描述

文章来源:https://blog.csdn.net/m0_37564426/article/details/135262653
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。