Update CRC doc (Issue #1368)
This commit is contained in:
parent
ec8e15da1e
commit
b6dbb9906d
45
doc/api.md
45
doc/api.md
|
@ -16536,12 +16536,12 @@ SQL> ALTER SYSTEM SET CLIENT_RESULT_CACHE_SIZE = 64K SCOPE=SPFILE;
|
||||||
SQL> STARTUP FORCE
|
SQL> STARTUP FORCE
|
||||||
```
|
```
|
||||||
|
|
||||||
CRC can alternatively be configured in an [`oraaccess.xml`](#oraaccess) or
|
Once CRC has been enabled in the database, the values used by the cache in
|
||||||
[`sqlnet.ora`](#tnsadmin) file on the Node.js host, see [Client Configuration
|
Node.js can be tuned in an [`oraaccess.xml`](#oraaccess) file, see [Client
|
||||||
Parameters][182].
|
Configuration Parameters][182].
|
||||||
|
|
||||||
Tables can then be created, or altered, so repeated queries use CRC. This
|
Tables can be created, or altered, so repeated queries use CRC. This allows
|
||||||
allows existing applications to use CRC without needing modification. For example:
|
existing applications to use CRC without needing modification. For example:
|
||||||
|
|
||||||
```sql
|
```sql
|
||||||
SQL> CREATE TABLE cities (id NUMBER, name VARCHAR2(40)) RESULT_CACHE (MODE FORCE);
|
SQL> CREATE TABLE cities (id NUMBER, name VARCHAR2(40)) RESULT_CACHE (MODE FORCE);
|
||||||
|
@ -16554,6 +16554,41 @@ Alternatively, hints can be used in SQL statements. For example:
|
||||||
SELECT /*+ result_cache */ postal_code FROM locations
|
SELECT /*+ result_cache */ postal_code FROM locations
|
||||||
```
|
```
|
||||||
|
|
||||||
|
To verify that CRC is working, you can check the number of executions of your
|
||||||
|
query from `V$SQLAREA` and compare it with an uncached query. When CRC is
|
||||||
|
enabled, the number of statement executions is reduced because the statement is
|
||||||
|
not sent to the database unnecessarily.
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
// Run some load
|
||||||
|
const q = `SELECT postal_code FROM locations`;
|
||||||
|
const qc = `SELECT /*+ RESULT_CACHE */ postal_code FROM locations`;
|
||||||
|
for (let i = 0; i < 100; i++) {
|
||||||
|
result = await connection.execute(q);
|
||||||
|
result = await connection.execute(qc);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Compare behaviors
|
||||||
|
const m = `SELECT executions FROM v$sqlarea WHERE sql_text = :q1`;
|
||||||
|
result = await systemconn.execute(m, [q]);
|
||||||
|
console.log('No CRC:', result.rows[0][0], 'executions');
|
||||||
|
result = await systemconn.execute(m, [qc]);
|
||||||
|
console.log('CRC:', result.rows[0][0], 'executions');
|
||||||
|
```
|
||||||
|
|
||||||
|
When CRC is enabled, output will be like:
|
||||||
|
|
||||||
|
```
|
||||||
|
No CRC: 100 executions
|
||||||
|
CRC: 1 executions
|
||||||
|
```
|
||||||
|
|
||||||
|
If CRC is not enabled, output will be like:
|
||||||
|
```
|
||||||
|
No CRC: 100 executions
|
||||||
|
CRC: 100 executions
|
||||||
|
```
|
||||||
|
|
||||||
## <a name="bindtrace"></a> <a name="tracingsql"></a> 32. Tracing SQL and PL/SQL Statements
|
## <a name="bindtrace"></a> <a name="tracingsql"></a> 32. Tracing SQL and PL/SQL Statements
|
||||||
|
|
||||||
#### End-to-End Tracing
|
#### End-to-End Tracing
|
||||||
|
|
Loading…
Reference in New Issue