MS_SQLServerOptimizer - NetDevInfraWGinOSSConsortium/NetDevInfraWiki GitHub Wiki
- æ»ãïŒSQL ServerïŒïŒSQL Server ã®ã¯ãšãªïŒ
- SQL Server ã®ãªããã£ãã€ã¶
- SQL Server ã®ããªã¬ / SQL Server ã®ã³ãã¯ã·ã§ã³ãšã»ãã·ã§ã³
-
SQL ã®ããã©ãŒãã³ã¹ãåäžãããããã«ã¯ã
ã©ãããã°å¹çã®ããå®è¡èšç»ã«ãªãããæ¢ãå¿ èŠãããã -
DBMS ã¯ãªããã£ãã€ã¶ãšããã³ã³ããŒãã³ããæã£ãŠããã
ã¯ãšãªïŒããŒã¿ã«å¯ŸããåãåããïŒãå®è¡ããæãå¹ççãªæ¹æ³ã決å®ããã
ç§»è¡ã¡ã¢ïŒæ£èª€ïŒ: å ããŒãžã®ãDBMS ã¯ã³ã³ããŒãã³ããšããã³ã³ããŒãã³ããæã£ãŠãããã¯
ããªããã£ãã€ã¶ãšããã³ã³ããŒãã³ããæã£ãŠãããã®èª€èšãšæãããããä¿®æ£ããã
-
ãªããã£ãã€ã¶ã®çš®é¡ (CBOãRBO)
ã- ãªã©ã¯ã«ã»Oracle ããã¹ã¿ãŒããããã®åºæ¬ãšä»çµã¿
http://www.shift-the-oracle.com/inside/optimizer.html -
ãªããã£ãã€ã¶ã«ã¯ã
- ãã«ãŒã« ããŒã¹ãã®ããªããã£ãã€ã¶ãïŒRBOïŒ
- ãã³ã¹ã ããŒã¹ãã®ããªããã£ãã€ã¶ãïŒCBOïŒ
ãšãã 2 çš®é¡ãããã
-
SQL Server ã¯ãã³ã¹ã ããŒã¹ã®ãªããã£ãã€ã¶ïŒCBOïŒãæ¡çšããŠããã
- ãã«ãŒã« ããŒã¹ãã®ããªããã£ãã€ã¶ãã¯ããRBOïŒRule-Base-OptimizerããšåŒã°ããã
- SQL æãåè§£ããŠããã®åè§£ãããæ å ±ããæå®ã®ã«ãŒã«ã«ãã£ãŠæé©åããã
- ãã³ã¹ã ããŒã¹ãã®ããªããã£ãã€ã¶ãã¯ããCBOïŒCost-Base-OptimizerããšåŒã°ããã
- ããŒã¿ïŒã€ã³ããã¯ã¹ïŒå
ã®ããŒå€ã®ãéžæåºŠããšãååžããèšè¿°ãããååžçµ±èšãããã
å®è¡ã³ã¹ãïŒI/O ãš CPU ã³ã¹ãïŒãèŠç©ããããšã«ãã£ãŠã
ã¯ãšãªã®ãå®è¡ãã©ã³ããè©äŸ¡ããã
ããã«ããé©åãªéã®ãªãœãŒã¹ãæ¶è²»ãããã€ã
æãéãçµæãè¿ããå®è¡ãã©ã³ããéžæããã
è£è¶³ïŒãã³ã¹ããã¯æéã§ã¯ãªãïŒ: å®è¡ãã©ã³ã«è¡šç€ºãããã³ã¹ãã¯
1990 幎代ã®ãããã·ã³ã§ã®å®è¡æéãåºæºã«ããç¡æ¬¡å ã®æšå®å€ã§ããã
ç§ã§ãããªç§ã§ããªãã
cost threshold for parallelismã®æ¢å®å€ 5 ãçŸåšã§ã¯å°ããããã®ã
ãã®åºæºãå€ããŸãŸã ããã§ãã
ïŒSQL Server ã®ãã¡ã€ã«ã»ã°ã«ãŒãåç §ïŒã
-
ãªããã£ãã€ã¶ã®çš®é¡ãšããŠã¯ãã³ã¹ãããŒã¹ã®ãªããã£ãã€ã¶ïŒCBOïŒãäž»æµãšãªã£ãŠããã
-
ãã®çç±ã¯ãCBO ã¯ãããŒã¿ãå€åããç°å¢ã«ãããŠã宿çã«çµ±èšæ å ±ã®åéãããããã
ããŒã¿ã«ãã£ããããå®è¡èšç»ãã¢ã¯ã»ã¹ãã¹ã«ãªãããã«èªåçã«èª¿æŽãããããã§ããã -
Oracle 10g ããã¯ã«ãŒã«ããŒã¹ã®ãªããã£ãã€ã¶ïŒRBOïŒã¯ãµããŒããããªããªã£ãŠããã
ãã ãããã®ããµããŒããããªããã®æå³ã¯ãRBO ã®çæããå®è¡èšç»ã«åœ±é¿ãäžãã
ã¯ãšãªãã³ããå°æ¥ããµããŒããããªããªãå¯èœæ§ã瀺åããŠããã ãã§
**ãå®éã¯ãŸã 䜿çšå¯èœã**ã§ããã
Windows Server ãèªåãã©ã¡ãŒã¿ã§ããããã«ãSQL Server ã CBO ã«åºã¥ãããã¥ãŒãã³ã°ãè¡ãã
ïŒSybase SQL Server 㯠CBO ããµããŒãããåããŠåçšã§æåãã RDBMS ã§ãããã
以äžã®æé ã«ããæ§ã«ãCBOïŒçµ±èšæ
å ±âå®è¡ãã©ã³ïŒã®åé¡ã確èªãã
å¿
èŠã«å¿ã㊠RBOïŒãã©ã³ ã¬ã€ããã¯ãšãª ãã³ãïŒãé©çšããã
ã¯ãšãª ããã©ãŒãã³ã¹
https://learn.microsoft.com/ja-jp/sql/relational-databases/performance/performance-center-for-sql-server-database-engine
-
ã¯ãšãªã®ãã¥ãŒãã³ã°
https://learn.microsoft.com/ja-jp/sql/relational-databases/performance/monitor-and-tune-for-performance\ ãSQL Server ããŒã¿ããŒã¹ ãšã³ãžã³ã®ãã©ã³è¡šç€ºæ©èœã䜿çšããŠã
ãã¯ãšãª ãã©ã³ã衚瀺ããåæããæ¹æ³ã«ã€ããŠèª¬æããŸãã -
ãã©ã³ ã¬ã€ãã䜿çšããé 眮æžã¿ã¢ããªã±ãŒã·ã§ã³ã®ã¯ãšãªã®æé©å
https://learn.microsoft.com/ja-jp/sql/relational-databases/performance/plan-guides\ ãã¯ãšãªã®ããã¹ãã倿Žã§ããªãå Žåã«ããã©ã³ ã¬ã€ãã䜿çšããŠã
ãã¯ãšãª ããã©ãŒãã³ã¹ãæé©åããæ¹æ³ã«ã€ããŠèª¬æããŸãã -
ãã©ã³åŒ·å¶ã®äœ¿çšã«ããã¯ãšãª ãã©ã³ã®æå®
https://learn.microsoft.com/ja-jp/sql/t-sql/queries/hints-transact-sql-query\ ãUSE PLANã¯ãšãª ãã³ãã䜿çšããŠãã¯ãšãª ãªããã£ãã€ã¶ãããã¯ãšãªã«å¯ŸããŠ
ãç¹å®ã®ã¯ãšãª ãã©ã³ã䜿çšããããã«èšå®ããæ¹æ³ã«ã€ããŠèª¬æããŸãã
- CBO ã§ã¯ã€ã³ããã¯ã¹çµ±èšã䜿çšããã
- ãã®ãããã€ã³ããã¯ã¹çµ±èšã¯å¿ èŠã«å¿ããŠæŽæ°ããå¿ èŠãããã
- ããã«ãããã¯ãšãªã®å®è¡ãã©ã³ã驿£åãããã£ã¹ã¯ I/O ãæžããã
å®è¡ãã©ã³ã®ã°ã©ãã£ã«ã«è¡šç€ºãåç §ã
ããŒãã«ãŸãã¯ã€ã³ããã¯ã¹ä»ããã¥ãŒå ã®ãååžçµ±èšããæŽæ°ããã
- 1 ã€ã®ãéã€ã³ããã¯ã¹ååãããŸãã¯ãéã€ã³ããã¯ã¹ååãã®ã»ããã®
ãååžçµ±èšããæåã§äœæã§ããã - ãéã€ã³ããã¯ã¹ååãã®ãååžçµ±èšããäœæãããšã
ããŒãã«äžã§èš±å¯ããã 249 åã®ãéã¯ã©ã¹ã¿åã€ã³ããã¯ã¹ãã®äžéãæžå°ããã
äœã«äœ¿ãïŒ
è£è¶³ïŒ
CREATE STATISTICSã®çšéïŒ: ãäœã«äœ¿ãïŒããžã®åçãšããŠã¯ã
è€æ°åã«ãŸãããçžé¢ããªããã£ãã€ã¶ã«æããã®ãäž»çšéã§ãããèªåäœæãããçµ±èšã¯åäžåã«éãããããã
äŸãã°ãéœéåºç = æ±äº¬éœããã€ãåžåºçºæ = å代ç°åºãã®ãããª
匷ãçžé¢ããåã®çµã¿åããã§ã¯ã
åç¬ã®éžæçãæãåãããçµæãè¡æ°ãéå°è©äŸ¡ããŠããŸãã
ãã®å Žåã«è€æ°åã®çµ±èšãæç€ºçã«äœããšãèŠç©ãç²ŸåºŠãæ¹åãããCREATE STATISTICS ST_Address_Pref_City ON dbo.Address (Prefecture, City);ãªããäžéã«é¢ããèšè¿°ã¯ SQL Server 2005 åœæã®ãã®ã§ã
SQL Server 2008 以é㯠1 ããŒãã«ããã 999 åã®
éã¯ã©ã¹ã¿åã€ã³ããã¯ã¹ãäœæã§ããã
çµ±èšæ å ±ã®äžéã¯å¥æ ïŒ10,000 åïŒãªã®ã§ã
çŸåšã¯çµ±èšãäœã£ãŠã€ã³ããã¯ã¹æ°ãæžãããšãå¿é ããå¿ èŠã¯ãªãã
AUTO_CREATE_STATISTICS ããŒã¿ããŒã¹ ãªãã·ã§ã³ã ONïŒæ¢å®å€ïŒã«æå®ãããšã
- ã¯ãšãªã®æé©åã«å¿
èŠãªãååžçµ±èšããäžè¶³ããŠããå Žåã
èªåçã«ãååžçµ±èšããäœæãããã - ã¯ãšãªã®æé©åã«å¿
èŠãªãååžçµ±èšããçŸç¶ãåæ ããŠããªãå Žåã
èªåçã«ãååžçµ±èšããæŽæ°ãããã
ãã®ããŒã¿ããŒã¹ ãªãã·ã§ã³ã®èšå®ã«ã¯ã
-
ALTER DATABASEã¹ããŒãã¡ã³ã -
sp_dboptionã·ã¹ãã ã¹ãã¢ã ããã·ãŒãžã£ -
CREATE STATISTICSã¹ããŒãã¡ã³ã -
UPDATE STATISTICSã¹ããŒãã¡ã³ã
ã䜿çšããã
ãååžçµ±èšãã®æçµæŽæ°æ¥ã調ã¹ãã«ã¯ãSTATS_DATE 颿°ã䜿çšããã
ç§»è¡ã¡ã¢ïŒæ£èª€ïŒ: èªåäœæã¯
AUTO_CREATE_STATISTICSã
èªåæŽæ°ã¯AUTO_UPDATE_STATISTICSãšããå¥ã®ãªãã·ã§ã³ã§ãã
ïŒã©ã¡ããæ¢å® ONïŒãäžèšã® 2 çªç®ã®é ç®ã¯åŸè ã®èª¬æã
ãŸããsp_dboption㯠SQL Server 2005 ã§éæšå¥šãšãªã
2012 ã§åé€ãããŠãããããçŸåšã¯ALTER DATABASE ... SETã䜿çšããã
è£è¶³ïŒçµ±èšã®ç¶æ ã調ã¹ãïŒ: æŽæ°æ¥ã ãã§ãªãã
ååæŽæ°ä»¥éã®å€æŽè¡æ°ãŸã§èŠããã DMF ããããSELECT OBJECT_SCHEMA_NAME(s.object_id) AS schema_name, OBJECT_NAME(s.object_id) AS table_name, s.name AS stats_name, sp.last_updated, sp.rows, sp.rows_sampled, sp.modification_counter FROM sys.stats AS s CROSS APPLY sys.dm_db_stats_properties(s.object_id, s.stats_id) AS sp WHERE OBJECTPROPERTY(s.object_id, 'IsUserTable') = 1 AND sp.modification_counter > 0 ORDER BY sp.modification_counter DESC;
rowsã«å¯ŸããŠrows_sampledãæ¥µç«¯ã«å°ããå Žåã¯ã
ãµã³ããªã³ã°çãäœãèŠç©ããèããªã£ãŠããå¯èœæ§ããã
ïŒWITH FULLSCANãPERSIST_SAMPLE_PERCENTãæ€èšïŒã
çµ±èšæ
å ±ã®èªåæŽæ°ã ON ã«èšå®ãããŠããå Žåã«ã¯ã
çµ±èšæ
å ±ãæåã§æŽæ°ããå¿
èŠã¯å
šããªããïŒ
UPDATE STATISTICS ã sp_updatestats ãå®è¡ããŠ
æç€ºçã«çµ±èšæ
å ±ãæŽæ°ããå¿
èŠãããå Žåã¯ããã
ããããããŒãã«ã® 20% ã«çžåœããããŒã¿ãæŽæ°ããããšã
ãã®ããŒã¿ã®çµ±èšã¯èªåæŽæ°ã®å¯Ÿè±¡ã«ãªãã
è£è¶³ïŒææ°åïŒãããå€ã®å€æŽïŒ: ãã®ã20%ãã¯
ã500 è¡ + ããŒãã«è¡æ°ã® 20%ããšããå€ããããå€ã
倧ããªããŒãã«ã»ã©æŽæ°ããã«ãããªããšãã匱ç¹ããã£ã
ïŒ1 åè¡ãªã 2,000 äžè¡ã®å€æŽãå¿ èŠïŒãSQL Server 2016 以éïŒäºææ§ã¬ãã« 130 以äžïŒã§ã¯ã
è¡æ°ã®å¹³æ¹æ ¹ã«æ¯äŸããåçãªãããå€ãæ¢å®ã«ãªãã
å€§èŠæš¡ããŒãã«ã§ãçµ±èšãæŽæ°ããããããªã£ãŠãã
ïŒæ§æ¥ã¯ãã¬ãŒã¹ ãã©ã° 2371 ã§æå¹åããŠããæåïŒããªããçµ±èšã®èªåæŽæ°ã¯ã¯ãšãªã®ã³ã³ãã€ã«æã«åæçã«èµ°ãããã
倧ããªããŒãã«ã§ã¯æåã® 1 æ¬ãé·ãåŸ ããããã
ãããé¿ãããå Žåã¯
ALTER DATABASE ... SET AUTO_UPDATE_STATISTICS_ASYNC ON
ã§é忿޿°ã«ã§ããïŒååã¯å€ãçµ±èšã§ã³ã³ãã€ã«ãããïŒã
-
çµ±èšæ å ±ã®èªåæŽæ°ãå®è¡ãããããã®ãããå€ã«ã¯éããªããŸã§ãã
ããŒã¿ååžã«åœ±é¿ãäžããéã®ããŒã¿å€æŽãè¡ãããå Žåã -
å šäœã®ããŒã¿ååžã«ã¯å€§ããªåœ±é¿ã¯äžããŠããªããã
ããŒã¿åç §ãè¡ãåŠçãã远å 倿ŽãããããŒã¿ã®ã¿ãåç §ããå Žåã -
èšãæããã°ãããŒã¿å€æŽåŸã«ãçµ±èšæ å ±ã«å«ãŸããŠããªãããŒã¿ã察象ãšãã
åŠçãè¡ãããå Žåã
è£è¶³ïŒæé ããŒåé¡ïŒ: 2 çªç®ã»3 çªç®ã®ã±ãŒã¹ã¯ã
å®åã§ã¯ **ãæ¥æåã ID åãªã©å調å¢å ããããŒã®çŽè¿ããŒã¿ã**ãšããŠçŸããã
ãã¹ãã°ã©ã ã®æçµã¹ãããããåŸã®å€ã¯ãè©²åœ 0 è¡ããšèŠç©ãããã
ã仿¥ç»é²ãããããŒã¿ãæ€çŽ¢ãããããã ããæ¥µç«¯ã«é ãã
ãšããçç¶ã«ãªããSQL Server 2014 以éã®æ°ã«ãŒãã£ããªãã£æšå®æ©èœã§ã¯
ãã®ç¹ãæ¹åãããŠãããã
å€éãããã®åã«å¯Ÿè±¡ããŒãã«ã®çµ±èšãæç€ºæŽæ°ããéçšã¯
çŸåšã§ãæå¹ãªå¯Ÿçã§ããã
-
çµ±èšæ å ±ã®èªåæŽæ°ã ON ã®ç¶æ ã§ããªã³ã©ã€ã³äžã«çµ±èšæ å ±ã®æŽæ°ãçºçãããšã
æ§èœçã«åé¡ãåºãããšãããã -
ããããçµ±èšæ å ±ã®èªåæŽæ°ã OFF ã«ããå Žåã
çµå±ãçµ±èšæ å ±ãå®ããŒã¿ãšä¹é¢ããéã«åé¡ãçºçããã -
åŸã£ãŠãçµ±èšæ å ±æŽæ°ã® OFF éçšã¯ä»¥äžã®ããã«ãªããšèããã
-
ãµãŒãã»ã¡ã³ããã³ã¹æé垯ã«çµ±èšæ å ±ã®æŽæ°ã ON ã«ããŠçµ±èšæ å ±ãæŽæ°ããã
-
STATS_DATE颿°ã§ãçµ±èšã®æçµæŽæ°æ¥ã確èªã§ããã
-
-
ãµãŒãã»ã¡ã³ããã³ã¹æé垯ã«åé¡ïŒä¹é¢ïŒãçºèŠããŠæåæŽæ°ããïŒé£ããïŒã
- åèïŒãSQL Serverãçµ±èšæ
å ±ã®ãã¹ãã°ã©ã ãšå®è¡ãã©ã³ã®äºæž¬è¡æ° - å°ç©SEã®ã¡ã¢åž³
http://memorandom-nishi.hatenablog.jp/entry/2017/02/18/021834
- åèïŒãSQL Serverãçµ±èšæ
å ±ã®ãã¹ãã°ã©ã ãšå®è¡ãã©ã³ã®äºæž¬è¡æ° - å°ç©SEã®ã¡ã¢åž³
-
泚æïŒOFF ã ãšãæ°ããªã€ã³ããã¯ã¹è¿œå æãªã©ã«ãçµ±èšæ å ±ãäœæãããªããªãã
Missing Column Index ã€ãã³ãããã¬ãŒã¹ããŠçµ±èšæ å ±ã®ãªã Index ãéç¥ãåãåãããšãã§ããã
-
è£è¶³ïŒOFF ããéåæïŒ: ããªã³ã©ã€ã³äžã®åææŽæ°ãéãããšããçç±ãªãã
èªåæŽæ°ã OFF ã«ãããã
AUTO_UPDATE_STATISTICS_ASYNC ONã«ããã»ãã
å¯äœçšãå°ãããçŸåšã®ç¬¬äžéžæã§ããã
èªåæŽæ°ã OFF ã«ããæ§æã¯ã
çµ±èšãå®å šã«èªåã§ç®¡çããèŠæãããå Žåã«éãã
å®è¡èšç»ã®ç¢ºèªãçµ±èšæ å ±ã®ã¡ã³ããã³ã¹ã®æé ã¯ä»¥äžãåç §ã
é£èŒ RDBMS ã¢ãŒããã¯ãã£ã®æ·±å±€ïŒ5ïŒ
Oracle ãš SQL Serverããã¥ãŒãã³ã°ã®éããç¥ãïŒPage 2ïŒ
http://www.atmarkit.co.jp/fdb/rensai/rdbmsarc05/rdbmsarc05_2.html
- ãªããã£ãã€ã¶ãšçµ±èšæ
å ±
- SQL å®è¡èšç»ã®ç¢ºèªæé
- çµ±èšæ å ±ã®ã¡ã³ããã³ã¹
SQL Server ã«ã¯ä»¥äžã® RBO çãªæ©èœãæ®ãããŠããã
- ãã©ã³ ã¬ã€ã
- ã¯ãšãª ãã³ã
- ãã©ã³ ã¬ã€ãã䜿çšããé
眮æžã¿ã¢ããªã±ãŒã·ã§ã³ã®ã¯ãšãªã®æé©å
https://learn.microsoft.com/ja-jp/sql/relational-databases/performance/plan-guides-
ãã©ã³ ã¬ã€ã
å®éã®ã¯ãšãªã®ããã¹ããçŽæ¥å€æŽããããšãäžå¯èœãªå ŽåãæãŸãããªãå Žåã«ã
ãã©ã³ ã¬ã€ãã䜿çšããŠã¯ãšãªã®ããã©ãŒãã³ã¹ãæé©åããããšãã§ããŸãããã©ã³ ã¬ã€ãã¯ãã¯ãšãª ãã³ããŸãã¯åºå®ã¯ãšãª ãã©ã³ã
ã¯ãšãªã«ã¢ã¿ããããããšã«ãããã¯ãšãªã®æé©åãä¿ããŸãããã©ã³ ã¬ã€ãã¯ããµãŒã ããŒã㣠ãã³ããŒãæäŸãã
ããŒã¿ããŒã¹ ã¢ããªã±ãŒã·ã§ã³ã®ã¯ãšãªã®å°ããªãµãã»ããã§ã
æåŸ ã©ããã®ããã©ãŒãã³ã¹ãåŸãããªãå Žåã«åœ¹ã«ç«ã¡ãŸãã -
ãã©ã³ ã¬ã€ãã®ãã¶ã€ã³ãšå®è£
-
ãã©ã³ ã¬ã€ãã䜿çšããã¯ãšãªã®ãã©ã¡ãŒã¿ååäœã®æå®
-
ãã©ã¡ãŒã¿åã¯ãšãªã®ãã©ã³ ã¬ã€ãã®èšèš
-
SQL Server ããã©ã³ ã¬ã€ããã¯ãšãªã«ç §åããããã»ã¹
-
SQL Server Profiler ã䜿çšãããã©ã³ ã¬ã€ãã®äœæãšãã¹ã
-
-
ãã©ã³åŒ·å¶ã®äœ¿çšã«ããã¯ãšãª ãã©ã³ã®æå®
https://learn.microsoft.com/ja-jp/sql/t-sql/queries/hints-transact-sql-query-
ãã©ã³ã®é©çšã«ã€ããŠ
USE PLANã¯ãšãª ãã³ãã䜿çšãããšãã¯ãšãª ãªããã£ãã€ã¶ã
ã¯ãšãªã«å¯ŸããŠæå®ã®ã¯ãšãª ãã©ã³ã匷å¶çã«é©çšããããã«èšå®ã§ããŸããUSE PLANã¯ãšãª ãã³ãã¯ãåŒæ°ãšããŠ
XML 圢åŒã®ã¯ãšãª ãã©ã³ãåãåãããšã«ãã£ãŠæ©èœããŸããUSE PLANã¯ãå®è¡æéã®é·ããã©ã³ã䜿çšããã¯ãšãªã«ã
ããåªãããã©ã³ãååšããããšãããã£ãŠããå Žåã«äœ¿çšã§ããŸãã -
USE PLANã¯ãšãª ãã³ãã®äœ¿çš -
ã«ãŒãœã«ã䜿çšããã¯ãšãªã§ã®
USE PLANã¯ãšãª ãã³ãã®äœ¿çš -
ãã©ã³åŒ·å¶ã·ããªãªãšäŸ
-
è£è¶³ïŒææ°åïŒã¯ãšãª ã¹ãã¢ã«ãããã©ã³åŒ·å¶ïŒ: ãã©ã³ ã¬ã€ãã
USE PLAN㯠XML ãã©ã³ãæã§æã¡åãå¿ èŠãããæ±ããé£ããã£ãã
SQL Server 2016 以éã¯ã¯ãšãª ã¹ãã¢ãã
- éå»ã«äœ¿ãããå®è¡ãã©ã³ãèªåã§ä¿æã
- SSMS ã® GUI ãŸãã¯
sp_query_store_force_planã§ã¯ã³ã¹ãããã§åŒ·å¶ã§ã- ã匷å¶ãããã©ã³ããªãå¹ããªãã£ãããã®çç±ãŸã§èšé²ãã
ããããã©ã³ååž°ãžã®å¯ŸåŠã¯ã¯ãšãª ã¹ãã¢ã§è¡ãã®ãçŸåšã®æšæºã
SQL Server 2017 以éã®èªåãã©ã³ä¿®æ£ïŒAUTOMATIC_TUNINGïŒã
æå¹ã«ããã°ãååž°ãæ€åºããŠèªåã§ä»¥åã®ãã©ã³ã«æ»ãããšãã§ããããã ãããããã察ççæ³ã§ããç¹ã¯ RBO çæ©èœãšå€ãããªãã
æ¬æ¥ã¯çµ±èšæ å ±ã®é®®åºŠãã€ã³ããã¯ã¹èšèš
ïŒSQL Server ã®ã€ã³ããã¯ã¹ïŒã
ãã©ã¡ãŒã¿ ã¹ãããã£ã³ã°ã®åé¿ïŒOPTIMIZE FORãRECOMPILEïŒãšãã£ã
åå åŽãå ã«ç¢ºèªããããšã
- SQL Server ã¢ããã㯠ã¯ãšãªåé¡ã®ç£èŠ
- SQL Server 倧éããŒã¿åŠçæã®æ§èœåé¡
- å®è¡ãã©ã³ã®ã°ã©ãã£ã«ã«è¡šç€º
- ç¹é åºç€ããçè§£ããããŒã¿ããŒã¹ã®ããã¿ïŒITpro
http://itpro.nikkeibp.co.jp/article/COLUMN/20060127/228070/?ST=develop- Part1ïŒSQL æã¯ã©ã®ããã«å®è¡ãããã®ã
-
çµ±èšæ å ±ã®æŽæ°ç¶æ³ã®ç¢ºèª
https://blog.engineer-memo.com/2012/04/19/%E7%B5%B1%E8%A8%88%E6%83%85%E5%A0%B1%E3%81%AE%E6%9B%B4%E6%96%B0%E7%8A%B6%E6%B3%81%E3%81%AE%E7%A2%BA%E8%AA%8D/ -
çµ±èšæ å ±ã®èªåæŽæ°ã«é¢ããèå¯
https://blog.engineer-memo.com/2012/04/28/%E7%B5%B1%E8%A8%88%E6%83%85%E5%A0%B1%E3%81%AE%E8%87%AA%E5%8B%95%E6%9B%B4%E6%96%B0%E3%81%AB%E9%96%A2%E3%81%99%E3%82%8B%E8%80%83%E5%AF%9F/
-
çµ±èšæ å ±ã«ã€ããŠç°¡åã«èª¬æããŠã¿ã
http://ryuchan.hatenablog.com/entry/2015/04/11/192331 -
SQL Server ã®çµ±èšæ å ±äœæã«ã€ããŠæžããŠã¿ãã
ã¡ãã£ãšã ãããžã¡ã«ãŸãšããŠã¿ã
http://ryuchan.hatenablog.com/entry/2014/03/23/184242
-
ã©ãããïŒ SQL Server ã®ã¯ãšãª ããã©ãŒãã³ã¹ãäœäžããïŒ
https://learn.microsoft.com/ja-jp/archive/blogs/jpsql/ -
çµ±èšæ å ±ã®èªåæŽæ°ã ON ã®æã«ã¯çµ±èšæ å ±ãæåã§æŽæ°ããå¿ èŠã¯ãªãïŒ
https://learn.microsoft.com/ja-jp/archive/blogs/jpsql/
Tags: ç§»è¡, ããŒã¿ã¢ã¯ã»ã¹, SQL Server, é害察å¿, æ§èœ