<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Query Planner &#8211; Database Research &amp; Development</title>
	<atom:link href="https://www.dbrnd.com/tag/query-planner/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.dbrnd.com</link>
	<description>BIGData &#124; NoSQL &#124; MSSQL &#124; MySQL &#124; PostgreSQL</description>
	<lastBuildDate>Sun, 08 Jan 2017 15:29:33 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.6</generator>
	<item>
		<title>MySQL: How Query Optimizer Read and Update the Index Statistics</title>
		<link>https://www.dbrnd.com/2017/01/mysql-how-query-optimizer-read-and-update-the-index-statistics-using-innodb_stats_on_metadata-information_schema-statistics/</link>
					<comments>https://www.dbrnd.com/2017/01/mysql-how-query-optimizer-read-and-update-the-index-statistics-using-innodb_stats_on_metadata-information_schema-statistics/#comments</comments>
		
		<dc:creator><![CDATA[Anvesh Patel]]></dc:creator>
		<pubDate>Sun, 08 Jan 2017 15:29:33 +0000</pubDate>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Anvesh Patel]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[database research and development]]></category>
		<category><![CDATA[dbrnd]]></category>
		<category><![CDATA[Index Statistics]]></category>
		<category><![CDATA[INFORMATION_SCHEMA.STATISTICS]]></category>
		<category><![CDATA[innodb_stats_on_metadata]]></category>
		<category><![CDATA[MySQL Command]]></category>
		<category><![CDATA[MySQL Database Administrator]]></category>
		<category><![CDATA[MySQL Database Designing]]></category>
		<category><![CDATA[MySQL Database Programming]]></category>
		<category><![CDATA[MySQL Error]]></category>
		<category><![CDATA[MySQL Performance Tunning]]></category>
		<category><![CDATA[MySQL Query]]></category>
		<category><![CDATA[MySQL Tips and Tricks]]></category>
		<category><![CDATA[Query Execution Plan]]></category>
		<category><![CDATA[Query Optimizer]]></category>
		<category><![CDATA[Query Planner]]></category>
		<guid isPermaLink="false">https://www.dbrnd.com/?p=3733</guid>

					<description><![CDATA[For all the RDBMS, Database Statistics are playing the main role to generate an accurate Query Execution Plan. A Database Administrator is also very much responsible to make sure that Database Statistics is updated. MySQL query optimizer is also preparing Query Execution Plan with the help of Statistics Information. The auto-update Statistics configuration is also [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Fwww.dbrnd.com%2F2017%2F01%2Fmysql-how-query-optimizer-read-and-update-the-index-statistics-using-innodb_stats_on_metadata-information_schema-statistics%2F&amp;linkname=MySQL%3A%20How%20Query%20Optimizer%20Read%20and%20Update%20the%20Index%20Statistics" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=https%3A%2F%2Fwww.dbrnd.com%2F2017%2F01%2Fmysql-how-query-optimizer-read-and-update-the-index-statistics-using-innodb_stats_on_metadata-information_schema-statistics%2F&amp;linkname=MySQL%3A%20How%20Query%20Optimizer%20Read%20and%20Update%20the%20Index%20Statistics" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_linkedin" href="https://www.addtoany.com/add_to/linkedin?linkurl=https%3A%2F%2Fwww.dbrnd.com%2F2017%2F01%2Fmysql-how-query-optimizer-read-and-update-the-index-statistics-using-innodb_stats_on_metadata-information_schema-statistics%2F&amp;linkname=MySQL%3A%20How%20Query%20Optimizer%20Read%20and%20Update%20the%20Index%20Statistics" title="LinkedIn" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_pinterest" href="https://www.addtoany.com/add_to/pinterest?linkurl=https%3A%2F%2Fwww.dbrnd.com%2F2017%2F01%2Fmysql-how-query-optimizer-read-and-update-the-index-statistics-using-innodb_stats_on_metadata-information_schema-statistics%2F&amp;linkname=MySQL%3A%20How%20Query%20Optimizer%20Read%20and%20Update%20the%20Index%20Statistics" title="Pinterest" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_reddit" href="https://www.addtoany.com/add_to/reddit?linkurl=https%3A%2F%2Fwww.dbrnd.com%2F2017%2F01%2Fmysql-how-query-optimizer-read-and-update-the-index-statistics-using-innodb_stats_on_metadata-information_schema-statistics%2F&amp;linkname=MySQL%3A%20How%20Query%20Optimizer%20Read%20and%20Update%20the%20Index%20Statistics" title="Reddit" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_pocket" href="https://www.addtoany.com/add_to/pocket?linkurl=https%3A%2F%2Fwww.dbrnd.com%2F2017%2F01%2Fmysql-how-query-optimizer-read-and-update-the-index-statistics-using-innodb_stats_on_metadata-information_schema-statistics%2F&amp;linkname=MySQL%3A%20How%20Query%20Optimizer%20Read%20and%20Update%20the%20Index%20Statistics" title="Pocket" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fwww.dbrnd.com%2F2017%2F01%2Fmysql-how-query-optimizer-read-and-update-the-index-statistics-using-innodb_stats_on_metadata-information_schema-statistics%2F&#038;title=MySQL%3A%20How%20Query%20Optimizer%20Read%20and%20Update%20the%20Index%20Statistics" data-a2a-url="https://www.dbrnd.com/2017/01/mysql-how-query-optimizer-read-and-update-the-index-statistics-using-innodb_stats_on_metadata-information_schema-statistics/" data-a2a-title="MySQL: How Query Optimizer Read and Update the Index Statistics"></a></p><p>For all the RDBMS, Database Statistics are playing the main role to generate an accurate Query Execution Plan.<br />
A Database Administrator is also very much responsible to make sure that Database Statistics is updated.</p>
<blockquote><p>MySQL query optimizer is also preparing Query Execution Plan with the help of Statistics Information.<br />
The auto-update Statistics configuration is also very important to keep Statistics updated.</p></blockquote>
<p><strong>How to enable auto-update Statistics for InnoDB engine?</strong></p>
<blockquote><p>We can configure innodb_stats_on_metadata variable to enable auto-update Statistics.</p></blockquote>
<blockquote><p>When this variable is enabled InnoDB updates statistics when metadata statements such as SHOW TABLE STATUS or SHOW INDEX are run, or when accessing the INFORMATION_SCHEMA.TABLES or INFORMATION_SCHEMA.STATISTICS tables.
</p></blockquote>
<p><strong>Check innodb_stats_on_metadata is ON or OFF:</strong></p>
<pre class="crayon-plain-tag">SHOW VARIABLES LIKE 'innodb_stats_on_metadata';</pre> </p>
<p><strong>If innodb_stats_on_metadata is OFF, make it ON:</strong></p>
<pre class="crayon-plain-tag">SET GLOBAL innodb_stats_on_metadata=ON;</pre> </p>
<p>When you perform command like SHOW INDEX, Statisitcs will be update.<br />
Accuracy of statistics is depends on MySQL Server Load.</p>
<pre class="crayon-plain-tag">SHOW INDEXES FROM SchemaName.TableName;</pre> </p>
<p><strong>You can use below query to check the Index Statistics:</strong></p>
<pre class="crayon-plain-tag">SELECT 
    Table_Schema
    ,Table_Name
    ,Non_Unique
    ,Index_Schema
    ,Seq_In_Index
    ,Column_Name
    ,Collation
    ,Cardinality
    ,Index_Type
FROM information_schema.statistics 
WHERE TABLE_SCHEMA='SchemaName';</pre> </p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dbrnd.com/2017/01/mysql-how-query-optimizer-read-and-update-the-index-statistics-using-innodb_stats_on_metadata-information_schema-statistics/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>PostgreSQL: Force on Planner to use Sequential Scan or Index Scan</title>
		<link>https://www.dbrnd.com/2016/11/postgresql-force-on-planner-to-use-sequential-scan-or-index-scan-enable_seqscan-enable_indexscan/</link>
					<comments>https://www.dbrnd.com/2016/11/postgresql-force-on-planner-to-use-sequential-scan-or-index-scan-enable_seqscan-enable_indexscan/#comments</comments>
		
		<dc:creator><![CDATA[Anvesh Patel]]></dc:creator>
		<pubDate>Tue, 22 Nov 2016 19:00:50 +0000</pubDate>
				<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[Anvesh Patel]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[database research and development]]></category>
		<category><![CDATA[dbrnd]]></category>
		<category><![CDATA[enable_indexscan]]></category>
		<category><![CDATA[enable_seqscan]]></category>
		<category><![CDATA[Execution Plan]]></category>
		<category><![CDATA[Force index scan]]></category>
		<category><![CDATA[Index Hint]]></category>
		<category><![CDATA[Index Seek]]></category>
		<category><![CDATA[plpgsql]]></category>
		<category><![CDATA[Postgres Query]]></category>
		<category><![CDATA[postgresql]]></category>
		<category><![CDATA[PostgreSQL Administrator]]></category>
		<category><![CDATA[PostgreSQL Error]]></category>
		<category><![CDATA[PostgreSQL Programming]]></category>
		<category><![CDATA[PostgreSQL Tips and Tricks]]></category>
		<category><![CDATA[Query Planner]]></category>
		<guid isPermaLink="false">https://www.dbrnd.com/?p=3898</guid>

					<description><![CDATA[Every day If you are doing performance optimization related stuff, sometime you also confuse on the decision of the Query Planner because It might be choose a wrong plan. The SQL Server and MySQL provide features like: Index force or Index hint for SQL query, but PostgreSQL does not provide such feature because Once you [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Fwww.dbrnd.com%2F2016%2F11%2Fpostgresql-force-on-planner-to-use-sequential-scan-or-index-scan-enable_seqscan-enable_indexscan%2F&amp;linkname=PostgreSQL%3A%20Force%20on%20Planner%20to%20use%20Sequential%20Scan%20or%20Index%20Scan" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=https%3A%2F%2Fwww.dbrnd.com%2F2016%2F11%2Fpostgresql-force-on-planner-to-use-sequential-scan-or-index-scan-enable_seqscan-enable_indexscan%2F&amp;linkname=PostgreSQL%3A%20Force%20on%20Planner%20to%20use%20Sequential%20Scan%20or%20Index%20Scan" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_linkedin" href="https://www.addtoany.com/add_to/linkedin?linkurl=https%3A%2F%2Fwww.dbrnd.com%2F2016%2F11%2Fpostgresql-force-on-planner-to-use-sequential-scan-or-index-scan-enable_seqscan-enable_indexscan%2F&amp;linkname=PostgreSQL%3A%20Force%20on%20Planner%20to%20use%20Sequential%20Scan%20or%20Index%20Scan" title="LinkedIn" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_pinterest" href="https://www.addtoany.com/add_to/pinterest?linkurl=https%3A%2F%2Fwww.dbrnd.com%2F2016%2F11%2Fpostgresql-force-on-planner-to-use-sequential-scan-or-index-scan-enable_seqscan-enable_indexscan%2F&amp;linkname=PostgreSQL%3A%20Force%20on%20Planner%20to%20use%20Sequential%20Scan%20or%20Index%20Scan" title="Pinterest" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_reddit" href="https://www.addtoany.com/add_to/reddit?linkurl=https%3A%2F%2Fwww.dbrnd.com%2F2016%2F11%2Fpostgresql-force-on-planner-to-use-sequential-scan-or-index-scan-enable_seqscan-enable_indexscan%2F&amp;linkname=PostgreSQL%3A%20Force%20on%20Planner%20to%20use%20Sequential%20Scan%20or%20Index%20Scan" title="Reddit" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_pocket" href="https://www.addtoany.com/add_to/pocket?linkurl=https%3A%2F%2Fwww.dbrnd.com%2F2016%2F11%2Fpostgresql-force-on-planner-to-use-sequential-scan-or-index-scan-enable_seqscan-enable_indexscan%2F&amp;linkname=PostgreSQL%3A%20Force%20on%20Planner%20to%20use%20Sequential%20Scan%20or%20Index%20Scan" title="Pocket" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fwww.dbrnd.com%2F2016%2F11%2Fpostgresql-force-on-planner-to-use-sequential-scan-or-index-scan-enable_seqscan-enable_indexscan%2F&#038;title=PostgreSQL%3A%20Force%20on%20Planner%20to%20use%20Sequential%20Scan%20or%20Index%20Scan" data-a2a-url="https://www.dbrnd.com/2016/11/postgresql-force-on-planner-to-use-sequential-scan-or-index-scan-enable_seqscan-enable_indexscan/" data-a2a-title="PostgreSQL: Force on Planner to use Sequential Scan or Index Scan"></a></p><p>Every day If you are doing performance optimization related stuff, sometime you also confuse on the decision of the Query Planner because It might be choose a wrong plan. </p>
<blockquote><p>The SQL Server and MySQL provide features like: Index force or Index hint for SQL query, but PostgreSQL does not provide such feature because Once you set Index hint on the query, in future data is increasing and your Index hint might be not working accordingly. </p></blockquote>
<blockquote class="wp-embedded-content" data-secret="H7FLBLiKCa"><p><a href="https://www.dbrnd.com/2016/04/database-theory-table-scan-vs-index-scan-vs-index-seek/">Database Theory: Table Scan vs Index Scan vs Index Seek</a></p></blockquote>
<p><iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted"  src="https://www.dbrnd.com/2016/04/database-theory-table-scan-vs-index-scan-vs-index-seek/embed/#?secret=H7FLBLiKCa" data-secret="H7FLBLiKCa" width="600" height="338" title="&#8220;Database Theory: Table Scan vs Index Scan vs Index Seek&#8221; &#8212; Database Research &amp; Development" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe></p>
<blockquote><p>In the PostgreSQL, Query Planner takes the decision base on the updated statistics and choose the Table Scan or Index Scan. </p></blockquote>
<blockquote><p>For smaller table, sequential scan is always faster compare to Index scanning. But sometimes what I have found is: due to invalid parameter PostgreSQL skips the indexes and start the table scanning which leads to poor performance. </p>
<p>In this situation, we should disable the Sequential Scan option so that Query Planner force to use available Indexes and execute the Query. </p></blockquote>
<blockquote><p>In PostgreSQL, We cannot enable / disable Index Scan or Table Scan at individual query level. </p></blockquote>
<p><strong>PostgreSQL provides two main parameters for Index Scan or Table Scan:</strong><br />
By default, this both parameters are ON, but as per the your requirement you can change the value.<br />
You can find these parameters in postgresql.conf file. </p>
<blockquote><p>enable_seqscan<br />
enable_indexscan</p></blockquote>
<p><em><strong>You should never make the force on Query Planner because Forcing is a very bad idea. It might be useful to check if it will be faster, but production code should never use such tricks.</strong></em></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dbrnd.com/2016/11/postgresql-force-on-planner-to-use-sequential-scan-or-index-scan-enable_seqscan-enable_indexscan/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>MySQL: Controlling Query Optimizer to choose the Best Execution Plan</title>
		<link>https://www.dbrnd.com/2016/10/mysql-controlling-query-optimizer-to-choose-the-best-execution-plan-optimizer_prune_level-optimizer_search_depth/</link>
					<comments>https://www.dbrnd.com/2016/10/mysql-controlling-query-optimizer-to-choose-the-best-execution-plan-optimizer_prune_level-optimizer_search_depth/#comments</comments>
		
		<dc:creator><![CDATA[Anvesh Patel]]></dc:creator>
		<pubDate>Thu, 20 Oct 2016 16:16:18 +0000</pubDate>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Anvesh Patel]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[database research and development]]></category>
		<category><![CDATA[dbrnd]]></category>
		<category><![CDATA[Execution Plan]]></category>
		<category><![CDATA[MySQL Command]]></category>
		<category><![CDATA[MySQL Database Administrator]]></category>
		<category><![CDATA[MySQL Database Designing]]></category>
		<category><![CDATA[MySQL Database Programming]]></category>
		<category><![CDATA[MySQL Error]]></category>
		<category><![CDATA[MySQL Performance Tunning]]></category>
		<category><![CDATA[MySQL Query]]></category>
		<category><![CDATA[MySQL Tips and Tricks]]></category>
		<category><![CDATA[optimizer_prune_level]]></category>
		<category><![CDATA[optimizer_search_depth]]></category>
		<category><![CDATA[Query Optimizer]]></category>
		<category><![CDATA[Query Planner]]></category>
		<guid isPermaLink="false">https://www.dbrnd.com/?p=3785</guid>

					<description><![CDATA[In this post, I am sharing two important parameters which might be useful to improve query execution process in MySQL Server. The Query Optimizer is playing the main role in the Query Execution Process. It is responsible to choose best Query Execution Plan among the list of Plans. In MySQL, we can control the task [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><a class="a2a_button_facebook" href="https://www.addtoany.com/add_to/facebook?linkurl=https%3A%2F%2Fwww.dbrnd.com%2F2016%2F10%2Fmysql-controlling-query-optimizer-to-choose-the-best-execution-plan-optimizer_prune_level-optimizer_search_depth%2F&amp;linkname=MySQL%3A%20Controlling%20Query%20Optimizer%20to%20choose%20the%20Best%20Execution%20Plan" title="Facebook" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_twitter" href="https://www.addtoany.com/add_to/twitter?linkurl=https%3A%2F%2Fwww.dbrnd.com%2F2016%2F10%2Fmysql-controlling-query-optimizer-to-choose-the-best-execution-plan-optimizer_prune_level-optimizer_search_depth%2F&amp;linkname=MySQL%3A%20Controlling%20Query%20Optimizer%20to%20choose%20the%20Best%20Execution%20Plan" title="Twitter" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_linkedin" href="https://www.addtoany.com/add_to/linkedin?linkurl=https%3A%2F%2Fwww.dbrnd.com%2F2016%2F10%2Fmysql-controlling-query-optimizer-to-choose-the-best-execution-plan-optimizer_prune_level-optimizer_search_depth%2F&amp;linkname=MySQL%3A%20Controlling%20Query%20Optimizer%20to%20choose%20the%20Best%20Execution%20Plan" title="LinkedIn" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_pinterest" href="https://www.addtoany.com/add_to/pinterest?linkurl=https%3A%2F%2Fwww.dbrnd.com%2F2016%2F10%2Fmysql-controlling-query-optimizer-to-choose-the-best-execution-plan-optimizer_prune_level-optimizer_search_depth%2F&amp;linkname=MySQL%3A%20Controlling%20Query%20Optimizer%20to%20choose%20the%20Best%20Execution%20Plan" title="Pinterest" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_reddit" href="https://www.addtoany.com/add_to/reddit?linkurl=https%3A%2F%2Fwww.dbrnd.com%2F2016%2F10%2Fmysql-controlling-query-optimizer-to-choose-the-best-execution-plan-optimizer_prune_level-optimizer_search_depth%2F&amp;linkname=MySQL%3A%20Controlling%20Query%20Optimizer%20to%20choose%20the%20Best%20Execution%20Plan" title="Reddit" rel="nofollow noopener" target="_blank"></a><a class="a2a_button_pocket" href="https://www.addtoany.com/add_to/pocket?linkurl=https%3A%2F%2Fwww.dbrnd.com%2F2016%2F10%2Fmysql-controlling-query-optimizer-to-choose-the-best-execution-plan-optimizer_prune_level-optimizer_search_depth%2F&amp;linkname=MySQL%3A%20Controlling%20Query%20Optimizer%20to%20choose%20the%20Best%20Execution%20Plan" title="Pocket" rel="nofollow noopener" target="_blank"></a><a class="a2a_dd addtoany_share_save addtoany_share" href="https://www.addtoany.com/share#url=https%3A%2F%2Fwww.dbrnd.com%2F2016%2F10%2Fmysql-controlling-query-optimizer-to-choose-the-best-execution-plan-optimizer_prune_level-optimizer_search_depth%2F&#038;title=MySQL%3A%20Controlling%20Query%20Optimizer%20to%20choose%20the%20Best%20Execution%20Plan" data-a2a-url="https://www.dbrnd.com/2016/10/mysql-controlling-query-optimizer-to-choose-the-best-execution-plan-optimizer_prune_level-optimizer_search_depth/" data-a2a-title="MySQL: Controlling Query Optimizer to choose the Best Execution Plan"></a></p><p>In this post, I am sharing two important parameters which might be useful to improve query execution process in MySQL Server.</p>
<blockquote><p>The Query Optimizer is playing the main role in the Query Execution Process. It is responsible to choose best Query Execution Plan among the list of Plans.<br />
In MySQL, we can control the task of Query Optimizer by setting few parameters.
</p></blockquote>
<p><strong>Why because?</strong></p>
<blockquote><p>If you have one big SQL Query (included around 40 tables), Planner generates all possible plans mostly It generates 40+ query execution plan so now Query Optimizer will take more time to SELECT best plan. </p></blockquote>
<blockquote><p>We should tune this situation by knowing about optimizer_prune_level and optimizer_search_depth parameters. </p></blockquote>
<p><strong>optimizer_prune_level:</strong> Default is ON, It tells Query Optimizer to skip certain plans based on estimated number of rows. </p>
<blockquote><p>If we have total 40 tables, Planner generates all possible 40+ plans including individual table plan which might not be needed for Query Optimizer. </p></blockquote>
<blockquote><p>If you believe that the optimizer missed a better query plan, this option can be switched off (optimizer_prune_level=0) with the risk that query compilation may take much longer.<br />
This variable we can set both GLOBAL and Session level. </p>
<pre class="crayon-plain-tag">SHOW VARIABLES LIKE 'optimizer_prune_level';

SET GLOBAL optimizer_prune_level=0; -- For global change 
SET optimizer_prune_level=0; -- For session specific change</pre> </p></blockquote>
<p><strong>optimizer_search_depth:</strong> Default value is 62, the Planner is generating multiple plans, but sometimes It also generates an incomplete plan. </p>
<blockquote><p>When Query Optimizer starts to scan the plan, we can set optimizer_search_depth value to tell how far each incomplete plan the optimizer should look to evaluate.</p></blockquote>
<blockquote><p>If we set a higher value (Max 63), Query Optimizer try to evaluate all incomplete plans which will take more time to execute. If we set lower value, Query Optimizer can skip few incomplete generated plans.</p>
<p>This variable we can set both GLOBAL and Session level. </p>
<pre class="crayon-plain-tag">SHOW VARIABLES LIKE 'optimizer_search_depth';

SET GLOBAL optimizer_search_depth=40; -- For global change 
SET optimizer_search_depth=40; -- For session specific change</pre> </p></blockquote>
]]></content:encoded>
					
					<wfw:commentRss>https://www.dbrnd.com/2016/10/mysql-controlling-query-optimizer-to-choose-the-best-execution-plan-optimizer_prune_level-optimizer_search_depth/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
	</channel>
</rss>
