show parameter OPTIMIZER_DYNAMIC_SAMPLING
alter session set OPTIMIZER_DYNAMIC_SAMPLING = 4;
14.13.16.2 非永続的オプティマイザ統計のパラメータの構成
https://dev.mysql.com/doc/refman/5.6/ja/innodb-statistics-estimation.html
show variables like 'innodb_stats%';
set GLOBAL innodb_stats_persistent = off;
※永続的オプティマイザ統計の場合も統計情報がない場合は実行時に動的統計を取得している模様
統計情報がない場合、おおよその件数程度は動的に取得している模様。
https://docs.microsoft.com/ja-jp/sql/t-sql/statements/alter-database-transact-sql-set-options?view=sql-server-ver15#auto_update_statistics_async
USE [master]
GO
ALTER DATABASE [test] SET AUTO_UPDATE_STATISTICS_ASYNC OFF WITH NO_WAIT
GO
統計情報がある場合も、クエリがコンパイルされる場合は、動的サンプリングを実施している模様。
AUTO_UPDATE_STATISTICS_ASYNC が ON の場合、非同期
AUTO_UPDATE_STATISTICS_ASYNC が OFF の場合、クエリコンパイル前
※AUTO_UPDATE_STATISTICS_ASYNCをONに設定する場合、AUTO_UPDATE_STATISTICS もONに設定する必要がある
デフォルトは以下のとおり
AUTO_UPDATE_STATISTICS -> ON
AUTO_UPDATE_STATISTICS_ASYNC -> OFF
OPTION (RECOMPILE)で強制コンパイル可能