SQL> -- another example from the list of unstable_plans
SQL>
SQL> @awr_plan_stats
Enter value for sql_id: 8jt9yh7jf8tn8
SQL_ID PLAN_HASH_VALUE EXECS ETIME AVG_ETIME AVG_LIO
------------- --------------- ------------ -------------- ------------ --------------
8jt9yh7jf8tn8 1093407144 4,818 481.5 0.100 2,818.6
8jt9yh7jf8tn8 4076066623 21 3,269.3 155.679 5,901,988.0
SQL> @awr_plan_change
Enter value for sql_id: 8jt9yh7jf8tn8
SNAP_ID NODE BEGIN_INTERVAL_TIME SQL_ID PLAN_HASH_VALUE EXECS AVG_ETIME AVG_LIO
---------- ------ ------------------------------ ------------- --------------- ------------ ------------ --------------
1785 3 24-APR-09 05.00.13.361 PM 8jt9yh7jf8tn8 1093407144 6 1.102 2,872.7
1786 2 24-APR-09 06.00.02.510 PM 8jt9yh7jf8tn8 158 0.024 2,873.0
1786 3 24-APR-09 06.00.03.170 PM 8jt9yh7jf8tn8 223 0.023 2,873.0
1787 2 24-APR-09 07.00.30.171 PM 8jt9yh7jf8tn8 749 0.020 2,873.0
1787 3 24-APR-09 07.00.30.935 PM 8jt9yh7jf8tn8 873 0.019 2,873.0
1788 2 24-APR-09 08.00.03.359 PM 8jt9yh7jf8tn8 726 0.020 2,873.9
1788 3 24-APR-09 08.00.04.148 PM 8jt9yh7jf8tn8 871 0.020 2,873.9
1789 2 24-APR-09 09.00.28.203 PM 8jt9yh7jf8tn8 373 0.016 2,874.0
1789 3 24-APR-09 09.00.27.481 PM 8jt9yh7jf8tn8 566 0.016 2,874.0
1892 2 29-APR-09 04.00.02.385 AM 8jt9yh7jf8tn8 1 2.613 3,811.0
1894 2 29-APR-09 06.00.09.154 AM 8jt9yh7jf8tn8 2 0.462 733.0
1894 3 29-APR-09 06.00.09.823 AM 8jt9yh7jf8tn8 2 1.056 847.0
1895 2 29-APR-09 07.00.00.226 AM 8jt9yh7jf8tn8 7 1.714 2,869.6
1895 3 29-APR-09 07.00.00.921 AM 8jt9yh7jf8tn8 2 0.856 1,208.0
1896 2 29-APR-09 08.00.20.446 AM 8jt9yh7jf8tn8 9 1.635 2,103.0
1897 2 29-APR-09 09.00.09.367 AM 8jt9yh7jf8tn8 2 8.179 8,529.0
1897 3 29-APR-09 09.00.10.115 AM 8jt9yh7jf8tn8 17 1.714 3,416.5
1898 2 29-APR-09 10.00.43.551 AM 8jt9yh7jf8tn8 5 2.553 2,733.2
1898 3 29-APR-09 10.00.42.788 AM 8jt9yh7jf8tn8 6 3.751 4,484.2
1899 3 29-APR-09 11.00.10.447 AM 8jt9yh7jf8tn8 7 1.742 3,284.4
1900 3 29-APR-09 12.00.35.788 PM 8jt9yh7jf8tn8 2 1.199 966.0
1901 2 29-APR-09 01.00.18.515 PM 8jt9yh7jf8tn8 8 2.345 2,409.6
1902 3 29-APR-09 02.00.15.910 PM 8jt9yh7jf8tn8 2 3.941 2,649.5
1905 2 29-APR-09 05.00.02.254 PM 8jt9yh7jf8tn8 1 0.887 1,230.0
1918 2 30-APR-09 06.00.09.089 AM 8jt9yh7jf8tn8 1 0.653 1,248.0
1918 3 30-APR-09 06.00.08.403 AM 8jt9yh7jf8tn8 2 0.421 485.5
1919 2 30-APR-09 07.00.28.148 AM 8jt9yh7jf8tn8 1 1.152 1,242.0
1920 2 30-APR-09 08.00.03.733 AM 8jt9yh7jf8tn8 4 3.273 3,200.3
1920 3 30-APR-09 08.00.04.389 AM 8jt9yh7jf8tn8 12 2.491 3,314.2
1921 2 30-APR-09 09.00.10.125 AM 8jt9yh7jf8tn8 5 3.947 3,333.4
1921 3 30-APR-09 09.00.10.838 AM 8jt9yh7jf8tn8 2 2.416 1,769.5
1922 3 30-APR-09 10.00.25.754 AM 8jt9yh7jf8tn8 4076066623 2 54.237 2,291,432.5
1923 2 30-APR-09 11.00.17.345 AM 8jt9yh7jf8tn8 1093407144 2 0.812 975.0
1923 3 30-APR-09 11.00.18.032 AM 8jt9yh7jf8tn8 4076066623 3 134.031 933,124.3
1924 3 30-APR-09 12.00.15.448 PM 8jt9yh7jf8tn8 3 227.009 6,987,169.3
1926 2 30-APR-09 02.00.11.921 PM 8jt9yh7jf8tn8 1093407144 8 0.818 1,574.5
1926 3 30-APR-09 02.00.11.174 PM 8jt9yh7jf8tn8 4076066623 2 175.709 8,963,417.0
1927 2 30-APR-09 03.00.24.923 PM 8jt9yh7jf8tn8 1093407144 4 1.344 1,068.8
1927 3 30-APR-09 03.00.24.306 PM 8jt9yh7jf8tn8 4076066623 5 156.378 10,159,992.0
1928 2 30-APR-09 04.00.30.061 PM 8jt9yh7jf8tn8 1093407144 6 0.923 1,225.8
1928 3 30-APR-09 04.00.29.416 PM 8jt9yh7jf8tn8 4076066623 1 180.488 2,150,190.0
1930 3 30-APR-09 06.00.37.119 PM 8jt9yh7jf8tn8 2 180.371 8,255,881.5
1934 3 30-APR-09 10.00.12.055 PM 8jt9yh7jf8tn8 1 180.491 3,102,577.0
1939 2 01-MAY-09 03.00.31.764 AM 8jt9yh7jf8tn8 1093407144 21 0.825 1,041.8
1939 3 01-MAY-09 03.00.32.453 AM 8jt9yh7jf8tn8 4 0.575 1,211.8
1944 3 01-MAY-09 08.00.15.686 AM 8jt9yh7jf8tn8 6 1.328 1,788.3
1946 2 01-MAY-09 10.00.17.105 AM 8jt9yh7jf8tn8 1 1.170 2,411.0
1946 3 01-MAY-09 10.00.16.458 AM 8jt9yh7jf8tn8 4 2.041 2,414.3
1947 3 01-MAY-09 11.00.14.385 AM 8jt9yh7jf8tn8 10 1.725 2,937.1
1948 3 01-MAY-09 12.00.08.928 PM 8jt9yh7jf8tn8 3 2.232 3,415.7
1987 2 03-MAY-09 03.00.03.550 AM 8jt9yh7jf8tn8 7 1.029 901.0
1990 3 03-MAY-09 06.00.07.641 AM 8jt9yh7jf8tn8 3 1.225 1,465.7
1991 3 03-MAY-09 07.00.05.445 AM 8jt9yh7jf8tn8 26 0.370 710.5
1992 2 03-MAY-09 08.00.20.010 AM 8jt9yh7jf8tn8 6 0.213 685.7
1992 3 03-MAY-09 08.00.19.366 AM 8jt9yh7jf8tn8 3 0.658 883.0
1993 2 03-MAY-09 09.00.04.983 AM 8jt9yh7jf8tn8 8 0.769 950.9
1996 2 03-MAY-09 12.00.19.205 PM 8jt9yh7jf8tn8 2 0.101 861.5
2015 3 04-MAY-09 07.00.13.869 AM 8jt9yh7jf8tn8 4 0.376 854.5
2016 3 04-MAY-09 08.00.09.477 AM 8jt9yh7jf8tn8 6 0.143 571.0
2019 2 04-MAY-09 11.00.11.317 AM 8jt9yh7jf8tn8 12 0.937 1,352.1
2019 3 04-MAY-09 11.00.10.691 AM 8jt9yh7jf8tn8 10 1.612 1,341.9
2019 3 04-MAY-09 11.00.10.691 AM 8jt9yh7jf8tn8 4076066623 1 41.592 3,942,672.0
2020 2 04-MAY-09 12.00.06.355 PM 8jt9yh7jf8tn8 1093407144 15 1.037 1,734.6
2020 3 04-MAY-09 12.00.06.919 PM 8jt9yh7jf8tn8 4076066623 1 181.044 1,764,007.0
2022 2 04-MAY-09 02.00.26.599 PM 8jt9yh7jf8tn8 1093407144 2 2.214 2,780.5
65 rows selected.
SQL> -- typical bind variable peeking pattern
SQL> -- let's look at just one node - it'll be a little more clear
SQL> l8
8* and ss.instance_number = S.instance_number
SQL> i
9i and s.instance_number = &inst
10i
SQL>
SQL> /
Enter value for sql_id: 8jt9yh7jf8tn8
Enter value for inst: 3
SNAP_ID NODE BEGIN_INTERVAL_TIME SQL_ID PLAN_HASH_VALUE EXECS AVG_ETIME AVG_LIO
---------- ------ ------------------------------ ------------- --------------- ------------ ------------ --------------
1785 3 24-APR-09 05.00.13.361 PM 8jt9yh7jf8tn8 1093407144 6 1.102 2,872.7
1786 3 24-APR-09 06.00.03.170 PM 8jt9yh7jf8tn8 223 0.023 2,873.0
1787 3 24-APR-09 07.00.30.935 PM 8jt9yh7jf8tn8 873 0.019 2,873.0
1788 3 24-APR-09 08.00.04.148 PM 8jt9yh7jf8tn8 871 0.020 2,873.9
1789 3 24-APR-09 09.00.27.481 PM 8jt9yh7jf8tn8 566 0.016 2,874.0
1894 3 29-APR-09 06.00.09.823 AM 8jt9yh7jf8tn8 2 1.056 847.0
1895 3 29-APR-09 07.00.00.921 AM 8jt9yh7jf8tn8 2 0.856 1,208.0
1897 3 29-APR-09 09.00.10.115 AM 8jt9yh7jf8tn8 17 1.714 3,416.5
1898 3 29-APR-09 10.00.42.788 AM 8jt9yh7jf8tn8 6 3.751 4,484.2
1899 3 29-APR-09 11.00.10.447 AM 8jt9yh7jf8tn8 7 1.742 3,284.4
1900 3 29-APR-09 12.00.35.788 PM 8jt9yh7jf8tn8 2 1.199 966.0
1902 3 29-APR-09 02.00.15.910 PM 8jt9yh7jf8tn8 2 3.941 2,649.5
1918 3 30-APR-09 06.00.08.403 AM 8jt9yh7jf8tn8 2 0.421 485.5
1920 3 30-APR-09 08.00.04.389 AM 8jt9yh7jf8tn8 12 2.491 3,314.2
1921 3 30-APR-09 09.00.10.838 AM 8jt9yh7jf8tn8 2 2.416 1,769.5
1922 3 30-APR-09 10.00.25.754 AM 8jt9yh7jf8tn8 4076066623 2 54.237 2,291,432.5
1923 3 30-APR-09 11.00.18.032 AM 8jt9yh7jf8tn8 3 134.031 933,124.3
1924 3 30-APR-09 12.00.15.448 PM 8jt9yh7jf8tn8 3 227.009 6,987,169.3
1926 3 30-APR-09 02.00.11.174 PM 8jt9yh7jf8tn8 2 175.709 8,963,417.0
1927 3 30-APR-09 03.00.24.306 PM 8jt9yh7jf8tn8 5 156.378 10,159,992.0
1928 3 30-APR-09 04.00.29.416 PM 8jt9yh7jf8tn8 1 180.488 2,150,190.0
1930 3 30-APR-09 06.00.37.119 PM 8jt9yh7jf8tn8 2 180.371 8,255,881.5
1934 3 30-APR-09 10.00.12.055 PM 8jt9yh7jf8tn8 1 180.491 3,102,577.0
1939 3 01-MAY-09 03.00.32.453 AM 8jt9yh7jf8tn8 1093407144 4 0.575 1,211.8
1944 3 01-MAY-09 08.00.15.686 AM 8jt9yh7jf8tn8 6 1.328 1,788.3
1946 3 01-MAY-09 10.00.16.458 AM 8jt9yh7jf8tn8 4 2.041 2,414.3
1947 3 01-MAY-09 11.00.14.385 AM 8jt9yh7jf8tn8 10 1.725 2,937.1
1948 3 01-MAY-09 12.00.08.928 PM 8jt9yh7jf8tn8 3 2.232 3,415.7
1990 3 03-MAY-09 06.00.07.641 AM 8jt9yh7jf8tn8 3 1.225 1,465.7
1991 3 03-MAY-09 07.00.05.445 AM 8jt9yh7jf8tn8 26 0.370 710.5
1992 3 03-MAY-09 08.00.19.366 AM 8jt9yh7jf8tn8 3 0.658 883.0
2015 3 04-MAY-09 07.00.13.869 AM 8jt9yh7jf8tn8 4 0.376 854.5
2016 3 04-MAY-09 08.00.09.477 AM 8jt9yh7jf8tn8 6 0.143 571.0
2019 3 04-MAY-09 11.00.10.691 AM 8jt9yh7jf8tn8 4076066623 1 41.592 3,942,672.0
2019 3 04-MAY-09 11.00.10.691 AM 8jt9yh7jf8tn8 1093407144 10 1.612 1,341.9
2020 3 04-MAY-09 12.00.06.919 PM 8jt9yh7jf8tn8 4076066623 1 181.044 1,764,007.0
2031 3 04-MAY-09 11.00.03.519 PM 8jt9yh7jf8tn8 1093407144 1 0.737 482.0
2039 3 05-MAY-09 07.00.27.610 AM 8jt9yh7jf8tn8 4076066623 5 42.900 4,295,251.8
2041 3 05-MAY-09 09.00.09.829 AM 8jt9yh7jf8tn8 2 3.282 1,968,698.5
2044 3 05-MAY-09 12.00.16.920 PM 8jt9yh7jf8tn8 1093407144 2 1.535 844.5
2045 3 05-MAY-09 01.00.08.637 PM 8jt9yh7jf8tn8 2 2.384 1,683.5
41 rows selected.
SQL> -- the plans are clearly flip-flopping
SQL> -- and the performance of plan 1093407144 is clearly orders of magnitude better
SQL>
SQL> -- Let's see what's in the shared pool
SQL>
SQL> @find_sql_acs
Enter value for sql_text:
Enter value for sql_id: 8jt9yh7jf8tn8
Enter value for is_bind_aware:
SQL_ID CHILD PLAN_HASH_VALUE IBS IBA ISH EXECS ROWS_PROCESSED AVG_ETIME AVG_CPU AVG_PIO AVG_LIO SQL_TEXT
------------- ------ --------------- --- --- --- ---------- -------------- ---------- ---------- ---------- ---------- -----------------------------------
8jt9yh7jf8tn8 0 4076066623 N N Y 19 6 160.35 29.28 ########## 6,222,898 SELECT row_order, cdr_id, site_id,
8jt9yh7jf8tn8 1 1093407144 N N Y 61 0 1.92 0.13 565.70 2,860 SELECT row_order, cdr_id, site_id,
8jt9yh7jf8tn8 2 N N Y 55 0 1.01 0.06 252.09 1,555 SELECT row_order, cdr_id, site_id,
SQL> -- So there are children with both plans in the shared the pool (135 execs total)
SQL> -- But the cursors are not marked as bind aware
SQL> -- So why are there multiple child cursors?
SQL> -- (using a modified version of Dion Cho's script)
SQL>
SQL> @mismatch3
Enter value for sql_id: 8jt9yh7jf8tn8
SQL_ID = 8jt9yh7jf8tn8
CHILD_NUMBER = 1
--------------------------------------------------
SQL_ID = 8jt9yh7jf8tn8
CHILD_NUMBER = 0
ROLL_INVALID_MISMATCH = Y
--------------------------------------------------
SQL_ID = 8jt9yh7jf8tn8
CHILD_NUMBER = 2
ROLL_INVALID_MISMATCH = Y
--------------------------------------------------
PL/SQL procedure successfully completed.
SQL> -- none of the bind related flags show up, so it doesn't look promising for ACS
SQL> -- |