Oracle 打印日志:实现过程深入探究(oracle打印日志)
随着Oracle系统运行和应用开发的越来越普及,越来越多的用户开始集中探究Oracle打印日志的实现过程。本文将结合实例深入探究Oracle如何打印日志的实现过程。
首先,我们从客户端发送的sql开始,oracle用户发出的sql语句,通过网络服务连接到数据库实例,由实例调用sql和相关函数将信息发送给关系引擎,然后执行器拆分sql,并根据解析出来的SQL抽象树(SQL Parse Tree)生成执行计划,此时此刻,开始打印日志了。例如:
“`sql
SELECT count(*), sum(salary) FROM employees;
Oracle会为这条查询打印下面的日志:
```以下是日志SELECT count(*) ,Sum(salary)
FROM EMPLOYEES;
Execution Plan ------------------------------------------------------------------------
--Plan hash value: 2791506720
------------------------------------------------------------------------ | Id | Operation | Name | Rows | Bytes | Cost (%CPU) | Time |
------------------------------------------------------------------------ | 0 | SELECT STATEMENT | | 1 | 8 | 3 (0) | 00:00:01 |
| 1 | SORT AGGREGATE | | 1 | 8 | | || 2 | TABLE ACCESS FULL| employees | 10 | 80 |3 (0) | 00:00:01
------------------------------------------------------------------------
以上只是其中一方面,有时,oracle可能会抛出错误,并打印错误信息。 比如,执行下面的sql:
“`sql
SELECT count(*) from employees_1
这条sql由于表employees_1不存在,所以会返回如下错误:
```以下是错误日志SELECT count(*)
FROM EMPLOYEES_1
ERROR at line 1: ORA-00942: table or view does not exist
无论是正确的sql还是错误的sql,oracle都会根据用户提供的sql,经过网络服务调用关系引擎,生成相应的计划树,并打印运行的日志,以确保代码运行顺利。
如此,通过以上介绍,可以看出,oracle在执行sql时,会根据客户端发送的sql,经过关系引擎,生成相应的计划树,并且打印日志,以便让用户了解代码的运行详情。 从而可以保证系统的稳定性。