
{"id":7974,"date":"2019-03-11T15:03:51","date_gmt":"2019-03-11T15:03:51","guid":{"rendered":"https:\/\/rax-stg-wp-aws.com\/blogs\/transfer-sql-plans-by-using-a-sql-plan-baseline\/"},"modified":"2026-11-03T19:29:11","modified_gmt":"2026-11-03T19:29:11","slug":"transfer-sql-plans-by-using-a-sql-plan-baseline","status":"publish","type":"blogs","link":"https:\/\/www.rackspace.com\/en-gb\/blogs\/transfer-sql-plans-by-using-a-sql-plan-baseline\/","title":{"rendered":"Transfer SQL plans by using a SQL plan baseline"},"content":{"rendered":"<p><strong>Introduction to SQL Plan Management<\/strong><\/p>\n<p>A particular SQL query might perform poorly on one database (such as production)&nbsp;but work fine on another database (such as development). This situation might&nbsp;occur if the same query has a different execution plan on each instance. This<br \/>\nblog shows how to transfer the execution plan from an instance, where query&nbsp;works fine, to another instance, where query behaves poorly, by using the SQL&nbsp;plan baseline feature that Oracle\u00a9 Database\u00a9&nbsp;first introduced in&nbsp;version 11g.\u00a9&nbsp;&nbsp;<\/p>\n<p>Oracle SQL Plan Management (SPM) is a feature in Oracle Database that&nbsp;captures all the historical execution plans for a query. With that, you can&nbsp;create a baseline for the good plan from the execution plans available in SPM&nbsp;and enable that baseline to ensure that the system picks only the good plan from&nbsp;the baseline.<\/p>\n<p>To take advantage of this feature, you must identify the `<em>sql_id<\/em>` of the query&nbsp;that is performing well on one instance and performing poorly on another&nbsp;instance. You must also capture the good execution plan ID, the <em>`plan_hash_value<\/em>`,of the query on the instance where it works well.<\/p>\n<p><strong>Copy the SQL base plan from one instance to another<\/strong><\/p>\n<p>Use the following steps to copy the SQL base plan from the source instance to&nbsp;the target instance:<\/p>\n<ol>\n<li>Run the query on the source instance, where the query works well, so that the&nbsp;query exists in the cursor cache.<\/li>\n<li>On the source instance, load the SQL execution plan for the query from the&nbsp;cursor cache to SPM as a baseline.<\/li>\n<li>Create a staging table on the source instance. This table is used to migrate the execution plan from the source instance to the target instance.<\/li>\n<li>Pack the source execution plan, or baseline, in the staging table on the&nbsp; &nbsp;source instance.<\/li>\n<li>Transfer the staging table from the source instance to the target instance by using the export\/import utility.<\/li>\n<li>Unpack the SQL plan on the target instance from the staging table to SPM.<\/li>\n<li>Verify that baseline created on target instance is fixed and accepted for the query to select it on next run.<\/li>\n<li>Test the SQL that had a performance issue on the target instance and verify&nbsp;that it picks the transferred baseline.<\/li>\n<\/ol>\n<p><strong>Example Execution<\/strong><br \/>\nExecuting the preceding steps results in output similar to the following&nbsp;examples.<\/p>\n<p><strong>Step 1: Run query on the source instance<\/strong><\/p>\n<p>Run the SQL on the source instance and identify the `sql_id` and `<em>plan_hash_value<\/em>`.<br \/>\nExamine the cursor cache to get the values. &nbsp;In this case, they are the<br \/>\nfollowing values:<\/p>\n<p><em>&#8211; `sql_id`: 9xva48wpnsmp6<br \/>\n&#8211; `plan_hash_value`: 1572948408)<\/em><\/p>\n<p>Execute the following query on the source instance:<\/p>\n<p><em>&nbsp; &nbsp; SQL&gt; select distinct plan_hash_value from v$sql where sql_id=&#8217;9xva48wpnsmp6&#8242;;<\/em><\/p>\n<p>&nbsp; &nbsp; PLAN_HASH_VALUE<br \/>\n&nbsp; &nbsp; &#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\n&nbsp; &nbsp; 1572948408<\/p>\n<p><strong>&nbsp;Step 2: Load the plan to SPM<\/strong><\/p>\n<p>Execute the following query to load this good query execution plan from the<br \/>\ncursor cache to SPM as a baseline:<\/p>\n<p>&nbsp; <em>&nbsp; SQL&gt; set serveroutput on<br \/>\n&nbsp; &nbsp; SQL&gt; declare<br \/>\n&nbsp; &nbsp; 2 &nbsp; ret binary_integer;<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;l_sql_id varchar2(13);<br \/>\n&nbsp; &nbsp; 3<br \/>\n&nbsp; &nbsp; 4 &nbsp; l_plan_hash_value number;<br \/>\n&nbsp; &nbsp; 5 &nbsp; l_fixed varchar2(3);<br \/>\n&nbsp; &nbsp; 6 &nbsp; l_enabled varchar2(3);<br \/>\n&nbsp; &nbsp; 7 &nbsp; Begin<br \/>\n&nbsp; &nbsp; 8 &nbsp; l_sql_id := &#8216;&amp;&amp;sql_id&#8217;;<br \/>\n&nbsp; &nbsp; 9 &nbsp; l_plan_hash_value := to_number(&#8216;&amp;&amp;plan_hash_value&#8217;);<br \/>\n&nbsp; &nbsp; 10 &nbsp; l_fixed := &#8216;Yes&#8217;;<br \/>\n&nbsp; &nbsp; 11 &nbsp; l_enabled := &#8216;Yes&#8217;;<br \/>\n&nbsp; &nbsp; 12 &nbsp; ret := dbms_spm.load_plans_from_cursor_cache(<br \/>\n&nbsp; &nbsp; 13 &nbsp; &nbsp; &nbsp; sql_id=&gt;l_sql_id,<br \/>\n&nbsp; &nbsp; 14 &nbsp; &nbsp; &nbsp; plan_hash_value=&gt;l_plan_hash_value,<br \/>\n&nbsp; &nbsp; 15 &nbsp; &nbsp; &nbsp; fixed=&gt;l_fixed,<br \/>\n&nbsp; &nbsp; 16 &nbsp; &nbsp; &nbsp; enabled=&gt;l_enabled);<br \/>\n&nbsp; &nbsp; 17 &nbsp; end;<br \/>\n&nbsp; &nbsp; 18 &nbsp;\/<\/em><\/p>\n<p><em>&nbsp; &nbsp; Enter value for sql_id: 9xva48wpnsmp6<br \/>\n&nbsp; &nbsp; old &nbsp; 8: &nbsp;l_sql_id := &#8216;&amp;&amp;sql_id&#8217;;<br \/>\n&nbsp; &nbsp; new &nbsp; 8: &nbsp;l_sql_id := &#8216;9xva48wpnsmp6&#8217;;<\/em><\/p>\n<p><em>&nbsp; &nbsp; Enter value for plan_hash_value: 1572948408<br \/>\n&nbsp; &nbsp; old &nbsp; 9: &nbsp;l_plan_hash_value := to_number(plan_hash_value&#8217;);<br \/>\n&nbsp; &nbsp; new &nbsp; 9: &nbsp;l_plan_hash_value := to_number(&#8216;1572948408&#8217;);<\/em><\/p>\n<p><em>&nbsp; &nbsp; PL\/SQL procedure successfully completed.<br \/>\nExecute the following defined queries to verify that you created the SQL baseline&nbsp;on the source instance. Note the following details for later reference.<\/em><\/p>\n<p><em>&nbsp;SQL&gt; select count(*) from dba_sql_plan_baselines ;<\/em><\/p>\n<p><em>&nbsp; &nbsp; COUNT(*)<br \/>\n&nbsp; &nbsp; &#8212;&#8212;&#8211;<br \/>\n&nbsp; &nbsp; &nbsp; 1<\/em><\/p>\n<p><em>&nbsp; &nbsp; SQL&gt; select SQL_HANDLE, PLAN_NAME from dba_sql_plan_baselines;<\/em><\/p>\n<p><em>&nbsp; &nbsp; SQL_HANDLE &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; PLAN_NAME<br \/>\n&nbsp; &nbsp; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\n&nbsp; &nbsp; SQL_d344aac395f978a4 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SQL_PLAN_d6j5asfazky54868c96c3<\/em><\/p>\n<p><em>#### Step 3: Create a staging table on the source instance<\/em><\/p>\n<p><em>Execute the following query to create a staging table on the source instance:<\/em><\/p>\n<p><em>&nbsp; &nbsp; SQL&gt; sho user<br \/>\n&nbsp; &nbsp; USER is &#8220;SYS&#8221;<br \/>\n&nbsp; &nbsp; SQL&gt; BEGIN<br \/>\n&nbsp; &nbsp; &nbsp; DBMS_SPM.CREATE_STGTAB_BASELINE(<br \/>\n&nbsp; &nbsp; &nbsp; table_name &nbsp; &nbsp; &nbsp;=&gt; &#8216;SPM_STAGETAB&#8217;,<br \/>\n&nbsp; &nbsp; &nbsp; table_owner &nbsp; &nbsp; =&gt; &#8216;APPS&#8217;,<br \/>\n&nbsp; &nbsp; &nbsp; tablespace_name =&gt; &#8216;SYSAUX&#8217;);<br \/>\n&nbsp; &nbsp; END;<\/em><\/p>\n<p><em>&nbsp; &nbsp; 2 &nbsp; &nbsp;3 &nbsp; &nbsp;4 &nbsp; &nbsp;5 &nbsp; &nbsp;6 &nbsp; &nbsp;7<br \/>\n&nbsp; &nbsp; 8 &nbsp;\/<\/em><\/p>\n<p><em>&nbsp; &nbsp; PL\/SQL procedure successfully completed.<\/em><br \/>\n&nbsp;<\/p>\n<p><strong>&nbsp;Step 4: Pack the baseline<\/strong><\/p>\n<p>Execute the following query to pack the baseline in the staging table on the<br \/>\nsource instance:<\/p>\n<p><em>&nbsp; &nbsp; SQL&gt; DECLARE<br \/>\n&nbsp; &nbsp; 2 &nbsp; &nbsp; &nbsp;my_plans number;<br \/>\n&nbsp; &nbsp; 3 &nbsp; &nbsp; &nbsp;BEGIN<br \/>\n&nbsp; &nbsp; 4 &nbsp; &nbsp; &nbsp; &nbsp;my_plans := DBMS_SPM.PACK_STGTAB_BASELINE(<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;table_name =&gt; &#8216;SPM_STAGETAB&#8217;,<br \/>\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;enabled =&gt; &#8216;yes&#8217;,<br \/>\n&nbsp; &nbsp; 5<br \/>\n&nbsp; &nbsp; 6<br \/>\n&nbsp; &nbsp; 7 &nbsp; &nbsp; &nbsp; &nbsp;table_owner =&gt; &#8216;APPS&#8217;,<br \/>\n&nbsp; &nbsp; 8 &nbsp; &nbsp; &nbsp; &nbsp;plan_name =&gt; &#8216;SQL_PLAN_d6j5asfazky54868c96c3&#8217;,<br \/>\n&nbsp; &nbsp; 9 &nbsp; &nbsp; &nbsp;sql_handle =&gt; &#8216;SQL_d344aac395f978a4&#8217;);<br \/>\n&nbsp; &nbsp; 10 &nbsp; END;<br \/>\n&nbsp; &nbsp; 11 &nbsp;\/<\/em><\/p>\n<p>&nbsp; &nbsp; PL\/SQL procedure successfully completed.<\/p>\n<p><strong>&nbsp;Step 5: Transfer the staging table from the source to the target instance<\/strong><\/p>\n<p>Execute the following command to take an export backup of the staging table on<br \/>\nthe source instance:<\/p>\n<p><em>&nbsp;exp file=SPM_STAGETAB.dmp tables=APPS.SPM_STAGETAB log=SPM_STAGETAB.log compress=n<br \/>\n&nbsp; &nbsp; Export: Release 11.2.0.4.0 &#8211; Production on Sun Jun 3 13:14:50 2018<br \/>\n&nbsp; &nbsp; Copyright (c) 1982, 2011, Oracle and\/or its affiliates. &nbsp;All rights reserved.<\/em><\/p>\n<p><em>&nbsp; &nbsp; Username: system\/*******<\/em><\/p>\n<p><em>&nbsp; &nbsp; Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 &#8211; 64bit Production<br \/>\n&nbsp; &nbsp; With the Partitioning, OLAP, Data Mining and Real Application Testing options<br \/>\n&nbsp; &nbsp; Export done in US7ASCII character set and AL16UTF16 NCHAR character set<\/em><\/p>\n<p><em>&nbsp; &nbsp; About to export specified tables via Conventional Path &#8230;<br \/>\n&nbsp; &nbsp; Current user changed to APPS<br \/>\n&nbsp; &nbsp; . . exporting table &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; SPM_STAGETAB&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1 rows exported<br \/>\n&nbsp; &nbsp; Export terminated successfully without warnings.<\/em><\/p>\n<p>Now, execute the following command on the target instance to transfer the export&nbsp;backup of the staging table to the target instance&#8217;s host and import the table&nbsp;in the target instance:<\/p>\n<p><em>&nbsp; &nbsp; imp system file=SPM_STAGETAB.dmp log=imp_SPM_STAGETAB.log fromuser=apps touser=apps<\/em><\/p>\n<p><em>&nbsp; &nbsp; Import: Release 11.2.0.4.0 &#8211; Production on Sun Jun 3 14:16:25 2018<\/em><\/p>\n<p><em>&nbsp; &nbsp; Copyright (c) 1982, 2011, Oracle and\/or its affiliates. &nbsp;All rights reserved.<\/em><\/p>\n<p><em>&nbsp; &nbsp; Password:<\/em><\/p>\n<p>Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 &#8211; 64bit Production<br \/>\n&nbsp; &nbsp; With the Partitioning, OLAP, Data Mining and Real Application Testing options<\/p>\n<p>&nbsp; <em>&nbsp; Export file created by EXPORT:V11.02.00 via conventional path<\/em><br \/>\n&nbsp; &nbsp;<em> import done in US7ASCII character set and AL16UTF16 NCHAR character set<\/em><br \/>\n&nbsp; &nbsp; . importing APPS&#8217;s objects into APPS<br \/>\n&nbsp; &nbsp; . . importing table &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#8220;SPM_STAGETAB&#8221; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 1 rows imported<br \/>\n&nbsp; &nbsp; Import terminated successfully without warnings.<\/p>\n<p><strong>Step 6: Unpack the baseline<\/strong><br \/>\nExecute the following commands to unpack the baseline from staging table to the&nbsp;target instance&#8217;s SPM. In the following example, take a count before unpacking&nbsp;the baseline to verify that the baseline was imported properly on the target.<br \/>\n<em>&nbsp;SQL&gt; select count(*) from dba_sql_plan_baselines;<\/em><\/p>\n<p>&nbsp;<\/p>\n<p><em>&nbsp; COUNT(*)<br \/>\n&nbsp; &nbsp; &#8212;&#8212;&#8211;<br \/>\n&nbsp; &nbsp; &nbsp; 2<\/em><\/p>\n<p><em>&nbsp; &nbsp; SQL&gt; SET SERVEROUTPUT ON<br \/>\n&nbsp; &nbsp; SQL&gt; DECLARE<br \/>\n&nbsp; &nbsp; 2 &nbsp; &nbsp; &nbsp;l_plans_unpacked &nbsp;PLS_INTEGER;<br \/>\n&nbsp; &nbsp; 3 &nbsp; &nbsp; &nbsp; &nbsp; BEGIN<br \/>\n&nbsp; &nbsp; 4 &nbsp; &nbsp; &nbsp; &nbsp; l_plans_unpacked := DBMS_SPM.unpack_stgtab_baseline(<br \/>\n&nbsp; &nbsp; 5 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; table_name &nbsp; &nbsp; &nbsp;=&gt; &#8216;SPM_STAGETAB&#8217;,<br \/>\n&nbsp; &nbsp; 6 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; table_owner &nbsp; &nbsp; =&gt; &#8216;APPS&#8217;);<br \/>\n&nbsp; &nbsp; 7<br \/>\n&nbsp; &nbsp; 8 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;DBMS_OUTPUT.put_line(&#8216;Plans Unpacked: &#8216; || l_plans_unpacked);<br \/>\n&nbsp; &nbsp; 9 &nbsp; &nbsp; &nbsp;END;<br \/>\n&nbsp; &nbsp; 10 &nbsp;\/<br \/>\n&nbsp; &nbsp; Plans Unpacked: 1<\/em><\/p>\n<p><em>&nbsp; &nbsp; PL\/SQL procedure successfully completed.<\/em><br \/>\n&nbsp;<\/p>\n<p><em>&nbsp; &nbsp; SQL&gt; select count(*) from dba_sql_plan_baselines;<\/em><\/p>\n<p>&nbsp; &nbsp; COUNT(*)<br \/>\n&nbsp; &nbsp; &#8212;&#8212;&#8211;<br \/>\n&nbsp; &nbsp; &nbsp; 3<\/p>\n<p><strong>Step 7: Verify the baseline<\/strong><\/p>\n<p>Run the following commands on the target instance to verify that the baseline<br \/>\nis accepted and fixed.<\/p>\n<p><em>&nbsp; &nbsp; SQL&gt; SELECT sql_handle, plan_name, enabled, accepted, fixed, origin FROM dba_sql_plan_baselines;<\/em><\/p>\n<p>&nbsp; &nbsp; SQL_HANDLE &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;PLAN_NAME &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ENA ACC FIX ORIGIN<br \/>\n&nbsp; &nbsp; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212; &#8212; &#8212; &#8212;&#8212;&#8212;&#8212;<br \/>\n&nbsp; &nbsp; SQL_d344aac395f978a4 &nbsp;SQL_PLAN_d6j5asfazky54868c96c3 YES YES NO &nbsp;MANUAL-LOAD<\/p>\n<p>&nbsp; &nbsp; SQL&gt;<br \/>\n&nbsp;<\/p>\n<p>The preceding output shows that the baseline was imported on target instance&nbsp;but that it is not fixed. Run the following query to fix the baseline and enable&nbsp;the optimizer to pick only this plan.<\/p>\n<p>&nbsp; &nbsp;<em> SQL&gt; DECLARE<br \/>\n&nbsp; &nbsp; 2 &nbsp; &nbsp;l_plans_altered &nbsp;PLS_INTEGER;<br \/>\n&nbsp; &nbsp; 3 &nbsp;BEGIN<br \/>\n&nbsp; &nbsp; 4 &nbsp; &nbsp;l_plans_altered := DBMS_SPM.alter_sql_plan_baseline(<br \/>\n&nbsp; &nbsp; 5 &nbsp; &nbsp; &nbsp;sql_handle &nbsp; &nbsp; &nbsp;=&gt; &#8216;SQL_d344aac395f978a4&#8217;,<br \/>\n&nbsp; &nbsp; 6 &nbsp; &nbsp; &nbsp;PLAN_NAME &nbsp; &nbsp; &nbsp; =&gt; &#8216;SQL_PLAN_d6j5asfazky54868c96c3&#8217;,<br \/>\n&nbsp; &nbsp; 7 &nbsp; &nbsp; &nbsp;ATTRIBUTE_NAME &nbsp;=&gt; &#8216;fixed&#8217;,<br \/>\n&nbsp; &nbsp; 8 &nbsp; &nbsp; &nbsp;attribute_value =&gt; &#8216;YES&#8217;);<\/em><br \/>\n&nbsp; &nbsp; 9&nbsp; &nbsp; DBMS_OUTPUT.put_line(&#8216;Plans Altered: &#8216; || l_plans_altered);<br \/>\n&nbsp; &nbsp; 10&nbsp; END;<br \/>\n&nbsp; &nbsp; 11&nbsp; \/<\/p>\n<p>&nbsp; &nbsp; PL\/SQL procedure successfully completed.<\/p>\n<p>&nbsp; &nbsp; SQL&gt; SELECT sql_handle, plan_name, enabled, accepted, fixed, origin FROM &nbsp; dba_sql_plan_baselines;<\/p>\n<p>&nbsp; &nbsp; SQL_HANDLE &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;PLAN_NAME &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ENA ACC FIX ORIGIN<br \/>\n&nbsp; &nbsp; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212; &#8212; &#8212; &#8212; &#8212;&#8212;&#8212;&#8212;<br \/>\n&nbsp; &nbsp; SQL_d344aac395f978a4 &nbsp;SQL_PLAN_d6j5asfazky54868c96c3 YES YES YES MANUAL-LOAD<\/p>\n<p>&nbsp; &nbsp; SQL&gt;<\/p>\n<p><strong>Step 8: Test the SQL query on the target instance<\/strong><\/p>\n<p>Execute the following command on the target instance to verify that it picks up<br \/>\nthe new baseline:<\/p>\n<p>&nbsp; &nbsp; SQL&gt; select SQL_PLAN_BASELINE from v$sql where sql_id=&#8217;9xva48wpnsmp6&#8242;;<\/p>\n<p>&nbsp; &nbsp; SQL_PLAN_BASELINE<br \/>\n&nbsp; &nbsp; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br \/>\n&nbsp; &nbsp; SQL_PLAN_d6j5asfazky54868c96c3<\/p>\n<p><strong>How the SQL plan is selected<\/strong><br \/>\nThe following image shows how a SQL plan is selected when a baseline plan exists:<\/p>\n<p><img decoding=\"async\" src=\"\/wp-content\/uploads\/2026\/blog_article_images\/26560-body-Picture1_42.png\" alt=\"sql baseline pic 1\" \/><\/p>\n<p>&nbsp;<em>Image source<\/em>: Metalink Note Automatic SQL Plan Baselines (Doc ID 1930525.1)<\/p>\n<p><strong>Conclusion<\/strong><br \/>\nUse the steps in this post if you have to transfer the baseline for a single&nbsp;query. You can also generate SQL baselines for all the queries for upgrades,&nbsp;migrations, and so on. Use an SQL plan baseline to have consistent SQL execution&nbsp;plans and to avoid any performance issues.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Transfer SQL plans by using a SQL plan baseline<\/p>\n","protected":false},"author":2,"featured_media":7976,"menu_order":0,"comment_status":"open","ping_status":"open","template":"","format":"standard","meta":{"content-type":"","nid":"26560","content_type":"blog","created_by":"10130","authored_on":"2024-01-31T16:03:51+00:00","field_article_industries":"","tag_category":"Technical","field_blog_author_text":"by Manoj Chawla, Oracle Applications Database Administrator, Rackspace Technology","seo_description":"Understand the role of SQL plan baselines in transferring execution plans between instances, improving SQL query performance.\r\n","field_featured_image":"","insights_image":"\/wp-content\/uploads\/2026\/blog_technical_images\/26560-insights_image-productivity-technical-blog-1-insights.jpg","field_partners":"","rxt_platforms":"MySQL, NoSQL, Multicloud Security","product":"","publisheddate":"2019-03-11T15:03:51","rxt_solutions":"Databases, Data Modernization","opengraph_tag":"","x_tag":"","teaser_flag":"Technical Blog","seo_titile":"Mastering SQL Plan Baselines: Transferring SQL Plans | Rackspace Technology","field_topics":"","field_slug":"transfer-sql-plans-by-using-sql-plan-baseline","footnotes":""},"categories":[178],"tags":[204],"class_list":["post-7974","blogs","type-blogs","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-technical"],"_links":{"self":[{"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/blogs\/7974","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/blogs"}],"about":[{"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/types\/blogs"}],"author":[{"embeddable":true,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/comments?post=7974"}],"version-history":[{"count":3,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/blogs\/7974\/revisions"}],"predecessor-version":[{"id":9796,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/blogs\/7974\/revisions\/9796"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/media\/7976"}],"wp:attachment":[{"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/media?parent=7974"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/categories?post=7974"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rackspace.com\/en-gb\/wp-json\/wp\/v2\/tags?post=7974"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}