|
|
|
|
¸®´õ^^´Ô²²¼ 211.189.136.10¿¡¼ ÀÛ¼ºÇϼ̽À´Ï´Ù.
2001-03-09 ¿ÀÀü 9:35:08¿¡ ÀÛ¼ºµÈ ±ÛÀÇ Á¶È¸¼ö´Â 310ȸÀÔ´Ï´Ù.
|
Á¦°¡ ¼³¸íÇϱ⵵ Á» ±×·¸°í Çؼ... |
Á¦°¡ ¼³¸íÇϱâ Èûµé¾î Å¿ä´Ô »çÀÌÆ®¿¡¼ ij»çÆ®´Ô±ÛÀ» ¹ßÃéÇØ¿É´Ï´Ù... Àúµµ ÀÌÂÊÀ» ¿¬±¸Çغôµ¥¿ä...
ij»çÆ®´Ô²²¼ Àß Á¤¸®ÇØÁֽŵí ÇÕ´Ï´Ù...
¿ä»õ mysql Àá½Ã Çغôµ¥, ms-sql¿¡µµ limit °¡ ÀÖÀ¸¸é ¾ó¸¶³ª ÁÁÀ»±î ÇÕ
´Ï´Ù.
mysql ¿¡´Â select ¹® µÚ¿¡ limit ºÙÀÌ¸é ±×ºÎºÐ¸¸ ³ª¿É´Ï´Ù.
select * from xxxx limit 200000,20 -> 20¸¸¹ø°¿¡¼ 20°³¸¸.
...
ms-sql¿¡¼ T-SQL·Î ¾î¶»°Ô Çغ¼±î Çߴµ¥¿ä,
57¸¸°³ ·¹Äڵ忡¼, static Ä¿¼·Î 50¸¸¹ø° ã¾Æ º¸´Ï ( fetch absolute
500000 ) PII500MHZ, DUAL CPU, 512M ·¥¿¡¼ 1ºÐÀÌ ³Ñ°Ô °É¸³´Ï´Ù.
keyset Ä¿¼´Â 20ÃÊ, keyset ÀÌ ´õ ³´³×¿ä. ( dynamic, forward_only Ä¿¼´Â
fetch absolute xxxx °¡ ¾ÈµÇ¼ »ç¿ë ¸øÇÏ´õ±º¿ä ) 20ÃÊ´Â ³Ê¹« ±é´Ï´Ù.
select top xxx ·Î ÆäÀÌ¡ ÇÏ´Â ¹æ¹ýÀº, ºü¸£±ä ÇÕ´Ï´Ù¸¸ °Ô½Ã¹°ÀÌ ¾öû³ª
°Ô ¸¹Àº °æ¿ì, ¸¶Áö¸· ÆäÀÌÁö °¡¹ö¸®°Å³ª ÇÏ¸é ´Ê¾îÁý´Ï´Ù. 50¸¸°³¿¡¼ ¸¶
Áö¸· ÆäÀÌÁö °¡¹ö¸®¸é.... Á» ¹ö¹÷µÇ°ÚÁÒ. ( 50¸¸°³¸é int Çü ÇÑÇʵ常 ³Ñ¾î
¿Íµµ 50¸¸*4byte=2Mega, Çѹø Äõ¸®¿¡ ÃÖ¼Ò 2¸Þ°¡ÀÇ µ¥ÀÌÅ͸¦ ¹Þ¾Æ¾ß ÇÑ´Ù
´Â °è»êÀÌ ³ª¿À³×¿ä ) ¸¶Áö¸· ÆäÀÌÁö´Â Àß °¡Áö ¾Ê´Â´Ù´Â »ç½Ç ¸¸ÀÌ À§¾È
ÀÔ´Ï´Ù.
¾î·°Ç, 50¸¸°³¿¡¼ ±¦ÂúÀ» ¹æ¹ýÀ» ÇÑ°¡Áö »ý°¢ÇØ ºÃ´Âµ¥, ¾ÆÁ÷ ±¸ÇöÀº ¸ø
ÇÏ°í ÀÖ½À´Ï´Ù. º¸½Ã°í ´ÙÀ½ ó·³ ÇÏ¸é µÉ·±Áö, ¾Æ´Ï¸é ´õ ÁÁÀº ÀÇ°ß ÀÖÀ¸
½Ã¸é thread ´Þ¾Æ ÁÖ¼¼¿ä.
-----------------------------
´äº¯ ºÒ°¡´ÉÇÑ ÀÏ¹Ý °Ô½ÃÆÇ °æ¿ì¸¦ »ý°¢ÇØ º¸ÁÒ. º¸Åë ÀÚµ¿Áõ°¡Çü
(identity, ȤÀº counter) Çʵ尡 Çϳª ÀÖ°í, ±×°ÍÀÌ ±ÛÀÇ ¼ø¼¸¦ ³ªÅ¸³»°Ô
µË´Ï´Ù. ±× Çʵå À̸§ÀÌ num À̶ó°í ÇÑ´Ù¸é, select top ... ¹æ½Ä¿¡¼,
±Û¸ñ·Ïº¸±â(list.asp) ¿¡¼±,
1. ¿ì¼±Àº ±ÛÀÇ ÃÑ °¹¼ö¸¦ ±¸ÇÒ °Ì´Ï´Ù.
select count(*) from xxx
2. ±×¸®°í ´ÙÀ½Ã³·³ Çؼ ¾ÕºÎºÐ¸¸ ²÷¾î¿É´Ï´Ù.
select top ÆäÀÌÁö¹øÈ£*ÆäÀÌÁö´ç±Û¼ö * from xxx order by num
±×·±µ¥ ¿©±â¼ 1 ¹ø, ±ÛÀÇ ÃÑ°¹¼ö¸¦ ±¸ÇÒ¶§ ´ÙÀ½ ó·³ ÇÏ¸é ¾î¶³±î ÇÕ´Ï
´Ù.
select (num/10000),count(*) from xxx
group by (num/10000)
order by (num/10000)
ÀÌ°ÍÀº 50¸¸°³¿¡¼ ÇßÀ»¶§ ¾à 5ÃÊ °É¸³´Ï´Ù. 20 ÃÊ º¸´Ù´Â ÈÎ ³´ÁÒ. ÀÌÁ¤µµ
´Â »ç¿ëÀÚµµ ±â´Ù·Á ÁÙ°Ì´Ï´Ù. ^^; ¾ÏÆ°,
ÀÌ·¯¸é ·¹ÄÚµå ¼ÂÀº ´ë·« ´ÙÀ½ ó·³ µÇ¾î ÀÖÀ» °Ì´Ï´Ù.
0 9393
1 9535
2 9504
.... Áß°£ »ý·«
54 9999
55 10000
56 9996
57 270
57¸¸°³ µ¥ÀÌÅÍ¿¡¼ ÀÌ·¸°Ô ³ª¿Ô½À´Ï´Ù. Á¤È®È÷ 10000°³°¡ ¾È³ª¿À´Â °ÍÀº
¹°·Ð Áß°£¿¡ »èÁ¦µÈ ±ÛÀÌ Àֱ⠶§¹®ÀÔ´Ï´Ù.
num/10000 Çϸé, ¾çÆí ¸ðµÎ int ÇüÀ̶ó, Á¤¼ö·Î ³ª¿É´Ï´Ù. À§¿¡¼ 57 ´ë °³
¼ö°¡ 270 ¶ó°í ³ª¿Ô´Ù¸é, num °ªÀÌ 570000 ~ 579999 »çÀÌÀÇ ¼ö°¡ 270°³¶õ
¾ê±é´Ï´Ù.
±×·±µ¥, ¿©±â¼ Áö±Ý, »ç¿ëÀÚ°¡ 2000 ÆäÀÌÁö·Î °¡·Á ÇÕ´Ï´Ù. ÇÑÆäÀÌÁö¿¡
±ÛÀÌ 10°³ ¾¿ ÀÖÀ¸¸é 2¸¸¹ø° ·¹Äڵ带 ã¾Æ ³»¾ß ÇÕ´Ï´Ù. ÀÌ°ÍÀº À§¿¡ °á
°úÄ¡ ·¹ÄÚµå ¼ÂÀ¸·Î °è»êÇÏ¸é ´ë·« À§Ä¡¸¦ ¾Ë ¼ö°¡ ÀÖ½À´Ï´Ù.
-> À§¿¡¼ 270 + 9996 Àº 10266, 270 + 9996 +10000 Àº 20266 À̴ϱî, 55 ¹ø´ë
¿¡ ±× ÆäÀÌÁö°¡ ÀÖ´Â °Ì´Ï´Ù.
-> 20000-10266=9734, 55¹ø´ë 9734 ¹ø°¿¡ ±× ·¹Äڵ尡 ÀÖ½À´Ï´Ù.
±×·³ select top ¹®ÀÌ ´ÙÀ½Ã³·³ µÉ ¼ö ÀÖ½À´Ï´Ù.
select top 9734+10(ÆäÀÌÁö´ç±Û¼ö) * from xxx where num<560000 order by
num desc
( -> ÀÌÈÄ rs.move 9734·Î ã¾Æ°¨ )
ÃÖ´ë 1¸¸°³ÀÇ ±Û·Î ÁÙ¿´±â ¶§¹®¿¡, 50¸¸°³ À϶§º¸´Ù´Â ÈξÀ »¡¶óÁö°ÚÁÒ.
------------------
±×·³¿¡µµ, select count(*) ... ±¸¹®Àº 5ÃÊ °É¸®°í, 5Ãʵµ »ç½Ç ±ä½Ã°£ÀÔ´Ï
´Ù.
ÀÌ°ÍÀº, Application °³Ã¼³ª ÆÄÀÏ¿¡ ¾ÕÀÇ 1¿¡¼ count ÇÑ °¹¼öµéÀ» ÀúÀåÇØ
µÎ¸é µÇÁö ¾ÊÀ»±î ÇÕ´Ï´Ù. Application_OnStart ¿¡¼ Çѹø¸¸ ¼¼°í, »ç¿ëÀÚ
°¡ ±ÛÀ» ¾²¸é ÇØ´ç À§Ä¡¿¡ +1, »èÁ¦Çϸé -1 ÇØÁÖ´Â °Ì´Ï´Ù. ¾à°£ º¹ÀâÇØÁö
Áö¸¸ ºÒ°¡´ÉÇÏÁø ¾Ê½À´Ï´Ù. ±×·³ ±× 5Ãʵµ »ç¶óÁý´Ï´Ù.
ÀÌ»óÀÔ´Ï´Ù. ^^;
|
|
|
|