MODEL Performance Tuning

Measure Datatype

VARCHAR2 Measures

In this topic we explore the session memory impact of updating VARCHAR2 cells with values of varying lengths. In each of the following tests the number of mutable VARCHAR2 measures is fixed at one. The number of rows updated is fixed at 1000. The length of updated cell values varies from one run to the next.

Tests
Starting Test #1

select key, m_1 from t_1k
model dimension by( key ) measures( m_1 )
rules update( m_1[any] = null ) ;
 
Starting Test #2

select key, m_1 from t_1k
model dimension by( key ) measures( m_1 )
rules update( m_1[any] = rpad('x',1,'x') ) ;
 
Starting Test #3

select key, m_1 from t_1k
model dimension by( key ) measures( m_1 )
rules update( m_1[any] = rpad('x',10,'x') ) ;
 
Starting Test #4

select key, m_1 from t_1k
model dimension by( key ) measures( m_1 )
rules update( m_1[any] = rpad('x',100,'x') ) ;
 
Starting Test #5

select key, m_1 from t_1k
model dimension by( key ) measures( m_1 )
rules update( m_1[any] = rpad('x',1000,'x') ) ;
 
Results

                           Updated to Updated to Updated to Updated to  Updated to
METRIC_NAME                      NULL   Length 1  Length 10 Length 100 Length 1000
-------------------------- ---------- ---------- ---------- ---------- -----------
session pga memory max (K)      3,584      3,584      3,584      3,584       3,584
session uga memory max (K)      3,382      3,382      3,382      3,382       3,382
 

See Statistics Descriptions for a description of each metric.

Observations

The results suggest that, unlike database tables and PL/SQL variables over 2000 bytes long which both allocate variable amounts of space for VARCHAR2 columns and variables, VARCHAR2 measures occupy a fixed amount of session memory (the full declared length). In other words, VARCHAR2 measures appear to behave the same as CHAR measures.

CLOB Measures

MODEL does not appear to support measures with a CLOB datatype.

create table t1( key number, m_1 clob ) ;

select 'x' from t1 model dimension by( key ) measures( m_1 ) () ;
select 'x' from t1 model dimension by( key ) measures( m_1 ) ()
                                                       *
ERROR at line 1:
ORA-00932: inconsistent datatypes: expected - got CLOB


 

Warning: Results on your own systems with your own data will differ from these results. Results will even differ from one set of test runs to the next on the same machine. Run your own tests and average the results from multiple runs before making performance decisions.




Linking to SQL Snippets ™

To link to this page in Oracle Technology Network Forums or OraFAQ Forums cut and paste this code.

  • [url=http://www.sqlsnippets.com/en/topic-12202.html]SQL Snippets: MODEL Performance Tuning - Measure Datatype[/url]

To link to this page in HTML documents or Blogger comments cut and paste this code.

  • <a href="http://www.sqlsnippets.com/en/topic-12202.html">SQL Snippets: MODEL Performance Tuning - Measure Datatype</a>

To link to this page in other web sites use the following values.

  • Link Text : SQL Snippets: MODEL Performance Tuning - Measure Datatype
  • URL (href): http://www.sqlsnippets.com/en/topic-12202.html

Revision Notes

Date Category Note
2007-05-09 Revision Moved Gotcha for million row table from topic-12112.html to topic-12202.html.