让我们来看看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 评论