SQL Server Àüü ÅØ½ºÆ® Äõ¸® ¼º´É Çâ»ó

±â¼ú ÀÚ·á: 2549443 - ÀÌ ¹®¼­°¡ Àû¿ëµÇ´Â Á¦Ç° º¸±â.
¸ðµÎ È®´ë | ¸ðµÎ Ãà¼Ò

¿ä¾à

ÀÌ ¹®¼­´Â ¶ÇÇÑ µ¥ÀÌÅ͸¦ ÇÊÅ͸µ ÇÏ °í Àüü ÅØ½ºÆ® °Ë»ö Á¶°ÇÀÚ (¿¹: CONTAINS ¿Í CONTAINSTABLE)¸¦ »ç¿ë ÇÏ ¿© Microsoft SQL Server Äõ¸® ¼º´ÉÀ» Çâ»ó ½ÃŰ´Â ¹æ¹ýÀ» ¼³¸í ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î,ÀÌ ¸Þ¼­µå´Â ´ÙÀ½ Äõ¸® ¼º´ÉÀÌ Çâ»ó µË´Ï´Ù.
select * from dbo.ftTest where CONTAINS(TextData, '"keyword"') and CDate > @date
ÀÌ ÀÌ·¸°Ô Çϸé Äõ¸® µðÀÚÀÎ, Å×ÀÌºí ½ºÅ°¸¶ ¹× Àüü ÅØ½ºÆ® À妽º¸¦ Àüü ÅØ½ºÆ® °Ë»ö ¿£ÁøÀº °ü°èÇü ¿£Áø¿¡ º¸³»±â Àü¿¡ °á°ú¸¦ ÇÊÅ͸µ ÇÏ´Â ¹æ½ÄÀ¸·Î ¼ö ÀÖ½À´Ï´Ù. µû¶ó¼­ °ü°èÇü ¿£ÁøÀÌ Å« µ¥ÀÌÅÍ ÁýÇÕÀ» ÇÊÅ͸µ ÇÏ·Á¸é ¾ø½À´Ï´Ù.

Ãß°¡ Á¤º¸

¿µÇâ Äõ¸® ¼º´ÉÀ» Àüü ÅØ½ºÆ® °Ë»ö ¿£ÁøÀÇ ³ª¸ÓÁö Çϱâ Àü¿¡ ó¸® ÇØ¾ß ÇÏ´Â µ¥ÀÌÅÍ ¾çÀÔ´Ï´Ù ¿øÄ¢ ¿ä¼Ò´Â Àüü ÅØ½ºÆ® °Ë»ö Äõ¸®¸¦ ¸¸µé ¶§ µ¥ÀÌÅ͸¦ °ü°èÇü ¿£Áø¿¡ Àü¼Û µË´Ï´Ù. SQL Server ³ªÁß¿¡ ó¸® ÇØ¾ß ÇÏ´Â ÇàÀÇ ¼ö¸¦ ÁÙÀ̱â À§ÇØ Çà ¾Æ¿ô Ãʱâ ÇÊÅ͸µ Äõ¸® ¼º´ÉÀ» Çâ»ó ½Ãų ¼ö ÀÖ½À´Ï´Ù.

SQL Server 2008 ÀÌÀü¿¡ ¸±¸®½ºµÈ ¹öÀüÀÇ SQL Server Àüü ÅØ½ºÆ® °Ë»ö ¿£ÁøÀº °Ë»ö¾î¿Í ÀÏÄ¡ ÇÏ´Â ¸ðµç ÇàÀ» ¹Ýȯ ÇÏ °í °ü°èÇü ¿£Áø ÇÊÅÍ Àû¿ë. ÀÌ ¹®Á¦¸¦ SQL Server 2008, SQL Server 2008 R2 ¹× SQL Server 2012¿¡¼­ Çâ»ó µÇ¾ú½À´Ï´Ù. ±×·¯³ª µ¥ÀÌÅͺ£À̽º À妽º¿¡¼­ Àüü ÅØ½ºÆ® °Ë»ö À妽º°¡ ¸Å¿ì ´Ù¸£°Ô ±¸¼º µÇ¹Ç·Î ÀÌ·¯ÇÑ Çâ»ó µÈÀÌ ±â´ÉÀ» »ç¿ë ÇÏ´Â °ÍÀÌ ¾î·Æ½À´Ï´Ù. ¶ÇÇÑ Àüü ÅØ½ºÆ® °Ë»ö ¿£Áø°ú °ü°èÇü ¿£ÁøÀÌ ¸Å¿ì ´Ù¸£°Ô ÀÛµ¿ ÇÕ´Ï´Ù. µû¶ó¼­ÀÌ ¹®¼­¿¡¼­ ¼³¸í ÇÏ´Â ¸Þ¼­µå ¼Ó¼º ÇÔ¼ö (TVF) Ãʱâ ÇàÀ» ÇÊÅ͸µ ÇÏ °í ³ªÁß¿¡ ó¸® ÇØ¾ß ÇÏ´Â ÇàÀÇ ¼ö¸¦ ÁÙÀ̱â À§ÇØ »ç¿ë ÇÕ´Ï´Ù.

¿¹¸¦ µé¾î, ´ÙÀ½ Äõ¸® °èȹ CONTAINS °Ë»ö ¹®ÀÚ¿­°ú ÀÏÄ¡ ÇÏ´Â 131051 ÇàÀ» ¹Ýȯ ÇÕ´Ï´Ù. ¶ÇÇÑ °èȹ¿¡ ´ë ÇÑ Á¶ÀÎ ¿¬»êÀÚ¸¦ À妽º °Ë»öÀ» »ç¿ë ÇÏ ¿© Ãß°¡ ÇÊÅ͸µÀ» ¼öÇà ÇÕ´Ï´Ù.
Rows StmtText 
-------------------- -----------------------------------------------------------------------------------------------------------
1167 select CDate, ID from dbo.fttest where contains (c2, '"create"') and CDate> '08/05/2019' 

1167 |--Merge Join(Left Semi Join, MERGE:([FTSdb].[dbo].[fttest].[ID])=(FulltextMatch.[docid]), RESIDUA
5858 |--Sort(ORDER BY:([FTSdb].[dbo].[fttest].[ID] ASC)) 
5858 | |--Clustered Index Seek(OBJECT:([FTSdb].[dbo].[fttest].[clidx1]), SEEK:([FTSdb].[
131051 |--Table-valued function 
±×·¯³ª Äõ¸® Á¶°ÇÀÚ·Î Àüü ÅØ½ºÆ® °íÀ¯ À妽º Ű ¿­À» Æ÷ÇÔ ÇÏ´Â °æ¿ì Àüü ÅØ½ºÆ® °Ë»ö ¿£Áø Á¶°ÇÀÚ´Â Àüü ÅØ½ºÆ® ¼öÁØ¿¡¼­ °á°ú ÇÊÅ͸µ ÇÒ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ »óȲ¿¡¼­ Ãß°¡ ÇÊÅ͸µÀ» Àû¿ë ÇØ¾ß Àü¿¡ TVF´Â ÈξÀ ÀûÀº ¾çÀÇ µ¥ÀÌÅ͸¦ ¹Ýȯ ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, ´ÙÀ½ Äõ¸®´Â c2 Á¶°Ç°ú ÀÏÄ¡ ÇØ¾ß ÇÏ´Â ´Ù¼¸ °³ÀÇ °ªÀ» ÁöÁ¤ ÇÏ °í TVF´Â ´Ù¼¸ °³ÀÇ °ªÀÌ ÀÏÄ¡ ÇÏ´Â °á°ú¸¸ ¹Ýȯ:
Rows StmtText 

-------- ---------------------------------------------------------------------------------------------------------------------------------
5 select CDate, ID from dbo.fttest where contains (c2, '"create"') and CDate > '08/05/2019' and ID in ( 654051, 644051, 649106, 465, 105)

5 |--Nested Loops(Left Semi Join, OUTER REFERENCES:([FTSdb].[dbo].[fttest].[ID])) 
5 |--Index Seek(OBJECT:([FTSdb].[dbo].[fttest].[idx1]), SEEK:([FTSdb].[dbo].[fttest].[ID]=(105) OR ...
5 |--Table-valued function
°íÀ¯ À妽º Ű¿¡ »ç¿ë µÇ´Â °ªÀ» ¾Æ·¡·Î ¹Ð±â¸¦ Àüü ÅØ½ºÆ® °Ë»ö ¿£ÁøÀÇ ±â´É¿¡´Â ´ÙÀ½ ¹æ¹ýÀÇ ±âº»ÀÔ´Ï´Ù.

Á¶°ÇÀÚ¿¡ ³¯Â¥/½Ã°£ µ¥ÀÌÅÍ Çü½Ä ¿­ Æ÷ÇÔ µÇ¾î ÀÖÀ¸¸éÀÌ Á¶°ÇÀÚ¿Í ÀÏÄ¡ ÇÏ´Â Çุ »ý¼º µÇ´Â °íÀ¯ À妽º Ű ¿­¿¡ ³¯Â¥ Á¤º¸°¡ Æ÷ÇÔ µË´Ï´Ù. ÀÌ·¸°Ô ÇÏ·Á¸é Ű ¿­ÀÇ ³¯Â¥ Á¤º¸¸¦ ³í¸®ÀûÀ¸·Î ÅëÇÕ ÇØ¾ß ÇÕ´Ï´Ù. ±×·¯³ª Ű ¿­ÀÇ µ¥ÀÌÅÍ Çü½Ä ¹× Äõ¸®¸¦ »ç¿ë ÇÏ´Â ÀÀ¿ë ÇÁ·Î±×·¥À» º¯°æ ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

¸Þ¼­µå¸¦ ±¸Çö ÇÏ´Â µ¥ÀÌÅÍ Çü½ÄÀÇ Àüü ÅØ½ºÆ® °íÀ¯ º¯°æ ۸¦ BIGINT IDÀÔ´Ï´Ù. Ű ID ĸóÀÇ Ã³À½ 4 ¹ÙÀÌÆ® ¿¬µµ, ¿ù ¹× ³¯Â¥¿¡¼­ ³¯Â¥ ¿­ ¹× ¸¶Áö¸· 4 ¹ÙÀÌÆ® °ªÀº ±×´ë·Î À¯Áö µË´Ï´Ù. ¿¹¸¦ µé¾î ¿¬µµ¿¡ ID¸¦ ÂüÁ¶ÇÒ ¼ö Àִ ŰÀÇ Ã¹ ¹øÂ° ¹ÙÀÌÆ®¿¡¼­ ´ÙÀ½ ¹ÙÀÌÆ®´Â ´ÞÀ¸·Î ÂüÁ¶ÇÒ ¼ö ¹× ³¯Â¥¿¡ ¸¶Áö¸· µÎ ¹ÙÀÌÆ®¸¦ ÂüÁ¶ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÀ¿ë ÇÁ·Î±×·¥ÀºÀÌ µ¥ÀÌÅÍ Çü½Ä º¯°æÀ» ¼ö¿ë ÇØ¾ß ÇÕ´Ï´Ù.

¹üÀ§ Á¶°ÇÀÚ Á¶°ÇÀÚ¿¡ Ű ÇÏ °í ¹ø¿ª idÀÔ´Ï´Ù. ¿¹¸¦ µé¾î, "x<>< y"="" range="" predicate="" can="" be="" translated="" to="" the="" "(x*2^32="">< id="">< y*2^32)"="" predicate.="" because="" the="" translated="" predicate="" is="" a="" predicate="" on="" the="" full-text="" key,="" the="" predicate="" will="" be="" pushed="" down="" into="" the="" full-text="" streaming="" table-valued="" functions="" (stvf).="" this="" behavior="" effectively="" performs="" searches="" within="" the="" date="">

¼Ó¼º

±â¼ú ÀÚ·á: 2549443 - ¸¶Áö¸· °ËÅä: 2013³â 3¿ù 22ÀÏ ±Ý¿äÀÏ - ¼öÁ¤: 2.0
º» ¹®¼­ÀÇ Á¤º¸´Â ´ÙÀ½ÀÇ Á¦Ç°¿¡ Àû¿ëµË´Ï´Ù.
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Enterprise Evaluation
  • Microsoft SQL Server 2008 R2 Datacenter
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2012 Developer
  • Microsoft SQL Server 2012 Standard
  • Microsoft SQL Server 2012 Web
  • Microsoft SQL Server 2012 Enterprise
Ű¿öµå:?
kbmt KB2549443 KbMtko
±â°è ¹ø¿ªµÈ ¹®¼­
Áß¿ä: º» ¹®¼­´Â Àü¹® ¹ø¿ª°¡°¡ ¹ø¿ªÇÑ °ÍÀÌ ¾Æ´Ï¶ó Microsoft ±â°è ¹ø¿ª ¼ÒÇÁÆ®¿þ¾î·Î ¹ø¿ªÇÑ °ÍÀÔ´Ï´Ù. Microsoft´Â ¹ø¿ª°¡°¡ ¹ø¿ªÇÑ ¹®¼­ ¹× ±â°è ¹ø¿ªµÈ ¹®¼­¸¦ ¸ðµÎ Á¦°øÇϹǷΠMicrosoft ±â¼ú ÀÚ·á¿¡ ÀÖ´Â ¸ðµç ¹®¼­¸¦ Çѱ۷ΠÁ¢ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª ±â°è ¹ø¿ª ¹®¼­°¡ Ç×»ó ¿Ïº®ÇÑ °ÍÀº ¾Æ´Õ´Ï´Ù. µû¶ó¼­ ±â°è ¹ø¿ª ¹®¼­¿¡´Â ¸¶Ä¡ ¿Ü±¹ÀÎÀÌ Çѱ¹¾î·Î ¸»ÇÒ ¶§ ½Ç¼ö¸¦ ÇÏ´Â °Íó·³ ¾îÈÖ, ±¸¹® ¶Ç´Â ¹®¹ý¿¡ ¿À·ù°¡ ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù. Microsoft´Â ³»¿ë»óÀÇ ¿À¿ª ¶Ç´Â Microsoft °í°´ÀÌ ÀÌ·¯ÇÑ ¿À¿ªÀ» »ç¿ëÇÔÀ¸·Î½á ¹ß»ýÇÏ´Â ºÎ Á¤È®¼º, ¿À·ù ¶Ç´Â ¼ÕÇØ¿¡ ´ëÇØ Ã¥ÀÓÀ» ÁöÁö ¾Ê½À´Ï´Ù. Microsoft´Â ÀÌ·¯ÇÑ ¹®Á¦¸¦ ÇØ°áÇϱâ À§ÇØ ±â°è ¹ø¿ª ¼ÒÇÁÆ®¿þ¾î¸¦ ÀÚÁÖ ¾÷µ¥ÀÌÆ®Çϰí ÀÖ½À´Ï´Ù.
ÀÌ ¹®¼­ÀÇ ¿µ¹® ¹öÀü º¸±â:2549443

Çǵå¹é º¸³»±â