Advertisement
tmmdv

create_sql_patch

Mar 26th, 2023 (edited)
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.10 KB | None | 0 0
  1. set serveroutput on
  2.  
  3. declare
  4. l_sql varchar2(1000) := q'[select count(*) from all_users]';
  5. l_res varchar2(100);
  6. begin
  7. l_res := sys.dbms_sqldiag.create_sql_patch(
  8. sql_text => l_sql,
  9. hint_text => q'[optimizer_features_enable('11.2.0.4')]',
  10. name => 'tiak_test'
  11. );
  12. dbms_output.put_line(l_res);
  13. end;
  14. /
  15.  
  16.  
  17. ===
  18.  
  19. SQL_ID b2zqhgr5tzbpk, child number 0
  20. -------------------------------------
  21. select count(*) from all_users
  22.  
  23. Plan hash value: 2934650950
  24.  
  25. --------------------------------------------------
  26. | Id | Operation | Name | E-Rows |
  27. --------------------------------------------------
  28. | 0 | SELECT STATEMENT | | |
  29. | 1 | SORT AGGREGATE | | 1 |
  30. |* 2 | INDEX FAST FULL SCAN| I_USER2 | 285 |
  31. --------------------------------------------------
  32.  
  33. Outline Data
  34. -------------
  35.  
  36. /*+
  37. BEGIN_OUTLINE_DATA
  38. IGNORE_OPTIM_EMBEDDED_HINTS
  39. OPTIMIZER_FEATURES_ENABLE('11.2.0.4')
  40. DB_VERSION('19.1.0')
  41. OPT_PARAM('_px_adaptive_dist_method' 'choose')
  42. OPT_PARAM('_optimizer_strans_adaptive_pruning' 'true')
  43. OPT_PARAM('_optimizer_nlj_hj_adaptive_join' 'true')
  44. ALL_ROWS
  45. OUTLINE_LEAF(@"SEL$F5BB74E1")
  46. MERGE(@"SEL$2" >"SEL$1")
  47. OUTLINE(@"SEL$1")
  48. OUTLINE(@"SEL$2")
  49. INDEX_FFS(@"SEL$F5BB74E1" "U"@"SEL$2" ("USER$"."USER#" "USER$"."TYPE#"
  50. "USER$"."SPARE1" "USER$"."SPARE2"))
  51. END_OUTLINE_DATA
  52. */
  53.  
  54. Predicate Information (identified by operation id):
  55. ---------------------------------------------------
  56.  
  57. 2 - filter("U"."TYPE#"=1)
  58.  
  59. Note
  60. -----
  61. - SQL patch "tiak_test" used for this statement
  62. - Warning: basic plan statistics not available. These are only collected when:
  63. * hint 'gather_plan_statistics' is used for the statement or
  64. * parameter 'statistics_level' is set to 'ALL', at session or system level
  65.  
  66.  
  67. 47 rows selected.
  68.  
  69.  
  70. SQL_ID bs8msr9g2a6zr, child number 0
  71. -------------------------------------
  72. SELECT COUNT(*) FROM ALL_USERS
  73.  
  74. Plan hash value: 2934650950
  75.  
  76. --------------------------------------------------
  77. | Id | Operation | Name | E-Rows |
  78. --------------------------------------------------
  79. | 0 | SELECT STATEMENT | | |
  80. | 1 | SORT AGGREGATE | | 1 |
  81. |* 2 | INDEX FAST FULL SCAN| I_USER2 | 285 |
  82. --------------------------------------------------
  83.  
  84. Outline Data
  85. -------------
  86.  
  87. /*+
  88. BEGIN_OUTLINE_DATA
  89. IGNORE_OPTIM_EMBEDDED_HINTS
  90. OPTIMIZER_FEATURES_ENABLE('11.2.0.4')
  91. DB_VERSION('19.1.0')
  92. OPT_PARAM('_px_adaptive_dist_method' 'choose')
  93. OPT_PARAM('_optimizer_strans_adaptive_pruning' 'true')
  94. OPT_PARAM('_optimizer_nlj_hj_adaptive_join' 'true')
  95. ALL_ROWS
  96. OUTLINE_LEAF(@"SEL$F5BB74E1")
  97. MERGE(@"SEL$2" >"SEL$1")
  98. OUTLINE(@"SEL$1")
  99. OUTLINE(@"SEL$2")
  100. INDEX_FFS(@"SEL$F5BB74E1" "U"@"SEL$2" ("USER$"."USER#" "USER$"."TYPE#"
  101. "USER$"."SPARE1" "USER$"."SPARE2"))
  102. END_OUTLINE_DATA
  103. */
  104.  
  105. Predicate Information (identified by operation id):
  106. ---------------------------------------------------
  107.  
  108. 2 - filter("U"."TYPE#"=1)
  109.  
  110. Note
  111. -----
  112. - SQL patch "tiak_test" used for this statement
  113. - Warning: basic plan statistics not available. These are only collected when:
  114. * hint 'gather_plan_statistics' is used for the statement or
  115. * parameter 'statistics_level' is set to 'ALL', at session or system level
  116.  
  117.  
  118. 47 rows selected.
  119.  
  120.  
  121. SQL_ID 6rdp5awykj73b, child number 0
  122. -------------------------------------
  123. select /* test */ count(*) from all_users
  124.  
  125. Plan hash value: 3622317471
  126.  
  127. ---------------------------------------------
  128. | Id | Operation | Name | E-Rows |
  129. ---------------------------------------------
  130. | 0 | SELECT STATEMENT | | |
  131. | 1 | SORT AGGREGATE | | 1 |
  132. |* 2 | INDEX SKIP SCAN| I_USER2 | 285 |
  133. ---------------------------------------------
  134.  
  135. Outline Data
  136. -------------
  137.  
  138. /*+
  139. BEGIN_OUTLINE_DATA
  140. IGNORE_OPTIM_EMBEDDED_HINTS
  141. OPTIMIZER_FEATURES_ENABLE('19.1.0')
  142. DB_VERSION('19.1.0')
  143. OPT_PARAM('_b_tree_bitmap_plans' 'false')
  144. OPT_PARAM('_fast_full_scan_enabled' 'false')
  145. ALL_ROWS
  146. OUTLINE_LEAF(@"SEL$F5BB74E1")
  147. MERGE(@"SEL$2" >"SEL$1")
  148. OUTLINE(@"SEL$1")
  149. OUTLINE(@"SEL$2")
  150. INDEX_SS(@"SEL$F5BB74E1" "U"@"SEL$2" ("USER$"."USER#" "USER$"."TYPE#"
  151. "USER$"."SPARE1" "USER$"."SPARE2"))
  152. END_OUTLINE_DATA
  153. */
  154.  
  155. Predicate Information (identified by operation id):
  156. ---------------------------------------------------
  157.  
  158. 2 - access("U"."TYPE#"=1)
  159. filter("U"."TYPE#"=1)
  160.  
  161. Note
  162. -----
  163. - Warning: basic plan statistics not available. These are only collected when:
  164. * hint 'gather_plan_statistics' is used for the statement or
  165. * parameter 'statistics_level' is set to 'ALL', at session or system level
  166.  
  167.  
  168. 46 rows selected.
  169.  
  170.  
  171. SQL_ID 2djphr73jrxvx, child number 0
  172. -------------------------------------
  173. select COUNT(*) from all_users
  174.  
  175. Plan hash value: 2934650950
  176.  
  177. --------------------------------------------------
  178. | Id | Operation | Name | E-Rows |
  179. --------------------------------------------------
  180. | 0 | SELECT STATEMENT | | |
  181. | 1 | SORT AGGREGATE | | 1 |
  182. |* 2 | INDEX FAST FULL SCAN| I_USER2 | 285 |
  183. --------------------------------------------------
  184.  
  185. Outline Data
  186. -------------
  187.  
  188. /*+
  189. BEGIN_OUTLINE_DATA
  190. IGNORE_OPTIM_EMBEDDED_HINTS
  191. OPTIMIZER_FEATURES_ENABLE('11.2.0.4')
  192. DB_VERSION('19.1.0')
  193. OPT_PARAM('_px_adaptive_dist_method' 'choose')
  194. OPT_PARAM('_optimizer_strans_adaptive_pruning' 'true')
  195. OPT_PARAM('_optimizer_nlj_hj_adaptive_join' 'true')
  196. ALL_ROWS
  197. OUTLINE_LEAF(@"SEL$F5BB74E1")
  198. MERGE(@"SEL$2" >"SEL$1")
  199. OUTLINE(@"SEL$1")
  200. OUTLINE(@"SEL$2")
  201. INDEX_FFS(@"SEL$F5BB74E1" "U"@"SEL$2" ("USER$"."USER#" "USER$"."TYPE#"
  202. "USER$"."SPARE1" "USER$"."SPARE2"))
  203. END_OUTLINE_DATA
  204. */
  205.  
  206. Predicate Information (identified by operation id):
  207. ---------------------------------------------------
  208.  
  209. 2 - filter("U"."TYPE#"=1)
  210.  
  211. Note
  212. -----
  213. - SQL patch "tiak_test" used for this statement
  214. - Warning: basic plan statistics not available. These are only collected when:
  215. * hint 'gather_plan_statistics' is used for the statement or
  216. * parameter 'statistics_level' is set to 'ALL', at session or system level
  217.  
  218.  
  219. 47 rows selected.
  220.  
  221. SQL> select force_matching_signature, exact_matching_signature, sql_id from v$sqlarea where sql_id in ('2djphr73jrxvx', '6rdp5awykj73b', 'bs8msr9g2a6zr', 'b2zqhgr5tzbpk');
  222.  
  223. FORCE_MATCHING_SIGNATURE EXACT_MATCHING_SIGNATURE SQL_ID
  224. ------------------------ ------------------------ -------------
  225. 5693229891079148371 5693229891079148371 6rdp5awykj73b
  226. 5932186539561753882 5932186539561753882 bs8msr9g2a6zr
  227. 5932186539561753882 5932186539561753882 b2zqhgr5tzbpk
  228. 5932186539561753882 5932186539561753882 2djphr73jrxvx
  229.  
  230. SQL>
  231.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement