对与oracle解析的观察

1.比较硬解析:

SQL> create table t as select * from dba_objects;

表已创建。

已用时间: 00: 00: 00.92
SQL> set linesize 1000
SQL> set autotrace on
SQL> set timing on
SQL> select count(*) from t;

COUNT(*)
----------
79691

已用时间: 00: 00: 00.24

执行计划
----------------------------------------------------------
Plan hash value: 2966233522

-------------------------------------------------------------------
| Id | Operation | Name | Rows | Cost (%CPU)| Time |
-------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 316 (1)| 00:00:04 |
| 1 | SORT AGGREGATE | | 1 | | |
| 2 | TABLE ACCESS FULL| T | 69218 | 316 (1)| 00:00:04 |
-------------------------------------------------------------------

Note
-----
- dynamic sampling used for this statement (level=2)

统计信息
----------------------------------------------------------
28 recursive calls
0 db block gets
1196 consistent gets
1129 physical reads
0 redo size
529 bytes sent via SQL*Net to client
519 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed

SQL>
SQL> --第2次执行
SQL>
SQL> --该命令只是为了先不考虑2次执行物理读减少带来的效果,只考虑减少解析

SQL> alter system flush buffer_cache;            这一次主要是为了去除数据缓存带来的比对比。

系统已更改。

已用时间: 00: 00: 01.61
SQL>
SQL> select count(*) from t;

COUNT(*)
----------
79691

已用时间: 00: 00: 00.17

执行计划
----------------------------------------------------------
Plan hash value: 2966233522

-------------------------------------------------------------------
| Id | Operation | Name | Rows | Cost (%CPU)| Time |
-------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 316 (1)| 00:00:04 |
| 1 | SORT AGGREGATE | | 1 | | |
| 2 | TABLE ACCESS FULL| T | 69218 | 316 (1)| 00:00:04 |
-------------------------------------------------------------------

Note
-----
- dynamic sampling used for this statement (level=2)

统计信息
----------------------------------------------------------
0 recursive calls
0 db block gets
1134 consistent gets
1130 physical reads
0 redo size
529 bytes sent via SQL*Net to client
519 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed

2.比较数据缓存:

SQL> create table t as select * from dba_objects;

表已创建。

已用时间: 00: 00: 01.68
SQL>
SQL> set linesize 1000
SQL> set autotrace on
SQL> set timing on
SQL>
SQL> --第1次执行
SQL>
SQL> select count(*) from t;

COUNT(*)
----------
79691

已用时间: 00: 00: 00.54

执行计划
----------------------------------------------------------
Plan hash value: 2966233522

-------------------------------------------------------------------
| Id | Operation | Name | Rows | Cost (%CPU)| Time |
-------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 316 (1)| 00:00:04 |
| 1 | SORT AGGREGATE | | 1 | | |
| 2 | TABLE ACCESS FULL| T | 69218 | 316 (1)| 00:00:04 |
-------------------------------------------------------------------

Note
-----
- dynamic sampling used for this statement (level=2)

统计信息
----------------------------------------------------------
28 recursive calls
0 db block gets
1196 consistent gets
1129 physical reads
0 redo size
529 bytes sent via SQL*Net to client
519 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed

SQL>
SQL> --第2次执行
SQL> --该命令只是为了先不考虑解析的优化,单纯考虑第2次执行物理读减少带

SQL> alter system flush shared_pool;

系统已更改。

已用时间: 00: 00: 00.41
SQL> select count(*) from t;

COUNT(*)
----------
79691

已用时间: 00: 00: 00.15

执行计划
----------------------------------------------------------
Plan hash value: 2966233522

-------------------------------------------------------------------
| Id | Operation | Name | Rows | Cost (%CPU)| Time |
-------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 316 (1)| 00:00:04 |
| 1 | SORT AGGREGATE | | 1 | | |
| 2 | TABLE ACCESS FULL| T | 69218 | 316 (1)| 00:00:04 |
-------------------------------------------------------------------

Note
-----
- dynamic sampling used for this statement (level=2)

统计信息
----------------------------------------------------------
282 recursive calls
0 db block gets
1224 consistent gets
0 physical reads
0 redo size
529 bytes sent via SQL*Net to client
519 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
5 sorts (memory)
0 sorts (disk)
1 rows processed

时间: 2024-08-05 03:39:02

对与oracle解析的观察的相关文章

Oracle解析 xml 记录一下(未完待续)

Oracle解析 xml 记录一下. SQL> desc xmlparser; PROCEDURE FREEPARSER Argument Name                  Type                    In/Out Default? ------------------------------ ----------------------- ------ -------- P                              RECORD          

Oracle解析复杂json的方法

当前在Oracle数据库(11G之前的版本)解析json没有可以直接使用的系统方法,网上流传的PLSQL脚本大多也只可以解析结构较单一的json串,对于结构复杂的json串还无法解析.如此一来导致即便可以在PL/SQL中调用远程接口,但返回结果仍需传给前台js或java等其它代码进行处理,不太方便. 分析思路: 1.在PL/SQL中写json串,无需声明json对象,只需直接拼接成格式正确的json字符串即可,因此数据库对象间json串的传递完全可以用varchar2或clob来代替. 2.结构

oracle解析xml完成版第二次修改

其实XML字符串就好像是ORACLE中的外部表,因此Oracle对 解析XML字符串一些规则要求非常严格.XML字符串提供的数据就是一张表,所以Oracle必须提供跟 xml数据一致的列头 示例一 SELECT * FROM XMLTABLE('$B/DEAL_BASIC/USER_DEAL_INFO' PASSING XMLTYPE('<?xml version="1.0" encoding="gb2312" ?>&xml') AS B COL

ORACLE 解析xml字符串-转载的

1.xml字符串 /* <orderlist>        <order>        <orderid>1</orderid>        <ordernumber>857544544</ordernumber>        <orderprice>54</orderprice>        </order>                <order>        <

oracle 解析json格式

1. CREATE OR REPLACE PACKAGE PKG_ANALYSE_COMMON IS -- AUTHOR : YZCHEN -- CREATED : 2013/11/26 14:12:43 -- PURPOSE : 公共存储过程包 /* * AUTHOR: YZCHEN DATETIME: 2013-11-26 14:20:36 * DESC: 根据P_SEQ分割字符串,并返回数据格式,默认以,分割 */ -- 分割后的字符串临时存储类型 TYPE TYPE_SPLIT IS T

oracle解析xml完成版

SELECT * FROM XMLTABLE('$B/DEAL_BASIC/USER_DEAL_INFO' PASSING XMLTYPE('<?xml version="1.0" encoding="gb2312" ?>&xml') AS B COLUMNS USER_DEAL_ID VARCHAR2(50) PATH '/USER_DEAL_INFO/USER_DEAL_ID', DEAL_INURE_TIME VARCHAR2(50) PA

Oracle解析XML 节点信息并转换String 类型

select   xmltype(dataxml).extract('/data/sqr_mc/text()').getstringval()  as sqrmc from t_ins_formdata where bsnum='170215085821005401' 原文地址:https://www.cnblogs.com/auldlangsynezh/p/8178196.html

【干货】ORACLE-AWR报告分析

1.什么是AWR? AWR (Automatic Workload Repository) 是自动负载信息库的英文缩写,AWR报告是Oracle 10g以后版本提供的一种性能收集和分析工具,能提供一个时间段内整个系统资源使用情况的报告,通过报告可以了解一个系统的整个运行情况,生成的报告包括多个部分. AWR每小时对v$active_session_history视图(内存中的ASH采集信息,理论为1小时)进行采样一次,并将信息保存到磁盘中,并且保留7天,7天后旧的记录才会被覆盖.这些采样信息被保

sql优化(oracle)- 第三部分 &#160;sql优化总结

第三部分  sql优化总结        1. 优化一般原则        2. 具体注意事项 1. SQL优化一般性原则 1)目标:减少服务器资源消耗(主要是磁盘IO) 2)设计: 1. 尽量依赖oracle优化器 2. 合适的索引(数据重复量大的列不要简历二叉树索引,可以使用位图索引: 对应数据操作频繁的表,索引需要定期重建,减少失效的索引和碎片) 3)编码: 1. 利用索引 2. 合理利用临时表 3. 避免写过于复杂的sql: 4. 尽量减小事务的粒度 2. 具体注意事项 1)查询时尽量使