{"id":4075,"date":"2020-11-09T13:09:48","date_gmt":"2020-11-09T19:09:48","guid":{"rendered":"http:\/\/www.aamirharoon.com\/?p=4075"},"modified":"2020-11-29T12:04:15","modified_gmt":"2020-11-29T18:04:15","slug":"enforce-execution-plan-of-hinted-sql-to-non-hinted-sql","status":"publish","type":"post","link":"http:\/\/www.aamirharoon.com\/?p=4075","title":{"rendered":"Enforce Execution Plan of &#8220;hinted&#8221; SQL To &#8220;non-hinted&#8221; SQL"},"content":{"rendered":"\n<p>Sometimes a SQL performs better when given an Optimizer hint.&nbsp; However in some scenarios it is not possible to  modify the SQL (maybe it is vendor code).&nbsp; Or a SQL performs better in one database but it is using different plan in production database and it is very slow.&nbsp; In this article, I&#8217;ll cover how to force an execution plan generated by &#8220;hinted&#8221;&nbsp;SQL to &#8220;non-hinted&#8221; SQL using SQL Plan Management (SPM) with example.<\/p>\n\n\n\n<p>Before we start you&#8217;ll need following three information:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Original &#8220;non-hinted&#8221; SQL ID<\/li><li>&#8220;Hinted&#8221; SQL ID<\/li><li>Plan Hash Value (PHV) of &#8220;Hinted&#8221; SQL&nbsp;<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"SQLPlanManagement(SPM)-Step-by-stepguide\">Step-by-step guide<\/h2>\n\n\n\n<p>Let&#8217;s assume we have following information and SQLs are still in <strong>cache<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Original &#8220;non-hinted&#8221; SQL ID:&nbsp;<code><span class=\"has-inline-color has-luminous-vivid-orange-color\">7m64ushfczttq<\/span>&nbsp;<\/code><\/li><li>&#8220;Hinted&#8221; SQL ID:&nbsp;&nbsp;<code><span class=\"has-inline-color has-vivid-green-cyan-color\">c2w8ztp115a5g<\/span><\/code><\/li><li>Plan Hash Value (PHV) of &#8220;hinted&#8221; SQL:&nbsp;&nbsp;<code><span class=\"has-inline-color has-vivid-cyan-blue-color\">2159323895<\/span><\/code><\/li><\/ul>\n\n\n\n<script async src=\"https:\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js\"><\/script>\n<ins class=\"adsbygoogle\"\n     style=\"display:block; text-align:center;\"\n     data-ad-layout=\"in-article\"\n     data-ad-format=\"fluid\"\n     data-ad-client=\"ca-pub-0542342557062526\"\n     data-ad-slot=\"4744618118\"><\/ins>\n<script>\n     (adsbygoogle = window.adsbygoogle || []).push({});\n<\/script>\n\n\n<p style=\"padding-left: 40px;\">1. Load original &#8220;non-hinted&#8221; SQL to SPM<\/p>\n<pre><span style=\"color: #008000;\">--load non-hinted (normal) sql <\/span><br>SET SERVEROUTPUT&nbsp;ON<br>DECLARE<br>L_PLANS_LOADED PLS_INTEGER;<br>BEGIN   L_PLANS_LOADED :=&nbsp; DBMS_SPM.LOAD_PLANS_FROM_CURSOR_CACHE(<br>                SQL_ID =&gt; '<span style=\"color: #ff6600;\">7m64ushfczttq<\/span>');<br>  DBMS_OUTPUT.PUT_LINE ('Plans Loaded: '|| L_PLANS_LOADED);<br>END;<br>\/&nbsp;<br><br>Plans Loaded: 1<br data-rich-text-line-break=\"true\">PL\/SQL&nbsp;procedure successfully completed.<code><br data-rich-text-line-break=\"true\"><\/code><\/pre>\n<p style=\"padding-left: 40px;\">2. Get SQL Handle and Plan name for &#8220;non-hinted&#8221; SQL<\/p>\n<pre><span style=\"color: #008000;\">--get sql_handle<\/span><br>col sql_handle for a22<br>col plan_name for a40<br>col enabled for a5<br>SELECT sql_handle, plan_name, enabled<br>FROM dba_sql_plan_baselines<br>WHERE sql_text LIKE '%INSERT INTO T1 (COL1, COL2, COL3, COL4)%';<br><br>SQL_HANDLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PLAN_NAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ENABL<br>---------------------- ---------------------------------------- -----<br>SQL_4d6c0be445ee1b45&nbsp;&nbsp; <span style=\"color: #ff6600;\">SQL_PLAN_4uv0bwj2yw6u5314cc063<\/span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style=\"color: #ff0000;\">YES<\/span> <br><br>1 row selected.<\/pre>\n<p style=\"padding-left: 40px;\">3. Plan Baseline has been loaded with the current execution plan which we don&#8217;t want. So we must disable it using SQL Handle and Plan name from above.<\/p>\n<pre><span style=\"color: #008000;\">--disable plan<\/span><br>SET&nbsp;SERVEROUTPUT&nbsp;ON<br>DECLARE<br>   l_plans_altered&nbsp;&nbsp; PLS_INTEGER;<br>BEGIN<br>   l_plans_altered :=DBMS_SPM.alter_sql_plan_baseline (<br>                         sql_handle&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&gt; 'SQL_4d6c0be445ee1b45',<br>                         plan_name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&gt; '<span style=\"color: #ff6600;\">SQL_PLAN_4uv0bwj2yw6u5314cc063<\/span>',<br>                         attribute_name&nbsp;&nbsp;&nbsp; =&gt; 'enabled',<br>                         attribute_value&nbsp;&nbsp; =&gt; '<span style=\"color: #ff0000;\">NO<\/span>');<br>   DBMS_OUTPUT.put_line ('Plans Altered: '&nbsp;|| l_plans_altered);<br>END;<br>\/<br><br>Plans Altered: 1<br>PL\/SQL procedure successfully completed.<\/pre>\n<p style=\"padding-left: 40px;\">4. Verify that SQL Plan is disabled<\/p>\n<pre><span style=\"color: #008000;\">--Verify<\/span><br>col sql_handle for a22<br>col plan_name for a40<br>col enabled for a5<br>SELECT sql_handle, plan_name, enabled<br>FROM dba_sql_plan_baselines<br>WHERE sql_text LIKE '%INSERT INTO T1 (COL1, COL2, COL3, COL4)%';<br><br>SQL_HANDLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PLAN_NAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ENABL<br>---------------------- ---------------------------------------- -----<br>SQL_4d6c0be445ee1b45&nbsp;&nbsp; <span style=\"color: #ff6600;\">SQL_PLAN_4uv0bwj2yw6u5314cc063<\/span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style=\"color: #ff0000;\">NO<\/span>&nbsp; <br><br>1 row selected.<\/pre>\n<p style=\"padding-left: 40px;\">5. Now we need to associate execution plan of &#8220;hinted&#8221; SQL with original &#8220;non-hinted&#8221; SQL.&nbsp; In the load procedure we will provide the SQL Handle of &#8220;non-hinted&#8221; SQL from above step.<\/p>\n<pre><span style=\"color: #008000;\">--Associate hinted plan with original SQL Stmt's SQL Handle<\/span><br>SET&nbsp;SERVEROUTPUT&nbsp;ON<br>DECLARE<br>   L_PLANS_LOADED&nbsp;&nbsp; PLS_INTEGER;<br>BEGIN<br>   L_PLANS_LOADED := DBMS_SPM.LOAD_PLANS_FROM_CURSOR_CACHE(<br>                         SQL_ID&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&gt; '<span style=\"color: #00ff00;\">c2w8ztp115a5g<\/span>',<br>                         PLAN_HASH_VALUE&nbsp;&nbsp; =&gt; '<span style=\"color: #0000ff;\">2159323895<\/span>',<br>                         SQL_HANDLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =&gt; '<span style=\"color: #ff0000;\">SQL_4d6c0be445ee1b45<\/span>');<br>   DBMS_OUTPUT.PUT_LINE ('Plans Loaded: ' || L_PLANS_LOADED);<br>END;<br>\/<br><br>Plans Loaded: 1<br>PL\/SQL procedure&nbsp;successfully completed.<\/pre>\n<p style=\"padding-left: 40px;\">6. Verify that only one Plan is enabled<\/p>\n<pre><span style=\"color: #008000;\">--Verify<\/span><br>col sql_handle&nbsp;for&nbsp;a22<br>col plan_name&nbsp;for&nbsp;a40<br>col enabled&nbsp;for&nbsp;a5<br>SELECT&nbsp;sql_handle, plan_name, enabled<br>   FROM&nbsp;dba_sql_plan_baselines<br>  WHERE&nbsp;sql_text&nbsp;LIKE&nbsp;'%INSERT INTO T1 (COL1, COL2, COL3, COL4)%';<br><br>SQL_HANDLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PLAN_NAME&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ENABL<br>---------------------- ---------------------------------------- -----<br>SQL_4d6c0be445ee1b45&nbsp;&nbsp; <span style=\"color: #ff6600;\">SQL_PLAN_4uv0bwj2yw6u5314cc063<\/span>           <span style=\"color: #ff0000;\">NO<\/span>&nbsp;&nbsp;<br>SQL_4d6c0be445ee1b45&nbsp;&nbsp; <span style=\"color: #00ff00;\">SQL_PLAN_4uv0bwj2yw6u5d2c58f83<\/span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style=\"color: #ff0000;\">YES<\/span>&nbsp;<\/pre>\n<p style=\"padding-left: 40px;\">7. To confirm that execution plan we want is loaded, we can display it using following SQL.<\/p>\n<pre>SET LONG 10000 pages 0 lines 200 trim on trims on<br>SELECT&nbsp;*<br>   FROM&nbsp;&nbsp;&nbsp;TABLE( DBMS_XPLAN.display_sql_plan_baseline(plan_name=&gt;'<span style=\"color: #00ff00;\">SQL_PLAN_4uv0bwj2yw6u5d2c58f83<\/span>'));&nbsp;<br>--------------------------------------------------------------------------------<br>SQL handle: SQL_4d6c0be445ee1b45<br>SQL text: INSERT&nbsp;INTO T1 (COL1, COL2, COL3, COL4)...<br>----------------------------------------------------------------------------------------------------------------------------------------------------------------<br>Plan&nbsp;name: <span style=\"color: #00ff00;\">SQL_PLAN_4uv0bwj2yw6u5d2c58f83<\/span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>Plan id: <span style=\"color: #000000;\">3536162691<\/span><br>Enabled: YES&nbsp;&nbsp;&nbsp;&nbsp; Fixed:&nbsp;NO&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Accepted: <span style=\"color: #ff0000;\">YES<\/span>&nbsp;&nbsp;&nbsp;&nbsp; Origin: MANUAL-LOAD<br>Plan&nbsp;rows:&nbsp;From&nbsp;dictionary<br>--------------------------------------------------------------------------------<br>Plan hash value: <span style=\"color: #0000ff;\">2159323895<\/span><br>-------------------------------------------------------------------------------------------------------------------<br>| Id&nbsp; | Operation&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;Name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;Rows&nbsp;&nbsp;| Bytes |TempSpc| Cost (%CPU)|&nbsp;Time&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>-------------------------------------------------------------------------------------------------------------------<br>|&nbsp;&nbsp; 0 |&nbsp;INSERT&nbsp;STATEMENT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; 1440K(100)|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br>|&nbsp;&nbsp; 1 |&nbsp;&nbsp;LOAD&nbsp;TABLE&nbsp;CONVENTIONAL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | T1                    &nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp; (0)|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br>|&nbsp;&nbsp; 2 |&nbsp;&nbsp; HASH&nbsp;UNIQUE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; 1 |&nbsp;&nbsp; 111 |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; 1440K&nbsp; (1)| 00:00:57 |<br>|*&nbsp; 3 |&nbsp;&nbsp;&nbsp; HASH&nbsp;JOIN&nbsp;RIGHT&nbsp;OUTER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; 1 |&nbsp;&nbsp; 111 |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; 1440K&nbsp; (1)| 00:00:57 |<br>|&nbsp;&nbsp; 4 |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;VIEW&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| VW_DTP_DA2E497E&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; 1 |&nbsp;&nbsp;&nbsp; 30 |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 717K&nbsp; (1)| 00:00:29 |<br>|&nbsp;&nbsp; 5 |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SORT&nbsp;UNIQUE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; 1 |&nbsp;&nbsp;&nbsp; 30 |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 717K&nbsp; (1)| 00:00:29 |<br>|&nbsp;&nbsp; 6 |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;VIEW&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; 1 |&nbsp;&nbsp;&nbsp; 30 |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 717K&nbsp; (1)| 00:00:29 |<br>|*&nbsp; 7 |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HASH&nbsp;JOIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; 1 |&nbsp;&nbsp;&nbsp; 78 |&nbsp;&nbsp;&nbsp; 17M|&nbsp;&nbsp; 717K&nbsp; (1)| 00:00:29 |<br>|&nbsp;&nbsp; 8 |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TABLE&nbsp;ACCESS&nbsp;FULL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| T1                     &nbsp; |&nbsp;&nbsp; 286K|&nbsp;&nbsp;&nbsp; 13M|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; 2953&nbsp;&nbsp; (2)| 00:00:01 |<br>|*&nbsp; 9 |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HASH&nbsp;JOIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; 7530K|&nbsp;&nbsp; 193M|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 699K&nbsp; (1)| 00:00:28 |<br>|* 10 |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TABLE&nbsp;ACCESS&nbsp;FULL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| T2               &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; 7 |&nbsp;&nbsp;&nbsp; 14 |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp; (0)| 00:00:01 |<br>|* 11 |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;VIEW&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;index$_join$_008&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; 63M|&nbsp; 1522M|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 699K&nbsp; (1)| 00:00:28 |<br>|* 12 |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HASH&nbsp;JOIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp; (0)|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br>|* 13 |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;INDEX&nbsp;RANGE SCAN&nbsp;&nbsp;&nbsp; | IX4                      |&nbsp;&nbsp;&nbsp; 63M|&nbsp; 1522M|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 119K&nbsp; (2)| 00:00:05 |<br>|&nbsp; 14 |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;INDEX&nbsp;FAST&nbsp;FULL&nbsp;SCAN| IX1                  &nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; 63M|&nbsp; 1522M|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 462K&nbsp; (1)| 00:00:19 |<br>|* 15 |&nbsp;&nbsp;&nbsp;&nbsp; HASH&nbsp;JOIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; 1 |&nbsp;&nbsp;&nbsp; 81 |&nbsp;&nbsp;&nbsp; 17M|&nbsp;&nbsp; 723K&nbsp; (1)| 00:00:29 |<br>|&nbsp; 16 |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TABLE&nbsp;ACCESS&nbsp;FULL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| T1                     &nbsp; |&nbsp;&nbsp; 286K|&nbsp;&nbsp;&nbsp; 13M|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; 2953&nbsp;&nbsp; (2)| 00:00:01 |<br>|* 17 |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HASH&nbsp;JOIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp; 9694K|&nbsp;&nbsp; 277M|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 699K&nbsp; (1)| 00:00:28 |<br>|&nbsp; 18 |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TABLE&nbsp;ACCESS&nbsp;FULL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| T2               &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; 52 |&nbsp;&nbsp; 260 |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; 2&nbsp;&nbsp; (0)| 00:00:01 |<br>|* 19 |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;VIEW&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;index$_join$_004&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; 63M|&nbsp; 1522M|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 699K&nbsp; (1)| 00:00:28 |<br>|* 20 |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HASH&nbsp;JOIN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp; (0)|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |<br>|* 21 |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;INDEX&nbsp;RANGE SCAN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | IX4                      |&nbsp;&nbsp;&nbsp; 63M|&nbsp; 1522M|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 119K&nbsp; (2)| 00:00:05 |<br>|&nbsp; 22 |&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;INDEX&nbsp;FAST&nbsp;FULL&nbsp;SCAN&nbsp;&nbsp; | IX1                  &nbsp;&nbsp;&nbsp; |&nbsp;&nbsp;&nbsp; 63M|&nbsp; 1522M|&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&nbsp;&nbsp; 462K&nbsp; (1)| 00:00:19 |<br>-------------------------------------------------------------------------------------------------------------------<br><br>82 rows selected.<\/pre>\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Sometimes a SQL performs better when given an Optimizer hint.&nbsp; However in some scenarios it is not possible to modify the SQL (maybe it is<\/p>\n","protected":false},"author":1,"featured_media":4127,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[57,45],"tags":[53,59,58,47],"class_list":["post-4075","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-oracle-database","category-sql-query-performance","tag-oracle-database","tag-spm","tag-sql-plan-management","tag-sql-query-performance"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Enforce Execution Plan of &quot;hinted&quot; SQL To &quot;non-hinted&quot; SQL - The Database Handyman<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.aamirharoon.com\/?p=4075\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Enforce Execution Plan of &quot;hinted&quot; SQL To &quot;non-hinted&quot; SQL - The Database Handyman\" \/>\n<meta property=\"og:description\" content=\"Sometimes a SQL performs better when given an Optimizer hint.&nbsp; However in some scenarios it is not possible to modify the SQL (maybe it is\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.aamirharoon.com\/?p=4075\" \/>\n<meta property=\"og:site_name\" content=\"The Database Handyman\" \/>\n<meta property=\"article:published_time\" content=\"2020-11-09T19:09:48+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-11-29T18:04:15+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.aamirharoon.com\/wp-content\/uploads\/2020\/11\/parallel_plan.png\" \/>\n\t<meta property=\"og:image:width\" content=\"624\" \/>\n\t<meta property=\"og:image:height\" content=\"285\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Aamir\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@aamir814\" \/>\n<meta name=\"twitter:site\" content=\"@aamir814\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Aamir\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.aamirharoon.com\/?p=4075#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.aamirharoon.com\/?p=4075\"},\"author\":{\"name\":\"Aamir\",\"@id\":\"http:\/\/www.aamirharoon.com\/#\/schema\/person\/dbcd256c4a97c6e27b7cc408200a9b63\"},\"headline\":\"Enforce Execution Plan of &#8220;hinted&#8221; SQL To &#8220;non-hinted&#8221; SQL\",\"datePublished\":\"2020-11-09T19:09:48+00:00\",\"dateModified\":\"2020-11-29T18:04:15+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.aamirharoon.com\/?p=4075\"},\"wordCount\":249,\"commentCount\":0,\"publisher\":{\"@id\":\"http:\/\/www.aamirharoon.com\/#\/schema\/person\/dbcd256c4a97c6e27b7cc408200a9b63\"},\"image\":{\"@id\":\"https:\/\/www.aamirharoon.com\/?p=4075#primaryimage\"},\"thumbnailUrl\":\"http:\/\/www.aamirharoon.com\/wp-content\/uploads\/2020\/11\/parallel_plan.png\",\"keywords\":[\"oracle database\",\"SPM\",\"SQL Plan Management\",\"SQL Query Performance\"],\"articleSection\":[\"Oracle Database\",\"SQL Query performance\"],\"inLanguage\":\"en\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.aamirharoon.com\/?p=4075#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.aamirharoon.com\/?p=4075\",\"url\":\"https:\/\/www.aamirharoon.com\/?p=4075\",\"name\":\"Enforce Execution Plan of \\\"hinted\\\" SQL To \\\"non-hinted\\\" SQL - The Database Handyman\",\"isPartOf\":{\"@id\":\"http:\/\/www.aamirharoon.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.aamirharoon.com\/?p=4075#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.aamirharoon.com\/?p=4075#primaryimage\"},\"thumbnailUrl\":\"http:\/\/www.aamirharoon.com\/wp-content\/uploads\/2020\/11\/parallel_plan.png\",\"datePublished\":\"2020-11-09T19:09:48+00:00\",\"dateModified\":\"2020-11-29T18:04:15+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.aamirharoon.com\/?p=4075#breadcrumb\"},\"inLanguage\":\"en\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.aamirharoon.com\/?p=4075\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en\",\"@id\":\"https:\/\/www.aamirharoon.com\/?p=4075#primaryimage\",\"url\":\"http:\/\/www.aamirharoon.com\/wp-content\/uploads\/2020\/11\/parallel_plan.png\",\"contentUrl\":\"http:\/\/www.aamirharoon.com\/wp-content\/uploads\/2020\/11\/parallel_plan.png\",\"width\":624,\"height\":285},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.aamirharoon.com\/?p=4075#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\/\/www.aamirharoon.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Enforce Execution Plan of &#8220;hinted&#8221; SQL To &#8220;non-hinted&#8221; SQL\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\/\/www.aamirharoon.com\/#website\",\"url\":\"http:\/\/www.aamirharoon.com\/\",\"name\":\"The Database Handyman\",\"description\":\"My notes about Oracle Database, APEX, OEM Cloud Control and whatever I learn\",\"publisher\":{\"@id\":\"http:\/\/www.aamirharoon.com\/#\/schema\/person\/dbcd256c4a97c6e27b7cc408200a9b63\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/www.aamirharoon.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"http:\/\/www.aamirharoon.com\/#\/schema\/person\/dbcd256c4a97c6e27b7cc408200a9b63\",\"name\":\"Aamir\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en\",\"@id\":\"http:\/\/www.aamirharoon.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/63cc5bb07711a1b9719cc47e13a8205072859c1aef30fac28f412baa84b9cf9b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/63cc5bb07711a1b9719cc47e13a8205072859c1aef30fac28f412baa84b9cf9b?s=96&d=mm&r=g\",\"caption\":\"Aamir\"},\"logo\":{\"@id\":\"http:\/\/www.aamirharoon.com\/#\/schema\/person\/image\/\"},\"sameAs\":[\"http:\/\/www.aamirharoon.com\/about\/\",\"https:\/\/x.com\/aamir814\"],\"url\":\"http:\/\/www.aamirharoon.com\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Enforce Execution Plan of \"hinted\" SQL To \"non-hinted\" SQL - The Database Handyman","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.aamirharoon.com\/?p=4075","og_locale":"en_US","og_type":"article","og_title":"Enforce Execution Plan of \"hinted\" SQL To \"non-hinted\" SQL - The Database Handyman","og_description":"Sometimes a SQL performs better when given an Optimizer hint.&nbsp; However in some scenarios it is not possible to modify the SQL (maybe it is","og_url":"https:\/\/www.aamirharoon.com\/?p=4075","og_site_name":"The Database Handyman","article_published_time":"2020-11-09T19:09:48+00:00","article_modified_time":"2020-11-29T18:04:15+00:00","og_image":[{"width":624,"height":285,"url":"https:\/\/www.aamirharoon.com\/wp-content\/uploads\/2020\/11\/parallel_plan.png","type":"image\/png"}],"author":"Aamir","twitter_card":"summary_large_image","twitter_creator":"@aamir814","twitter_site":"@aamir814","twitter_misc":{"Written by":"Aamir","Est. reading time":"12 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.aamirharoon.com\/?p=4075#article","isPartOf":{"@id":"https:\/\/www.aamirharoon.com\/?p=4075"},"author":{"name":"Aamir","@id":"http:\/\/www.aamirharoon.com\/#\/schema\/person\/dbcd256c4a97c6e27b7cc408200a9b63"},"headline":"Enforce Execution Plan of &#8220;hinted&#8221; SQL To &#8220;non-hinted&#8221; SQL","datePublished":"2020-11-09T19:09:48+00:00","dateModified":"2020-11-29T18:04:15+00:00","mainEntityOfPage":{"@id":"https:\/\/www.aamirharoon.com\/?p=4075"},"wordCount":249,"commentCount":0,"publisher":{"@id":"http:\/\/www.aamirharoon.com\/#\/schema\/person\/dbcd256c4a97c6e27b7cc408200a9b63"},"image":{"@id":"https:\/\/www.aamirharoon.com\/?p=4075#primaryimage"},"thumbnailUrl":"http:\/\/www.aamirharoon.com\/wp-content\/uploads\/2020\/11\/parallel_plan.png","keywords":["oracle database","SPM","SQL Plan Management","SQL Query Performance"],"articleSection":["Oracle Database","SQL Query performance"],"inLanguage":"en","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.aamirharoon.com\/?p=4075#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.aamirharoon.com\/?p=4075","url":"https:\/\/www.aamirharoon.com\/?p=4075","name":"Enforce Execution Plan of \"hinted\" SQL To \"non-hinted\" SQL - The Database Handyman","isPartOf":{"@id":"http:\/\/www.aamirharoon.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.aamirharoon.com\/?p=4075#primaryimage"},"image":{"@id":"https:\/\/www.aamirharoon.com\/?p=4075#primaryimage"},"thumbnailUrl":"http:\/\/www.aamirharoon.com\/wp-content\/uploads\/2020\/11\/parallel_plan.png","datePublished":"2020-11-09T19:09:48+00:00","dateModified":"2020-11-29T18:04:15+00:00","breadcrumb":{"@id":"https:\/\/www.aamirharoon.com\/?p=4075#breadcrumb"},"inLanguage":"en","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.aamirharoon.com\/?p=4075"]}]},{"@type":"ImageObject","inLanguage":"en","@id":"https:\/\/www.aamirharoon.com\/?p=4075#primaryimage","url":"http:\/\/www.aamirharoon.com\/wp-content\/uploads\/2020\/11\/parallel_plan.png","contentUrl":"http:\/\/www.aamirharoon.com\/wp-content\/uploads\/2020\/11\/parallel_plan.png","width":624,"height":285},{"@type":"BreadcrumbList","@id":"https:\/\/www.aamirharoon.com\/?p=4075#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"http:\/\/www.aamirharoon.com\/"},{"@type":"ListItem","position":2,"name":"Enforce Execution Plan of &#8220;hinted&#8221; SQL To &#8220;non-hinted&#8221; SQL"}]},{"@type":"WebSite","@id":"http:\/\/www.aamirharoon.com\/#website","url":"http:\/\/www.aamirharoon.com\/","name":"The Database Handyman","description":"My notes about Oracle Database, APEX, OEM Cloud Control and whatever I learn","publisher":{"@id":"http:\/\/www.aamirharoon.com\/#\/schema\/person\/dbcd256c4a97c6e27b7cc408200a9b63"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/www.aamirharoon.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en"},{"@type":["Person","Organization"],"@id":"http:\/\/www.aamirharoon.com\/#\/schema\/person\/dbcd256c4a97c6e27b7cc408200a9b63","name":"Aamir","image":{"@type":"ImageObject","inLanguage":"en","@id":"http:\/\/www.aamirharoon.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/63cc5bb07711a1b9719cc47e13a8205072859c1aef30fac28f412baa84b9cf9b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/63cc5bb07711a1b9719cc47e13a8205072859c1aef30fac28f412baa84b9cf9b?s=96&d=mm&r=g","caption":"Aamir"},"logo":{"@id":"http:\/\/www.aamirharoon.com\/#\/schema\/person\/image\/"},"sameAs":["http:\/\/www.aamirharoon.com\/about\/","https:\/\/x.com\/aamir814"],"url":"http:\/\/www.aamirharoon.com\/?author=1"}]}},"_links":{"self":[{"href":"http:\/\/www.aamirharoon.com\/index.php?rest_route=\/wp\/v2\/posts\/4075","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.aamirharoon.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.aamirharoon.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.aamirharoon.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.aamirharoon.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4075"}],"version-history":[{"count":30,"href":"http:\/\/www.aamirharoon.com\/index.php?rest_route=\/wp\/v2\/posts\/4075\/revisions"}],"predecessor-version":[{"id":4163,"href":"http:\/\/www.aamirharoon.com\/index.php?rest_route=\/wp\/v2\/posts\/4075\/revisions\/4163"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/www.aamirharoon.com\/index.php?rest_route=\/wp\/v2\/media\/4127"}],"wp:attachment":[{"href":"http:\/\/www.aamirharoon.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4075"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.aamirharoon.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4075"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.aamirharoon.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4075"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}