ChatGPT能代替Oracle DBA吗?用Oracle OCP(1z0-083)的真题测试一下。

让我们来看看ChatGPT不能通过Oracle OCP的考试?

文章目录

  • 引言
  • 测试过程
  • 总结和分析


关于博主,姚远:

  • Oracle ACE(Oracle和MySQL数据库方向)。
  • Oracle MAA 大师。
  • 华为云MVP。
  • 《MySQL 8.0运维与优化》的作者。
  • 拥有 Oracle 10g和12c OCM等20+数据库认证。
  • 曾任IBM公司数据库部门经理,主导过多个大型数据中心核心库的设计。
  • 现在一家第三方公司任首席数据库专家,服务2万+客户。

引言

ChatGPT已经通过了很多考试,姚远老师是Oracle OCP和MySQL OCP讲师,我很好奇ChatGPT能不能通过Oracle OCP的考试呢?让我们拿Oracle 19c OCP考试(1z0-082)的真题对ChatGPT进行一个测试。

测试过程

第1道题ChatGPT就做错了,姚远老师心里不禁窃喜,看来ChatGPT也不咋地,我们也许不会失业,让我们来看看第一道题的题目:

ChatGPT的答案是B和C,B是对的,但ChatGPT选择了一个错误的答案C:
Private Temporary Tables(PTTs) when used, are always dropped at the next commit statement.
实际上PTT有两种:Transaction-specific (ON COMMIT DROP DEFINITION)和session-specific (ON COMMIT PRESERVE DEFINITION)。这两种在commit时都会删除表中的数据,但第二种是不会删除表定义的,因此C是错的。

ChatGPT忽略了一个正确的答案A,于是姚远老师问ChatGPT:你为什么没有选择A,请你做一个实验,创建一个UNUSABLE的索引试试?
ChatGPT回答:作为一个AI语言模型,我没有直接的物理数据库来创建索引。…
现在我知道ChatGPT为什么会做错了,因为ChatGPT没有实验环境。
我自己实验了一下:

SQL>  create index in_1 on table_1(no) unusable;
Index created.SQL> select segment_name,blocks from user_segments where segment_name in ('IN_1');
no rows selectedSQL>  alter index in_1 rebuild;
Index altered.SQL> select segment_name,blocks from user_segments where segment_name in ('IN_1');
SEGMENT_NAME     BLOCKS
-------------------- ----------
IN_1            8

发现创建索引时为unusable是不创建段的,只有重建索引才会有段。

第2道题是关于视图的,ChatGPT对 WITH CHECK的限制很清楚,做对了。

第3道题是PMON进程的作业,ChatGPT还知道从12c后PMON注册监听的功能交给了LRRG进程负责,也做对了。

第4道题是集合的 INTERSECT操作,ChatGPT也做对了。

第5道题是用户的最小权限原则,ChatGPT也做对了。

第6 道题是关于回滚段的题目,ChatGPT做错了,ChatGPT认为:Undo segments can be stored in the SYSTEM tablespace.这个选项是错的,ChatGPT给出的理由是: Undo segments are stored in the undo tablespace, not in the SYSTEM tablespace.
实际上在自动回滚段管理时,如果没有undo表空间,回滚段是可以放在系统表空间中的,在Oracle的官方文档中有下面的内容:

感觉ChatGPT做这个选择有点想当然。

第7道题是日期的计算,也做对了。

第8道题做错了,ChatGPT选择了一个下面这个选项:
Directory Naming requires setting the TNS_ADMIN environment variable on the client side.
实际上TNS_ADMIN环境变量不是必需设置的,只有ORACLE_HOME设置了即可。

第9道题错了,ChatGPT选择了一个错误的答案 :
Any user can create a PUBLIC synonym.
实际上即使创建PUBLIC的同义词,也需要 CREATE PUBLIC SYNONYM的系统权限。
ChatGPT还忽略了一个正确的答案:A synonym can have a synonym。

第10道题是关于直接路径导入的压缩格式,这个知识点在Oracle官方文档上面写的清清楚楚,ChatGPT做对了

第11道题是关于延迟段创建特性,ChatGPT也做对了

欢迎试看博主的专著《MySQL 8.0运维与优化》

总结和分析

测试进行到这里,ChatGPT一共做了11道题,错了4道题,正确率为63.6%,而Oracle 19C OCP的1Z0-082的及格线是60%,ChatGPT涉险过关!

更多的Oracle OCP和MySQL OCP题库的解析可以参见:

Oracle 19c OCP和MySQL 8.0 OCP应试指南和题库讲解

姚远老师分析了ChatGPT解题的特点,发现ChatGPT对于在业界答案没有争议的题目做得很好,但ChatGPT也有两个弱点,一个是ChatGPT没有真正的一个Oracle数据库进行实验,因此在解答需要实验验证的题目时很吃亏;另一个是ChatGPT不擅长解决概念上比较绕的问题。但总体来说,ChatGPT已经可以胜任一个初级DBA的工作了,只是对ChatGPT的给出的答案需要一个资深的DBA进行二次验证。

大家觉得ChatGPT能代替Oracle DBA吗?请留言聊一下。

本文链接:https://my.lmcjl.com/post/3680.html

展开阅读全文

4 评论

留下您的评论.