11g 新特性之–query result cache(3)
本站文章除注明转载外,均为本站原创: 转载自love wife love life —Roger的Oracle/MySQL/PostgreSQL数据恢复博客
本文链接地址: 11g 新特性之–query result cache(3)
前面2篇文章分别讲了query cache的使用以及探秘其内存结构等等,最后一篇将讲讲
11gR2中,query cache的特别之处,详见下面的实验。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 | SQL> show user USER is "ROGER" SQL> create table ht03 as select * from ht02 where rownum <10000; Table created. Elapsed: 00:00:03.51 SQL> desc ht03 Name                                      Null?    Type ----------------------------------------- -------- ---------------------------- OWNER                                              VARCHAR2(30) OBJECT_ID                                          NUMBER OBJECT_NAME                                        VARCHAR2(128) SQL> create table ht04(   2    OWNER VARCHAR2(30),   3    OBJECT_ID NUMBER,   4    OBJECT_NAME VARCHAR2(128)   5  ) RESULT_CACHE (MODE FORCE); Table created. Elapsed: 00:00:00.14 SQL> insert into /*+append */ ht04  select * from ht03; 9999 rows created. Elapsed: 00:00:00.32 SQL> commit; Commit complete. Elapsed: 00:00:00.01 SQL> create index ht03_idx on ht03(object_id); Index created. Elapsed: 00:00:00.32 SQL>  create index ht04_idx on ht04(object_id); Index created. Elapsed: 00:00:00.10 SQL> analyze table ht03 compute statistics for table for all indexes for all indexed columns; Table analyzed. Elapsed: 00:00:00.73 SQL> analyze table ht04 compute statistics for table for all indexes for all indexed columns; Table analyzed. Elapsed: 00:00:00.18 SQL> set autot traceonly SQL> set lines 160 SQL> select * from ht03 where object_id=999; Elapsed: 00:00:00.02 Execution Plan ---------------------------------------------------------- Plan hash value: 1330547204 ---------------------------------------------------------------------------------------- | Id  | Operation                   | Name     | Rows  | Bytes | Cost (%CPU)| Time     | ---------------------------------------------------------------------------------------- |   0 | SELECT STATEMENT            |          |     1 |    36 |     2   (0)| 00:00:01 | |   1 |  TABLE ACCESS BY INDEX ROWID| HT03     |     1 |    36 |     2   (0)| 00:00:01 | |*  2 |   INDEX RANGE SCAN          | HT03_IDX |     1 |       |     1   (0)| 00:00:01 | ---------------------------------------------------------------------------------------- Predicate Information (identified by operation id): ---------------------------------------------------    2 - access("OBJECT_ID"=999) Statistics ----------------------------------------------------------           1  recursive calls           0  db block gets           4  consistent gets           0  physical reads           0  redo size         570  bytes sent via SQL*Net to client         415  bytes received via SQL*Net from client           2  SQL*Net roundtrips to/from client           0  sorts (memory)           0  sorts (disk)           1  rows processed SQL> select * from ht04 where object_id=999; Elapsed: 00:00:00.02 Execution Plan ---------------------------------------------------------- Plan hash value: 2782040647 ----------------------------------------------------------------------------------------------------------- | Id  | Operation                    | Name                       | Rows  | Bytes | Cost (%CPU)| Time     | ----------------------------------------------------------------------------------------------------------- |   0 | SELECT STATEMENT             |                            |     1 |    36 |     2   (0)| 00:00:01 | |   1 |  RESULT CACHE                | 1wsv07hr29687c877123g0cumt |       |       |            |          | |   2 |   TABLE ACCESS BY INDEX ROWID| HT04                       |     1 |    36 |     2   (0)| 00:00:01 | |*  3 |    INDEX RANGE SCAN          | HT04_IDX                   |     1 |       |     1   (0)| 00:00:01 | ----------------------------------------------------------------------------------------------------------- Predicate Information (identified by operation id): ---------------------------------------------------    3 - access("OBJECT_ID"=999) Result Cache Information (identified by operation id): ------------------------------------------------------    1 - column-count=3; dependencies=(ROGER.HT04); attributes=(ordered); name="select * from ht04 where object_id=999" Statistics ----------------------------------------------------------           1  recursive calls           0  db block gets           4  consistent gets           0  physical reads           0  redo size         566  bytes sent via SQL*Net to client         415  bytes received via SQL*Net from client           2  SQL*Net roundtrips to/from client           0  sorts (memory)           0  sorts (disk)           1  rows processed SQL> show parameter result NAME                                 TYPE        VALUE ------------------------------------ ----------- ------------------------------ _client_result_cache_bypass          boolean     FALSE _result_cache_auto_execution_thresho integer     1 ld _result_cache_auto_size_threshold    integer     100 _result_cache_auto_time_distance     integer     300 _result_cache_auto_time_threshold    integer     1000 _result_cache_block_size             integer     1024 _result_cache_global                 boolean     TRUE _result_cache_timeout                integer     10 _xsolapi_sql_result_set_cache_size   integer     32 client_result_cache_lag              big integer 3000 client_result_cache_size             big integer 0 result_cache_max_result              integer     5 result_cache_max_size                big integer 960K result_cache_mode                    string      MANUAL result_cache_remote_expiration       integer     0 SQL> select /*+ RESULT_CACHE */ * from ht03 where object_id=999; Elapsed: 00:00:00.02 Execution Plan ---------------------------------------------------------- Plan hash value: 1330547204 ----------------------------------------------------------------------------------------------------------- | Id  | Operation                    | Name                       | Rows  | Bytes | Cost (%CPU)| Time     | ----------------------------------------------------------------------------------------------------------- |   0 | SELECT STATEMENT             |                            |     1 |    36 |     2   (0)| 00:00:01 | |   1 |  RESULT CACHE                | f42hd8bp1h26hbdqqs6bz47m3z |       |       |            |          | |   2 |   TABLE ACCESS BY INDEX ROWID| HT03                       |     1 |    36 |     2   (0)| 00:00:01 | |*  3 |    INDEX RANGE SCAN          | HT03_IDX                   |     1 |       |     1   (0)| 00:00:01 | ----------------------------------------------------------------------------------------------------------- Predicate Information (identified by operation id): ---------------------------------------------------    3 - access("OBJECT_ID"=999) Result Cache Information (identified by operation id): ------------------------------------------------------    1 - column-count=3; dependencies=(ROGER.HT03); attributes=(ordered); name="select /*+ RESULT_CACHE */ * from ht03 where object_id=999" Statistics ----------------------------------------------------------           1  recursive calls           0  db block gets           4  consistent gets           0  physical reads           0  redo size         566  bytes sent via SQL*Net to client         415  bytes received via SQL*Net from client           2  SQL*Net roundtrips to/from client           0  sorts (memory)           0  sorts (disk)           1  rows processed | 
从上面的实验,我们可以看出11gR2 比11gR1 多了其中一点就是这里,那就是在create table的时候,
我们可以指定是否对该表启用query cache特性,create table的语法如下:
| 1 | CREATE|ALTER TABLE [<schema>.]<table> ... [RESULT_CACHE (MODE {FORCE|DEFAULT})] | 
当然,既然create table有了新的语法,那么必然同时也会增加alter table的语法了,请看测试。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | SQL> set autot off SQL> alter table ht03 RESULT_CACHE(mode force); Table altered. Elapsed: 00:00:00.33 SQL> set autot traceonly SQL> select * from ht03 where object_id=999; Elapsed: 00:00:00.05 Execution Plan ---------------------------------------------------------- Plan hash value: 1330547204 ----------------------------------------------------------------------------------------------------------- | Id  | Operation                    | Name                       | Rows  | Bytes | Cost (%CPU)| Time     | ----------------------------------------------------------------------------------------------------------- |   0 | SELECT STATEMENT             |                            |     1 |    36 |     2   (0)| 00:00:01 | |   1 |  RESULT CACHE                | f42hd8bp1h26hbdqqs6bz47m3z |       |       |            |          | |   2 |   TABLE ACCESS BY INDEX ROWID| HT03                       |     1 |    36 |     2   (0)| 00:00:01 | |*  3 |    INDEX RANGE SCAN          | HT03_IDX                   |     1 |       |     1   (0)| 00:00:01 | ----------------------------------------------------------------------------------------------------------- Predicate Information (identified by operation id): ---------------------------------------------------    3 - access("OBJECT_ID"=999) Result Cache Information (identified by operation id): ------------------------------------------------------    1 - column-count=3; dependencies=(ROGER.HT03); attributes=(ordered); name="select * from ht03 where object_id=999" Statistics ----------------------------------------------------------         178  recursive calls           0  db block gets          27  consistent gets           0  physical reads           0  redo size         566  bytes sent via SQL*Net to client         415  bytes received via SQL*Net from client           2  SQL*Net roundtrips to/from client           6  sorts (memory)           0  sorts (disk)           1  rows processed 同时在11gR2中,oracle在dba_tables和all_tables中增加一个字段,RESULT_CACHE。 SQL> select owner,table_name,RESULT_CACHE from dba_tables where owner='ROGER'; OWNER                          TABLE_NAME                     RESULT_ ------------------------------ ------------------------------ ------- ROGER                          HT04                           FORCE ROGER                          HT03                           FORCE ROGER                          HT02                           DEFAULT ROGER                          HT01                           DEFAULT Elapsed: 00:00:02.75 | 
关于字段RESULT_CACHE其中有3个属性,分别为DEFAULT,FORCE和MANUAL,大家可以参考11.2的官方文档。
这里有点需要说明的是,必然当表结构或定义发变化了,那么query cache 缓存的信息都将被清除,如下例子。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 | SQL> set autot traceonly SQL> select /*+ RESULT_CACHE */ * from ht01 where object_id=100; Elapsed: 00:00:00.03 Execution Plan ---------------------------------------------------------- Plan hash value: 2671155529 ----------------------------------------------------------------------------------------------------------- | Id  | Operation                    | Name                       | Rows  | Bytes | Cost (%CPU)| Time     | ----------------------------------------------------------------------------------------------------------- |   0 | SELECT STATEMENT             |                            |     1 |    24 |     2   (0)| 00:00:01 | |   1 |  RESULT CACHE                | b500gqatyy0zq32az39dhnk3fb |       |       |            |          | |   2 |   TABLE ACCESS BY INDEX ROWID| HT01                       |     1 |    24 |     2   (0)| 00:00:01 | |*  3 |    INDEX RANGE SCAN          | IDX_HT01_ID                |     1 |       |     1   (0)| 00:00:01 | ----------------------------------------------------------------------------------------------------------- Predicate Information (identified by operation id): ---------------------------------------------------    3 - access("OBJECT_ID"=100) Result Cache Information (identified by operation id): ------------------------------------------------------    1 - column-count=3; dependencies=(ROGER.HT01); attributes=(ordered); name="select /*+ RESULT_CACHE */ * from ht01 where object_id=100" Statistics ----------------------------------------------------------          44  recursive calls           0  db block gets          10  consistent gets           2  physical reads           0  redo size         560  bytes sent via SQL*Net to client         415  bytes received via SQL*Net from client           2  SQL*Net roundtrips to/from client           0  sorts (memory)           0  sorts (disk)           1  rows processed SQL> desc ht01  Name                  Null?    Type  --------------------- -------- ----------------------  OWNER                          VARCHAR2(30)  OBJECT_NAME                    VARCHAR2(128)  OBJECT_ID                      NUMBER SQL> alter table ht01 modify (owner VARCHAR2(40)); Table altered. Elapsed: 00:00:00.22 SQL>  select /*+ RESULT_CACHE */ * from ht01 where object_id=100; Elapsed: 00:00:00.02 Execution Plan ---------------------------------------------------------- Plan hash value: 2671155529 ----------------------------------------------------------------------------------------------------------- | Id  | Operation                    | Name                       | Rows  | Bytes | Cost (%CPU)| Time     | ----------------------------------------------------------------------------------------------------------- |   0 | SELECT STATEMENT             |                            |     1 |    24 |     2   (0)| 00:00:01 | |   1 |  RESULT CACHE                | b500gqatyy0zq32az39dhnk3fb |       |       |            |          | |   2 |   TABLE ACCESS BY INDEX ROWID| HT01                       |     1 |    24 |     2   (0)| 00:00:01 | |*  3 |    INDEX RANGE SCAN          | IDX_HT01_ID                |     1 |       |     1   (0)| 00:00:01 | ----------------------------------------------------------------------------------------------------------- Predicate Information (identified by operation id): ---------------------------------------------------    3 - access("OBJECT_ID"=100) Result Cache Information (identified by operation id): ------------------------------------------------------    1 - column-count=3; dependencies=(ROGER.HT01); attributes=(ordered); name="select /*+ RESULT_CACHE */ * from ht01 where object_id=100" Statistics ----------------------------------------------------------         178  recursive calls           0  db block gets          27  consistent gets           0  physical reads           0  redo size         560  bytes sent via SQL*Net to client         415  bytes received via SQL*Net from client           2  SQL*Net roundtrips to/from client           6  sorts (memory)           0  sorts (disk)           1  rows processed SQL> select /*+ RESULT_CACHE */ * from ht01 where object_id=100; Elapsed: 00:00:00.02 Execution Plan ---------------------------------------------------------- Plan hash value: 2671155529 ----------------------------------------------------------------------------------------------------------- | Id  | Operation                    | Name                       | Rows  | Bytes | Cost (%CPU)| Time     | ----------------------------------------------------------------------------------------------------------- |   0 | SELECT STATEMENT             |                            |     1 |    24 |     2   (0)| 00:00:01 | |   1 |  RESULT CACHE                | b500gqatyy0zq32az39dhnk3fb |       |       |            |          | |   2 |   TABLE ACCESS BY INDEX ROWID| HT01                       |     1 |    24 |     2   (0)| 00:00:01 | |*  3 |    INDEX RANGE SCAN          | IDX_HT01_ID                |     1 |       |     1   (0)| 00:00:01 | ----------------------------------------------------------------------------------------------------------- Predicate Information (identified by operation id): ---------------------------------------------------    3 - access("OBJECT_ID"=100) Result Cache Information (identified by operation id): ------------------------------------------------------    1 - column-count=3; dependencies=(ROGER.HT01); attributes=(ordered); name="select /*+ RESULT_CACHE */ * from ht01 where object_id=100" Statistics ----------------------------------------------------------           1  recursive calls           0  db block gets           0  consistent gets           0  physical reads           0  redo size         560  bytes sent via SQL*Net to client         415  bytes received via SQL*Net from client           2  SQL*Net roundtrips to/from client           0  sorts (memory)           0  sorts (disk)           1  rows processed SQL> select /*+ RESULT_CACHE */ * from ht01 where object_id=100; Elapsed: 00:00:00.01 Execution Plan ---------------------------------------------------------- Plan hash value: 2671155529 ----------------------------------------------------------------------------------------------------------- | Id  | Operation                    | Name                       | Rows  | Bytes | Cost (%CPU)| Time     | ----------------------------------------------------------------------------------------------------------- |   0 | SELECT STATEMENT             |                            |     1 |    24 |     2   (0)| 00:00:01 | |   1 |  RESULT CACHE                | b500gqatyy0zq32az39dhnk3fb |       |       |            |          | |   2 |   TABLE ACCESS BY INDEX ROWID| HT01                       |     1 |    24 |     2   (0)| 00:00:01 | |*  3 |    INDEX RANGE SCAN          | IDX_HT01_ID                |     1 |       |     1   (0)| 00:00:01 | ----------------------------------------------------------------------------------------------------------- Predicate Information (identified by operation id): ---------------------------------------------------    3 - access("OBJECT_ID"=100) Result Cache Information (identified by operation id): ------------------------------------------------------    1 - column-count=3; dependencies=(ROGER.HT01); attributes=(ordered); name="select /*+ RESULT_CACHE */ * from ht01 where object_id=100" Statistics ----------------------------------------------------------           0  recursive calls           0  db block gets           0  consistent gets           0  physical reads           0  redo size         560  bytes sent via SQL*Net to client         415  bytes received via SQL*Net from client           2  SQL*Net roundtrips to/from client           0  sorts (memory)           0  sorts (disk)           1  rows processed | 
从上面的信息来看,我想已经完全可以说明问题了,如何有人说这还不能说明问题的话,那请看下面:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | SQL> conn /as sysdba Connected. SQL> alter session set events 'immediate trace name heapdump level 2'; Session altered. Elapsed: 00:00:04.38 SQL> @ gettrc.sql TRACE_FILE_NAME ------------------------------------------------------------------------------------ /oracle/product/diag/rdbms/roger/roger/trace/roger_ora_4106.trc Elapsed: 00:00:00.82 SQL> ! | 
| 1 2 3 4 5 6 7 | [oracle@roger ~]$ grep -i Result  /oracle/product/diag/rdbms/roger/roger/trace/roger_ora_4106.trc   Chunk 24bdecac sz=    32816    freeable  "Result Cache   "  ds=0x272758b4   Chunk 24be6cdc sz=    32816    freeable  "Result Cache   "  ds=0x272758b4   Chunk 24beed0c sz=    32816    recreate  "Result Cache   "  latch=(nil) [oracle@roger ~]$ | 
| 1 2 3 4 5 6 7 8 | SQL> oradebug setmypid Statement processed. SQL> oradebug dump heapdump_addr 2 656890036; Statement processed. SQL> oradebug tracefile_name /oracle/product/diag/rdbms/roger/roger/trace/roger_ora_6683.trc | 
| 1 2 3 4 5 6 | [root@roger ~]# grep -i ht01 /oracle/product/diag/rdbms/roger/roger/trace/roger_ora_6683.trc 24BE11A0 6F726620 7468206D 77203130 65726568  [ from ht01 where] 24BE15A0 6F726620 7468206D 77203130 65726568  [ from ht01 where] 24BE11A0 6F726620 7468206D 77203130 65726568  [ from ht01 where] 24BE15A0 6F726620 7468206D 77203130 65726568  [ from ht01 where] | 
下面我们修改表ht01的表结构,然后再次dump 看看结果如何。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 | SQL> set autot off SQL> alter table ht01 modify (owner VARCHAR2(50)); Table altered. Elapsed: 00:00:00.06 SQL> set autot traceonly SQL>  select /*+ RESULT_CACHE */ * from ht01 where object_id=101; Elapsed: 00:00:00.05 Execution Plan ---------------------------------------------------------- Plan hash value: 2671155529 ----------------------------------------------------------------------------------------------------------- | Id  | Operation                    | Name                       | Rows  | Bytes | Cost (%CPU)| Time     | ----------------------------------------------------------------------------------------------------------- |   0 | SELECT STATEMENT             |                            |     1 |    24 |     2   (0)| 00:00:01 | |   1 |  RESULT CACHE                | br1m2nyfp7v9c5drfp1gn5xp92 |       |       |            |          | |   2 |   TABLE ACCESS BY INDEX ROWID| HT01                       |     1 |    24 |     2   (0)| 00:00:01 | |*  3 |    INDEX RANGE SCAN          | IDX_HT01_ID                |     1 |       |     1   (0)| 00:00:01 | ----------------------------------------------------------------------------------------------------------- Predicate Information (identified by operation id): ---------------------------------------------------    3 - access("OBJECT_ID"=101) Result Cache Information (identified by operation id): ------------------------------------------------------    1 - column-count=3; dependencies=(ROGER.HT01); attributes=(ordered); name="select /*+ RESULT_CACHE */ * from ht01 where object_id=101" Statistics ----------------------------------------------------------         178  recursive calls           0  db block gets          27  consistent gets           0  physical reads           0  redo size         563  bytes sent via SQL*Net to client         415  bytes received via SQL*Net from client           2  SQL*Net roundtrips to/from client           6  sorts (memory)           0  sorts (disk)           1  rows processed SQL> / Elapsed: 00:00:00.01 Execution Plan ---------------------------------------------------------- Plan hash value: 2671155529 ----------------------------------------------------------------------------------------------------------- | Id  | Operation                    | Name                       | Rows  | Bytes | Cost (%CPU)| Time     | ----------------------------------------------------------------------------------------------------------- |   0 | SELECT STATEMENT             |                            |     1 |    24 |     2   (0)| 00:00:01 | |   1 |  RESULT CACHE                | br1m2nyfp7v9c5drfp1gn5xp92 |       |       |            |          | |   2 |   TABLE ACCESS BY INDEX ROWID| HT01                       |     1 |    24 |     2   (0)| 00:00:01 | |*  3 |    INDEX RANGE SCAN          | IDX_HT01_ID                |     1 |       |     1   (0)| 00:00:01 | ----------------------------------------------------------------------------------------------------------- Predicate Information (identified by operation id): ---------------------------------------------------    3 - access("OBJECT_ID"=101) Result Cache Information (identified by operation id): ------------------------------------------------------    1 - column-count=3; dependencies=(ROGER.HT01); attributes=(ordered); name="select /*+ RESULT_CACHE */ * from ht01 where object_id=101" Statistics ----------------------------------------------------------           0  recursive calls           0  db block gets           0  consistent gets           0  physical reads           0  redo size         563  bytes sent via SQL*Net to client         415  bytes received via SQL*Net from client           2  SQL*Net roundtrips to/from client           0  sorts (memory)           0  sorts (disk)           1  rows processed SQL>  oradebug setmypid Statement processed. SQL> oradebug dump heapdump_addr 2 656890036; Statement processed. SQL> oradebug tracefile_name /oracle/product/diag/rdbms/roger/roger/trace/roger_ora_28227.trc | 
| 1 2 3 4 5 6 7 8 | [root@roger ~]# grep -i ht01 /oracle/product/diag/rdbms/roger/roger/trace/roger_ora_28227.trc 24BE11A0 6F726620 7468206D 77203130 65726568  [ from ht01 where] 24BE15A0 6F726620 7468206D 77203130 65726568  [ from ht01 where] 24BE19A0 6F726620 7468206D 77203130 65726568  [ from ht01 where]    24BE11A0 6F726620 7468206D 77203130 65726568  [ from ht01 where] 24BE15A0 6F726620 7468206D 77203130 65726568  [ from ht01 where] 24BE19A0 6F726620 7468206D 77203130 65726568  [ from ht01 where] | 
从上面可以看出多了2条信息,24BE19A0。 从上面的实验来看,我们可以推断出oracle这里应该是这样管理的,
那就是即使表结构定义发生改变了,那么原来cache的信息仍然存在query cache中,当然,当cache不够用了,
也是会被清除掉的,至于说oracle这里是如何去判断如何不去选择旧的cache信息,那么我就不得而知了。
如果谁研究的更为透彻,记得告诉我,谢谢!
到最后,大家可能会想query cache的工作原理是什么?sql的结果集缓存超过多少或者说在使用了该特性
的情况下,如何通过算法去检索client所需要的信息呢?这些目前还都是未知数。



One Response to “11g 新特性之–query result cache(3)”
Saved like a favourite, I truly like your weblog!
Leave a Reply
You must be logged in to post a comment.