회사에서 MSSQL2000, 2012, 2016을 쓰고있는데 부하가 큰 DBMS가 2000이고 윈도우즈 서버 2003 을 사용중에 있습니다.(신형 하드웨어에 가상으로 exsi로 얹어놔있습니다.)
1. 호환성이나 명령어세트를 제외하면 퍼포먼스적으로 (동일 쿼리 속도차이나) 상위버전으로 이전했을때 차이가 있을지, 클지 궁금합니다.
명령어 세트때문에 이전을 해보려고하는데 2000 -> 2008 -> 2016으로 도약해야 하니 손이 많이가더라구요 ㅠㅠ
2. DBMS 사용 코어수가 현재 CPU가 24코어를 사용할수있는데 코어수가 4코어할당까지는 괜찮은데 4코어를 넘게 할당하면 많이 느려집니다 ㅠㅠ
이것은 왜 그럴까요 ㅠㅠ
Total 24 Core중 : MSSQL 4Core
쿼리 병렬 실행의 경우 최소 쿼리 계획 임계값(Cost) : 5
ÇöÀç MS-SQL 2014¸¦ °ü¸®ÇÏ°í ÀÖ´Â ÀÔÀå¿¡¼
MS-SQLÀº Index È°¿ë ´É·ÂÀÌ Á» ¶³¾îÁö´Â °Í °°½À´Ï´Ù.
ºÎÇÏ °É¸®´Â Äõ¸® È®ÀÎÇØ Äõ¸® Æ©´×(ÀûÁ¤ INDEX ÈùÆ® »ç¿ë)¸¸ ÇØ Á൵
ºÎÇÏ°¡ ¸¹ÀÌ ÁÙ¾î µé °ÍÀ¸·Î º¸ÀÔ´Ï´Ù.
±×¸®°í MS-SQLÀº select ½Ã¿¡µµ LOCKÀ» È°¿ëÇϱ⠶§¹®¿¡
OLTP¼º ÇÁ·Î±×·¥ÀÌ°í ¸ñ·Ï select ½Ã¿¡´Â WITH(NOLOCK) È°¿ëÇÏ½Ã¸é ¼º´ÉÇâ»ó¿¡ ÀÌÁ¡ÀÌ ÀÖ½À´Ï´Ù.
ÃÖ¼Ò MSSQL2000À¸·Î µÈºÎºÐÀº ȣȯ¼ººÎºÐÀ» ¼öÁ¤±Ç°í µå¸®¸ç
MSSQL2016¿¡¼´Â ±âÁ¸ DB¸¦ ºÙÀ̴°ͺ¸´Ù 2016¿¡¼ »õ·Î »ý¼ºÇϴ°ÍÀÌ
¼º´ÉÀÌ 10%ÀÌ»ó ³ô´Ù°í Çϳ׿ä
»ç¿ë¹æ¹ý¿¡ µû¶ó ´Ù¸£°Ú½À´Ï´Ù¸¸, °°Àº Å×ÀÌºí ±¸Á¶¸¦ ±×·¡µµ ÀÌÀüÇßÀ»¶§µµ ÆÛÆ÷¸Õ½º Â÷ÀÌ°¡ È®½ÇÈ÷ ³³´Ï´Ù.
DB¸¦ ¿Å±æ¶§¿¡´Â Noman´Ô ¸»¾¸´ë·Î »õ·Î DB»ý¼ºÇؼ µ¥ÀÌÅ͸¸ ºÎ¾î³Ö´Â°Ô ¼º´ÉÀÌ ´õ ÁÁ½À´Ï´Ù.
¿¹¸¦ µé¾î º¹»çº»À¸·Î º¹¿øÇßÀ»°æ¿ì´Â »õ·Î¿î ȯ°æ¿¡¼´Â Ŭ·¯½ºÅÍ À妽º°°Àº°æ¿ì´Â ºí·°´ÜÀ§·Î °Ë»öÇϱ⿡ ÀçÀÛ¼º/À籸¼º ÀÛ¾÷ÀÌ ÇÊ¿äÇÒ¼öµµ ÀÖ½À´Ï´Ù. Áï ÀÌ·±ÀÛ¾÷À» °Ç³Ê¶Ù¾ú±â ¶§¹®¿¡ ½Å±Ô ±øÅëDB°¡ ´õ ºü¸£´Ù°í Âø°¢Çϴ°̴ϴÙ. µ¥ÀÌÅÍ º¹¿øÇÏ°í Åë°è¾÷µ¥ÀÌÆ® µû·Î ÇÏ´Â ÀÛ¾÷ÇÏ´Â °æ¿ìµµ °ÅÀÌ µå¹´´Ï´Ù.
½Ã°£ÀÌ ³²¾Æµ¹¸é ÀÛ¾÷À» ÈÄÀÚ·Î ¼±ÅÃÇÏ´Â°Ô ÁÁ°ÚÁö¸¸ ½Ã°£ÀÌ ¾øÀ¸¸é ¹é¾÷º¹¿øÀÌ Á¦ÀÏ ºü¸¨´Ï´Ù. ±×¸®°í ´ë¿ë·®ÀÏ °æ¿ì ¹úÅ©·Î ³ÖÁö ¾ÊÀ¸¸é ³¯»ú´Ï´Ù.
±×¸®°í NOLOCK ÈùÆ®´Â ´ëºÎºÐ »ç¿ëÇؾߵǴ ÇʼöÀ̱⵵ ÇÏÁö¸¸ µ¥ÀÌÅÍ Á¤ÇÕ¼ºÀÌ ÇÊ¿äÇÒ¶§´Â ¾²¸é ¾ÈµÇ´Â ÈùÆ®ÀÔ´Ï´Ù. Ä¿¹ÔµÇÁö ¾ÊÀº µ¥ÀÌÅ͸¦ ºÒ·¯¿Í¼ µ¥ÀÌÅÍ ²¿¿©¹ö¸®°Å³ª µ¥µå¶ôÀÌ ¹ß»ýÇϰųª ³°¨ÇÑ °æ¿ì°¡ ¸¹±â¿¡ ´Ù¸¥ ÈùÆ®¸¦ ¾²°Å³ª ¾Æ´Ï¸é ºí·° ´ë±â°¡ °É¸®´õ¶óµµ ÈùÆ® ¾È¾²´Â °æ¿ìµµ Á¾Á¾ ÀÖ½À´Ï´Ù.
¾ÕµÚ ³»¿ë ´Ù »©¸Ô°íµµ 10%ÀÌ»ó »¡¶óÁø´Ù´Â °ÍÀÌ ¸¶ÀÌÅ©·Î ¼ÒÇÁÆ®»çÀÇ ÁÖÀåÀÌ°í
Àú´Â Á¤È®ÇÑ ¼öÄ¡·Î À̾߱â´Â ¸øÇÏÁö¸¸ ü°¨Àº Çß½À´Ï´Ù.
´Ù¸¥ ÀÌÀ¯°¡ ÀÖ´Ù¸é ¼úÀÌ´ÔÀÌ ¸¶ÀÌÅ©·Î¼ÒÇÁÆ® »ç¿¡°Ô ¾Ë·ÁÁÖ½Ã´Â°Ô ÁÁÀ»°Í °°½À´Ï´Ù.