denrepo

OracleSQL tuning

Literal SQL that should use bind variables

Groups statements that are identical apart from literals. Hundreds of copies of the same shape means hard parsing and shared pool churn; show the sample to the developers.

Not yet verified. How scripts are tested

ora-no-binds.sql
1CLEAR COLUMNS2SET LINESIZE 160 PAGESIZE 100 TRIMOUT ON TAB OFF3COLUMN signature     HEADING "FORCE MATCHING SIGNATURE" FORMAT 999999999999999999994COLUMN copies        FORMAT 999,9905COLUMN sample_sql_id HEADING "SAMPLE SQL_ID" FORMAT A136COLUMN sample_text   HEADING "SAMPLE TEXT"   FORMAT A70 TRUNCATE7 8SELECT * FROM (9  SELECT force_matching_signature AS signature,10         COUNT(*) AS copies,11         MIN(sql_id) AS sample_sql_id,12         SUBSTR(MIN(sql_text), 1, 70) AS sample_text13  FROM v$sqlarea14  WHERE force_matching_signature > 015  GROUP BY force_matching_signature16  HAVING COUNT(*) > 5017  ORDER BY copies DESC18) WHERE ROWNUM <= 15;

Save it as ora-no-binds.sql and run it with SQL> @ora-no-binds.

Open in denrepo

Helps with

More Oracle scripts: SQL tuning