Monitoring the number of hits on the SQL statement cache

To monitor the number of hits in the SQL statement cache, run the onstat -g ssc command.

The onstat -g ssc command displays fully cached entries in the SQL statement cache. Figure 1 shows sample output for onstat -g ssc.
Figure 1. onstat -g ssc output
onstat -g ssc

Statement Cache Summary:
#lrus   currsize  maxsize   Poolsize   #hits    nolimit
4       49456     524288    57344      0        1

Statement Cache Entries:

lru hash ref_cnt  hits  flag heap_ptr      database           user
----------------- ---- --------------------------------------------------------
  0  153       0     0    -F  a7e4690      vjp_stores         virginia
  SELECT * FROM customer, orders
    WHERE customer.customer_num = orders.customer_num
     AND order_date > "01/01/07" 

  1  259       0     0     -F  aa58c20     vjp_stores         virginia
  SELECT * FROM customer, orders
    WHERE customer.customer_num = orders.customer_num
     AND order_date > "01/01/2007" 

  2  232       0     1     DF  aa3d020     vjp_stores         virginia
  SELECT C.customer_num, O.order_num
    FROM customer C, orders O, items I
    WHERE C.customer_num = O.customer_num
     AND O.order_num = I.order_num 

  3  232       1     1     -F  aa8b020     vjp_stores         virginia
  SELECT C.customer_num, O.order_num
    FROM customer C, orders O, items I
    WHERE C.customer_num = O.customer_num
    AND O.order_num = I.order_num



    Total number of entries: 4.
To monitor the number of times that the database server reads the SQL statement within the cache, look at the following output columns:
  • In the Statement Cache Summary portion of the onstat -g ssc output, the #hits column is the value of the SQL_STMT_HITS configuration parameter.

    In Figure 1, the #hits column in the Statement Cache Summary portion of the output has a value of 0, which is the default value of the STMT_CACHE_HITS configuration parameter.

    Important: The database server uses entries in the SQL statement cache only if the statements are exactly the same. The first two entries in Figure 1 are not the same because each contains a different literal value in the order_date filter.
  • In the Statement Cache Entries portion of the onstat -g ssc output, the hits column shows the number of times that the database server ran each individual SQL statement from the cache. In other words, the column shows the number of times that the database server uses the memory structures in the cache instead of optimizing the statements to generate them again.

    The first time that it inserts the statement in the cache, the hits value is 0.

    • The first two SQL statements in Figure 1 have a hits column value of 0, which indicates that each statement is inserted into the cache but not yet run from the cache.
    • The last two SQL statements in Figure 1 have a hits column value of 1, which indicates that these statements ran once from the cache.

    The hits value for individual entries indicates how much sharing of memory structures is done. Higher values in the hits column indicate that the SQL statement cache is useful in improving performance and memory usage.

For a complete description of the output fields that onstat -g ssc displays, see SQL statement cache information in onstat -g ssc output.


Copyright© 2019 HCL Technologies Limited