AUTO
[ID/PWã±â] [ȸ¿ø°¡ÀÔ]
´º½º¿Í Á¤º¸ (276)
ÀÚÀ¯ °Ô½ÃÆÇ (392)
°¡ÀÔ Àλç (1960)
°øÁö»çÇ× (5)
AJAX ÇнÀ (72)
ASP Áú¹® (71)
ASP ÇнÀ (271)
MYSQL ÇнÀ (73)
SQLSERVER ÇнÀ (337)
¿À¶óŬ ÇнÀ (66)
µ¥ÀÌŸº£À̽º ÇнÀ (29)
¾×¼Ç½ºÅ©¸³Æ® ÇнÀ (261)
¾×¼Ç½ºÅ©¸³Æ® Áú¹® (65)
ÆÛ¿Â Ç÷¡½Ã (204)
Ç÷¡½Ã ³×ºñ°ÔÀÌ¼Ç (59)
Ç÷¡½Ã ¼Ò½º (532)
Ç÷¡½Ã ¿¬±¸½Ç (536)
Ç÷¡½Ã Áú¹® (647)
Ç÷¡½Ã °ÔÀÓ (53)
Ç÷¡½Ã ÀÎÆ®·Î (44)
Ç÷¡½Ã ÀÌÆåÆ® (45)
ÀÚÀÛ Ç÷¡½Ã (83)
ű×,HTML Áú¹® (43)
ű×,HTML ÇнÀ (131)
ÀÚ¹Ù,JSP ÇнÀ (161)
ÀÚ¹Ù,JSP Áú¹® (70)
ÀÚ¹Ù½ºÅ©¸³Æ® ÇнÀ (223)
ÀÚ¹Ù½ºÅ©¸³Æ® ¼Ò½º (73)
ÀÚ¹Ù½ºÅ©¸³Æ® Áú¹® (79)
Æ÷Åä¼¥ Áú¹® (108)
Æ÷Åä¼¥ ÇнÀ (369)
Ãßõ À̹ÌÁö (239)
ÀÚÀÛ À̹ÌÁö (81)
ÆÛ¿Â À̹ÌÁö (445)
PHP Áú¹® (62)
PHP ÇÔ¼ö (2658)
PHP ÇнÀ (661)
ÇÁ·Î±×·¡¹Ö ÇнÀ (205)
ÀÎÅͳݼ­¹ö ÇнÀ (346)
ÀÎÅͳݼ­¹ö Áú¹® (22)
³×À̹ö ¼Ó ȨÇǵðÀÚÀδåÄÄ
´ÙÀ½ ¼Ó ȨÇǵðÀÚÀδåÄÄ
±¸±Û ¼Ó ȨÇǵðÀÚÀδåÄÄ
¿¥ÆÄ½º ¼Ó ȨÇǵðÀÚÀδåÄÄ
¾ßÈÄ ¼Ó ȨÇǵðÀÚÀδåÄÄ
³×ÀÌÆ® ¼Ó ȨÇǵðÀÚÀδåÄÄ
½ÎÀÌ¿ùµå ȨÇǵðÀÚÀδåÄÄ
¿¥¿¡½º¿£ ȨÇǵðÀÚÀδåÄÄ
  ȨÇǵðÀÚÀδåÄÄ > ¿À¶óŬ ÇнÀ
   
  °Ô½ÃÆÇ ÆäÀÌ¡
  ±Û¾´ÀÌ : ¹Ù¶÷°øÁÖ     ³¯Â¥ : 05-06-03 13:17     Á¶È¸ : 5726    
   http://cafe.naver.com/q69/6374 (725)
SQL ¹®ÀåÀº ¸ðµç °Ç¼ö¸¦ selectÇϴµ¥, rs.next()¸¦ ÅëÇØ ÇØ´ç ÆäÀÌÁö±îÁö skipÇÑ ÈÄ
ÇØ´ç ÆäÀÌÁö ºÎÅÍ rs.getString()À» ÅëÇØ ½ÇÁ¦ µ¥ÀÌŸ¸¦ ²¨³» ¿À´Â °æ¿ìÁö¿ä..
ÀÌ·¸°Ôµµ ÇÏ½Ã¸é ¾ÈµË´Ï´Ù. ¸»¾¸µå·È´Ù ½ÃÇÇ rs.next()´Â ´Ü¼øÇÑ Á¶°Ç üũ°¡
¾Æ´Ï¶ó ¹°¸®ÀûÀ¸·Î DB¿Í N/WÀ» °æÀ¯ÇÑ Ã¼Å©°¡ ÀϾ´Ï´Ù. Áï, 10¸¸°ÇÀ̶ó¸é
´Ü 10°ÇÀÇ ÇÑ ÆäÀÌÁö¸¸À» Àб⸦ ¿øÇϽôõ¶óµµ ¸î½ÊºÐÀÌ °É¸®´Â ÀÛ¾÷ÀÌ µÇ°í
¸¿´Ï´Ù.

°á±¹, SQL¹®Àå ÀÚü¿¡¼­ ÀÌ¹Ì page°³³äÀÌ µé¾î°¡¼­ SQL¹®ÀåÀÌ ¸¸µé¾î Á®¾ß ÇÕ´Ï´Ù.
rownumÀ» »ç¿ëÇϵç, sub select¸¦ »ç¿ëÇϵç, ¹«½¼ ¹æ¹ýÀ» µ¿¿øÇؼ­¶óµµ page°³³äÀÌ
µé¾î°£ sql ¹®ÀåÀÌ ¸¸µé¾îÁ®¼­, ÇÊ¿äÇÑ ºÐ·®¸¸Å­¸¸ select°¡ ÀϾ¾ß ÇÕ´Ï´Ù.
(¸¸µé±â°¡ °ï¶õÇÒ ¶§µµ ÀÖ½À´Ï´Ù. ±×·¡µµ ¸¸µé¾î ³»¾ß ÇÕ´Ï´Ù.)
----------------------------------------------------------------------
10°³¾¿ »Ñ¸®´Â ±â¹ý

¹æ¹ý Çϳª : ROWNUMÀÌ¿ë
SQLJÄÚµåÁß SQLºÎºÐÀÔ´Ï´Ù.
#sql xxx = {
select rn.rnum, empno, ename, job, mgr, hiredate, sal, comm. deptno
from ( select rownum as rnum, empno, ename, job, mgr, hiredate, sal, comm, deptno
from emp where rownum <= :last_row) rn where(rn.rnum >=:first_row);
};

À§ÀÇ Äû¸®°¡ ³»ÀåµÈ ¸Þ¼Òµå¸¦ ÀÌ¿ëÇÏ¸é µÇ°Ú±º¿ä.

¹æ¹ýµÑ

10°³¾¿ ²÷¾î¼­ º¸¿©ÁÙ¶§ 11°³¸¦ SELECT Ç쵂 10°³¸¸(rownumÀ̳ª fetch first 10 row only) 
º¸¿©ÁÖ°í 11¹øÂ°´Â ´ÙÀ½¹ø ÆäÀÌÁöÇÒ¶§
۰ªÀ¸·Î »ç¿ëÇÑ´Ù. µû¶ó¼­ ´ÙÀ½ÆäÀÌÁö¸¦ º¸¿©ÁÙ¶§ 11¹øÂ°ÀÇ Å°°ªÀ» °¡Áö°í ¶Ç´Ù½Ã 11°³¸¸
SELECT ÇÑ´Ù.(¹°·Ð ¼ÒÆ®°¡ µÈ´Ù°í °¡Á¤ÇÑ´Ù.)

À§ÀÇ 2°¡Áö ¹æ¹ýÀ» ÀûÀýÈ÷ ÀÌ¿ëÇÏ¿©  Æ®·£Á§¼Ç´ÜÀ§·Î ºóÀ» ¸¸µç´Ù¸é
 DBÀÇ ºÎÇϰ¡ ÁÙ¾îµé°ÍÀ¸·Î »ý°¢µË´Ï´Ù.
----------------------------------------------------------------------
DB ÁúÀÇ °á°ú¸¦ Vector³ª Array µî¿¡ ´ã¾ÆµÎ´Â °æ¿ì,
¶Ç ÇѰ¡Áö Å« ¹®Á¦¿¡ ºÎµúÈú ¼ö ÀÖÁÒ.

JAVA¿¡¼­ »ý°¢ÇÏ´Â ¸Þ¸ð¸®´Â Runtime.totalMemory()¿¡ ÀÇÇØ ¹ÝȯµÇ´Â
JAVA Heap ¸Þ¸ð¸®¸¸ÀÌ ¾Æ´Ñ °æ¿ì°¡ ´ëºÎºÐÀÔ´Ï´Ù.
½ÇÁ¦ JAVA Process°¡ »ç¿ëÇÏ´Â ¸Þ¸ð¸®´Â À̰ͺ¸´Ù Å«µ¥,
ÀÌÀ¯ÁßÀÇ Çϳª´Â JAVAÀÇ gc°¡ ¿¬¼ÓµÇÁö ¾ÊÀº ºÎºÐÀÇ free memory¸¦ OS¿¡
¹Ý³³ÇÏÁö ¸øÇϰųª OS¿¡ ¹Ý³³ÇßÁö¸¸ OS°¡ ¹Ù»Ú´Ù´Â Çΰè·Î
(¶Ç´Â ¹Ù»ÚÁø ¾Ê¾Æµµ ¼Óµµ¸¦ ³ôÀÌÀÚ´Â ÃëÁö) °ÅµÖµéÀÌÁö ¾Ê±â ¶§¹®¿¡
¹ß»ýÇÏ´Â °ÍÀ¸·Î º¸ÀÔ´Ï´Ù.

ÀÌ Çö»óÀº ½ÇÁ¦·Î ÇÁ·Î±×·¥¿¡¼­ ¸Þ¸ð¸® °ü¸®¸¦ Á¤È®È÷ ÇßÀ½¿¡µµ ¹ß»ýÇÏ´Â
¹®Á¦À̱⠶§¹®¿¡ °³¹ßÀÚ°¡ Àû´çÈ÷ ÇÇÇØ°¡¾ß¸¸ ÇÕ´Ï´Ù.

±× Áß ´ëÇ¥ÀûÀÎ °ÍÀÌ Vector µîÀÇ ÀڷᱸÁ¶¿¡ DB ÁúÀÇ °á°ú¸¦ ²Ë ä¿ö
³õÀº ´ÙÀ½ ³ªÁß¿¡ ¾²°í ¹ö¸®´Â °æ¿ìÀÔ´Ï´Ù.
ÀÌ·¸°Ô ÇÏ¸é µ¢Ä¡°¡ Å« ¸Þ¸ð¸® ¿µ¿ªÀÌ ¹ß»ýÇÏ°í ±×°ÍÀÌ gc µÉ ¶§µµ
OS¿¡ ¹Ý³³Çϱâ Èûµé¾îÁö´Â °á°ú¸¦ ÃÊ·¡ÇÕ´Ï´Ù.

°á±¹ JVMÀÇ ¸Þ¸ð¸® Á¡À¯·®Àº Á¡Á¡ ´Ã¾î³ª¼­ ÁװԵǴ °æ¿ìµµ ÀÖ½À´Ï´Ù.
----------------------------------------------------------------------
´äº¯À» Á¦¿ÜÇϰí 10°³(ÁöÁ¤ °¡´É)¾¿ °Ô½Ã¹°À» ©¶ó¼­
´ÙÀ½ ó·³ ÆäÀÌÁöºä¸¦ º¸¿©ÁÖ´Â °Ô½ÃÆÇÀÌÁÒ..

ÀÌÀüÆäÀÌÁö [-5P] [6] [7] [8] [9] [10] [+5P] ´ÙÀ½ÆäÀÌÁö

½ÇÁ¦·Î,
ÇöÀç 1800°ÇÀÇ °Ô½Ã¹°ÀÌ ³Ñ¾î¼­°í ÀÖ´Â »óȲ¿¡¼­
Àüü °Ô½Ã¹°À» ¼±ÅÃÇÏ°í ÆäÀÌÁö¸¦ º¸¿©ÁÖ¾úÀ»¶§
userÀÔÀå¿¡¼­.. 10ÃÊÀÌ»ó °É¸®´ø °ÍÀÌ.
À§¿Í °°ÀÌ ÇÁ·Î±×·¥ÇÑ ÆäÀÌÁö¿¡¼­´Â 1~2ÃÊ ¾È¿¡ °á°ú°¡ ³ªÅ¸³³´Ï´Ù.
DATA°¡ ¸¹¾ÆÁú¼ö·Ï ±× Â÷ÀÌ´Â Ä¿Áö°ÚÁÒ? ¤»¤»

°£·«È÷ Äõ¸® ºÎºÐ¸¸ ¼Ò°³¸¦ ÇØ º¸¸é¿ä..

select * from head_board
where ref < 1576
  and ref >= (select min(ref)
              from (select ref from head_board
                               where ref < 1576 group by ref order by ref desc )
                    where rownum <= 50
             )
ORDER BY ref desc, ref_seq asc


1576¹ø ÀÌÇÏÀÇ 50°³ °Ô½Ã¹°À» ¼±ÅÃÇÏ´Â °æ¿ìÀÔ´Ï´Ù.
(50°³´Â Áú¹® ±âÁØÀÔ´Ï´Ù. ´äº¯ÀÌ Æ÷ÇÔµÇ¹È ¸î°³°¡ µÉÁö ¸ð¸£ÁÒ)

select min(ref)
from (select ref from head_board
                 where ref < 1576 group by ref order by ref desc )
where rownum <= 50

ÀÌ ¼­ºêÄõ¸®¿¡¼­ Áú¹®±âÁعøÈ£(ref)·Î 50¹øÂ° °Ô½Ã¹°ÀÇ ¹øÈ£¸¦ ¼±ÅÃÇÏ°Ô µÇ°í,

select * from head_board
where ref < 1576
  and ref >= (À§~)
ORDER BY ref desc, ref_seq asc

¿©±â¼­ ¼ø¼­´ë·Î ¼ÒÆÃÀ» ÇÏ°Ô µÇÁÒ.. ref_seq´Â ´äº¯¼ø¼­.
Àú±â 1576À̶ó´Â ±âÁعøÈ£Çϳª¸¦ Àâ´Â ±ÔÄ¢À̳ª,
ÀÌÀüÆäÀÌÁö¿Í ´ÙÀ½ÆäÀÌÁö¸¦ ³Ñ±æ¶§ÀÇ ¹æ¹ýÀº Áö±Ý Àúµµ º¹ÀâÇÕ´Ï´Ù.
----------------------------------------------------------------------
Á¦°¡ ¾Æ´Â ¹æ¹ýÁßÀÇ Çϳª´Â  oracle ÀÇ hint¸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀÔ´Ï´Ù.

°¡·É
SELECT article_id,title,date FROM articles
¿Í °°Àº tableÀÌ ÀÖ´Ù¸é,

SELECT * FROM (
SELECT /*+ INDEX(articles Á¤·ÄÇÏ°í ½ÍÀº À妽º¸í)  */
article_id, title,date ceil( rownum / ÇÑÈ­¸é´ç °¹¼ö ) as page
FROM articles
WHERE Á¶°Çµé....
) WHERE page = Ãâ·ÂÇÏ°í ½ÍÀº ÆäÀÌÁö¹øÈ£

ÀÌ·± ½ÄÀÔ´Ï´Ù.
Áï Á¤·ÄÀº hint¸¦ ½á¼­ À妽ÌÀ¸·Î Á¤·ÄÇÏ¿© rownumÀÌ È寮·¯Áö´Â °ÍÀ» ¸·½À´Ï´Ù.
INDEX_DESC ·Î ¸í·ÉÀ» ¹Ù²Ù¸é ¿ªÀ¸·Î Á¤·ÄµÇ°ÚÁÒ.

Âü°í·Î ceilÀ̶ó´Â ÇÔ¼ö´Â ceil(1/3) = 1, ceil(2/3) = 1, ceil(3/3) = 1,ceil(4/3) = 2
¿Í °°Àº °á°ú¸¦ ³ªÅ¸³À´Ï´Ù.
Áï rownumÀÌ °° °Ô½Ã¹°ÀÇ ¼ø¼­À̰í ceil(rownum/ÇÑÆäÀÌÁö´ç °¹¼ö)Àº ÇØ´ç ÆäÀÌÁö¹øÈ£°¡ µÇÁö¿ä.

ÀÌ ¹æ¹ýÀº Äõ¸®°¡ °£´ÜÇÏ°í ¼Óµµ°¡ ¹«¾ùº¸´Ùµµ ºü¸£´Ù´Â °ÍÀÔ´Ï´Ù.
´Ü ¿À¶óŬ¿¡¼­¸¸ °¡´ÉÇϰí Á¤·ÄÀ» ÇϱâÀ§Çؼ­´Â À妽º¸¦ ¸¸µé¾î¾ß ÇÏ´Â ¹®Á¦°¡ ÀÖÁö¸¸,
´ëºÎºÐÀº ۰ªÀ¸·Î »ý¼ºÇϸ鼭 »ý¼ºµÈ Àε¦½Ì¸¸ ÀÌ¿ëÇÏ´Â °æ¿ì°¡ ´ëºÎºÐÀ̹ǷÎ
Å« ¹®Á¦´Â ¾ø´Ù°í »ý°¢µË´Ï´Ù.
----------------------------------------------------------------------
À̹ø¿¡´Â °Á È£±â½ÉÀ¸·Î postgreSQLÀ» ½á º¸±â·Î Çߴµ¥,
¸Þ´º¾óÀ» Á» µéÃß´Ù º¸´Ï... ´Ù¸¥ db¿¡¼­ ±×Åä·Ï Ãʺ¸°³¹ßÀÚÀÇ ¸Ó¸®¸¦
»Ç°³´ø ±× Äõ¸®°¡ °£´ÜÇÏ°Ô µÇµµ·Ï µÇ¾î ÀÖ´õ±º¿ä.

´Ù¸¥ DB¿¡´Â ÀÖ´ÂÁö ¸ô°Ú´Âµ¥... selectÇÒ ¶§ limit¶õ °É ¾µ ¼ö°¡ ÀÖ´õ¶ó±¸¿ä.
±×·¡¼­...select ¹®¿¡ limit ¸¦ ½áÁÖ¸é ¸î ¹øÂ° ÁÙºÎÅÍ ¸î °³³ª µ¹·ÁÁÙÁö
Á¤ÇÒ ¼ö°¡ Àֳ׿ä.

¿¹¸¦ µé¾î
1, 2, 3, 4, 5
¶õ µ¥ÀÌŸ°¡ ÀÖÀ» ¶§

select * from table where field > 1 limit 2,1 À̶ó°í Çϸé

3, 4
°¡ Ãâ·ÂµÇÁö¿ä...1º¸´Ù Å« 2,3,4,5Áß¿¡ ù ¹øÂ° ÁÙ 2¸¦ »©°í ³ª¸ÓÁö Áß
2ÁÙÀ» Ãâ·ÂÇÏ´Â °Ì´Ï´Ù.. °£´ÜÇÏÁö¿ä.. ´Ù¸¥ db¿¡µµ ÀÌ·± ±â´ÉÀÌ ÀÖÀ»±î¿ä?
Ä¿³Ø¼Ç¸¸ Á¦¿ÜÇÏ°í ³ª¸ÓÁö´Â Ç¥Áظ¸ ¾µ·Á¸é ÀÌ°É ¸ø ¾²°ÚÁö¸¸...
----------------------------------------------------------------------
¿Í¿ì ceilÀ̶ó´Â ÇÔ¼ö°¡ ÀÖ¾ú±º¿ä..

ÈùÆ®ºÎºÐ¿¡ À־´Â¿ä..
ÀúÈñ´Â.. ref(°Ô½Ã¹°¹øÈ£)´Â desc·Î, ±×¸®°í ref_seq(´äº¯¼ø¼­)´Â asc·Î Á¤·ÄÇÏ´Â index¸¦
ÈùÆ®·Î Áà ºÃ´Âµ¥ ¿¡·¯ ³ª´õ¶ó±¸¿ä..
 desc ·Î À妽ÌÇÏ´Â °Í(function based index·Î Ãë±Þ??)¿¡¼­ ¹®Á¦°¡ ÀÖ´Â µí..
(Oracle 8.1.5)
Á¤¸» µÑ´Ù asc·Î ÀÎÅØ½ÌÇϰí ÈùƮó¸®ÇßÀ»¶§´Â Àß µÇ±¸¿ä..

ceilÀº ¾È½áºÃ´Âµ¥.. ÇÔ ¸¸µé¾î ºÁ¾ß°Ú³×¿ä..

/////////////////////////////// Áú¹®°¹¼ö Á᫐ 10°³¾¿..///////////////////////
SELECT ref, ref_seq, (select ceil( count(distinct ref)/20) from head_board where bulletin_num='web') mp
  FROM head_board
 WHERE ref in (SELECT ref FROM ( SELECT ref, ceil(rownum/20) page
    FROM (SELECT DISTINCT ref
     FROM head_board
    WHERE bulletin_num='web'
    ORDER BY ref DESC
  ))
   WHERE page = 50
 )
  AND bulletin_num='web'
 ORDER BY ref DESC, ref_seq ASC

/////////////////////////////// Áú¹®, ´äº¯ ±¸ºÐ¾øÀÌ ¹«Á¶°Ç 10°³¾¿..///////////////////////
SELECT ref, ref_seq, page, (select max(ceil(rownum/10)) from head_board where bulletin_num='web') mp
  FROM ( SELECT ref, ref_seq, ceil(rownum/10) page
    FROM (SELECT ref, ref_seq
     FROM head_board
    WHERE bulletin_num='web'
    ORDER BY ref DESC, ref_seq ASC
  )
 )
 WHERE page = 1

** mp´Â total page ¼ö ÀÔ´Ï´Ù. ÇÊ¿äÇÒ °Í °°¾Æ¼­.. **
----------------------------------------------------------------------
Èì.. ceilÀ̶õ ÇÔ¼ö°¡ ÀÖ¾ú³×¿©.. ^^;
Á¦°¡ Àü¿¡ ÇØº»°Å ¿ª½Ã rownumÀ» »ç¿ëÇѰǵ¥..
°ÅÀÇ ºñ½ÁÇѰа°¾Æ¼­ ¿Ã¸³´Ï´Ù..
À§ÀÇ ceilÀ» »ç¿ëÇϸé... ÆäÀÌÁö ¹øÈ£¸¦ °¡Áö°í ´Ù´Ï´Â °æ¿ì°Ú±¸¿©..
rownumÀ» »ç¿ëÇϸé.. ±Û ¹øÈ£¸¦ °¡Áö±¸ ´Ù´Ï´Â °æ¿ì±¸¿©..
¸Ó ³»¿ëÀº ºñ½Á???

SELECT seq, title, ±âŸµîµî, rnum
       FROM (SELECT seq, title, rownum rnum
             FROM °Ô½ÃÆÇ Å×À̺í¸í
            WHERE Á¶°Ç ..
    ORDER BY Á¤·ÄÄ÷³
                     )
where rnum between ½ÃÀÛ ±Û¹øÈ£ and ½ÃÀÛ±Û¹øÈ£ + ÆäÀÌÁö¿¡»Ñ¸± °¹¼ö

À½.. ÀÌ·¸°Ô ÇÏ¹È ºñ½º¹Ç¸®~ ÇϰÚÁ®..
¼Óµµ´Â º° Â÷ÀÌ ¸ø´À³¦´Ù.. ´ÜÁö.. ¹è¿­À̳ª º¤ÅÍ¿¡..
ÇÊ¿äÇÑ µ¥ÀÌÅ͸¦ ³ÖÀ»¼ö ÀÖ´Ù´Â °Í À̿ܿ¡..
ÇÏÁö¸¸.. ±×·¡µÎ ±×°Ô ó¸®ÇÏ´Â ½Ã½ºÅÛ¿¡ ÀÔÀå¿¡¼­´Â ÁÁ°ÚÁ®???
----------------------------------------------------------------------
´ÔÀÇ ±Û´ë·Î hint¸¦ ½á¼­ query¸¦ ÇØºÃÁö¸¸ Á¤·ÄÀÌ µÇÁö ¾Ê´Âµ¥¿ä.

SELECT * FROM (
SELECT /**INDEX_DESC(DB07 DB07_PRIMARY_PK)*/
DB07_REQ_NO,rownum,ceil(rownum/10) AS PAGE
FROM DB07
WHERE DB07_REQ_NO LIKE '2000%'
)
WHERE PAGE=2

WHERE ÀýÀÇ DB07_REQ_NO´Â PK·Î ÀâÇô ÀÖ½À´Ï´Ù.

Ȥ½Ã ¿À¶óŬ ¹öÁ¯¹®Á¦Àΰ¡¿ä?
Àú´Â ¿À¶óŬ 8.0.5¸¦ »ç¿ëÇÕ´Ï´Ù.
Âü°í·Î À̹öÁ¯¿¡¼­´Â SUBQUERY¿¡¼­ ORDER BY ¸¦ »ç¿ëÇÒ ¼ö ¾ø´õ±º¿ä.

hint¸¦ ¾´´Â ¹æ¹ýÀÌ ÀÖ´Ù´Â°É ¾Ë°í ´«ÀÌ ¹øÂ½ ¶ç¿´´Âµ¥
Á» µµ¿Í ÁÖ¼¼¿ä........
----------------------------------------------------------------------
1. Oracle¿¡¼­ 10°³¾¿ µ¥ÀÌŸ °¡Á®¿À±â

select * from (
select * from (
select record_number, record_no, record_depth, record_depthno, record_title, record_writer, writer_email, to_char(record_date,'yyyy-mm-dd'), read_count
 from kpa_pm2000_qna where delete_flag='1' order by record_no desc, record_depth
 ) where rownum <= 100 order by rownum desc
 ) where rownum <= 10 order by rownum desc
 ----------------------------------------------------------------------
 Á¦¸ñ [oracle] Äõ¸®¼Óµµ Çâ»ó, È¿À²Àû...
 
½Ç¹«¿¡¼­ ÇØ°áÇÑ ¹®Á¦¸¦ Á¤¸®ÇØ ¿Ã¸³´Ï´Ù.
Á¦°¡ À¯Áöº¸¼ö¸¦ ¸Ã°ÔµÈ »çÀÌÆ®¿¡¼­ ´äº¯Çü °Ô½ÃÆÇÀÇ ¹®Á¦¸¦ ÇØ°áÇϴµ¥ »ç¿ëÇÑ
Äõ¸®ÀÔ´Ï´Ù. °Ô½Ã¹° ¼ö°¡ 9000°ÇÀ» ³Ñ½À´Ï´Ù.
°Ô½ÃÆÇ ÆäÀÌÁö¸¦ °¡¸é 6~8ÃÊÁ¤µµ ±â´Ù·Á¾ß ùÆäÀÌÁö°¡ ³ª¿É´Ï´Ù.
´ÙÀ½ÆäÀÌÁö·Î À̵¿ÇÒ ¶§µµ °É¸®´Â ½Ã°£Àº ¸¶Âù°¡ÁöÀÔ´Ï´Ù.

DBA ¿Í °°ÀÌ »óÀÇÇϰí Å×½ºÆ®ÇÑ °á°ú Áß¿äÇÑ Â÷ÀÌÁ¡À» ¹ß°ßÇß½À´Ï´Ù.
Äõ¸®ÇÏ´Â Ä÷³À» ÁöÁ¤ÇÏ´À³Ä ¾Æ´Ï¸é * ¸¦ ½á¼­ ¸ðµÎ °¡Á®¿À´À³Ä°¡ Å« ¼º´ÉÀÇ Â÷À̸¦
º¸¿´½À´Ï´Ù. ´Ü¼øÈ÷ order by °¡ µé¾î°¡¸é Á¤·Ä(sorting) ¶§¹®¿¡ ´À·ÁÁö´Â °ÍÀ¸·Î ¾Ë°í
ÀÖ¾ú´Âµ¥ 6ÃÊ ÀÌ»ó °É¸®´ø Äõ¸®°¡ ´Ü 0.2 Ãʸ¸¿¡ ÇØ°áµÇ¾ú½À´Ï´Ù.

select *
from pm2000_qna order by record_no desc, record_depth

¿Í

select record_number, record_no, record_depth, record_depthno, record_title, record_writer,
writer_email, to_char(record_date,'yyyy/mm/dd') record_date, read_count
from pm2000_qna order by record_no desc, record_depth

´Â Å« Â÷À̶ó´Â ¶æÀÔ´Ï´Ù.

±×¸®°í,
È¿À²ÀûÀÎ dbÁ¢¼ÓÀ» À§Çؼ­ °Ô½Ã¹° ¸ù¶¥ °¡Á®¿Í¼­ rs.next() ·Î µ¹·Á¼­ À§Ä¡¸¦ ã´Â °Í
º¸´Ù´Â sql¿¡¼­ °Ô½Ã¹° ¼ö¸¸Å­ °¡Á®¿Í¼­ »Ñ·ÁÁÖ´Â °ÍÀÌ ³ªÀº Á¡¿¡ ´ëÇØ¼­´Â ÀÌ »çÀÌÆ® ¿©·¯
°÷¿¡¼­ Åä·ÐµÇ°í ÀÖ´Â ÁÙ ¾Ð´Ï´Ù.
¿À¶óŬ¿¡¼­´Â rownum ÀÌ ÀÖÁÒ. ¾î°ÅÁö·Î ¾²´Â °Í °°Áö¸¸ ¾î¿ ¼ö ¾øÁÒ. ¸Ó¸®¸¦ ±¼¸®´Â
¼ö¹Û¿¡¿ä.
^^; ¼ö°í¸¦ Á» ´ú¾îµå¸®¸é ÁÁ°Ú½À´Ï´Ù.

select * from (
  select * from (
    select record_no, record_depth, record_depthno, record_title, record_writer,
    writer_email, to_char(record_date,'yyyy/mm/dd') record_date, read_count
    from pm2000_qna order by record_no desc, record_depth
  ) where rownum <= ? order by rownum desc
) where rownum <= ? order by rownum desc

jsp ¿¡¼±
pstmt.setInt(1,(pageNo+1)*pageSize); // pageNo´Â 0ºÎÅÍ..
pstmt.setInt(2,pageSize);
·Î ÇØÁÖ¸é µË´Ï´Ù.
ÀÏ´Ü sqlplus ¿¡¼­ Å×½ºÆ® ÇØº¸½Ê½Ã¿À.

¾ÆÁÖ ¼ÓÀÌ ½Ã¿øÇÏ´õ±º¿ä.

ºÎ·ÏÀ¸·Î mysql ¹öÀüÀÔ´Ï´Ù.
select record_no, record_depth, record_depthno, record_title, ...
from pm2000_qna order by seq desc limit ?, ?

jsp¿¡¼±
pstmt.setInt(1,pageNo*pageSize); // pageNo´Â 0ºÎÅÍ..
pstmt.setInt(2,pageSize);

ÇÏ½Ã¸é µË´Ï´Ù.

Âü°í·Î Å×½ºÆ®È¯°æÀº
oracle 8.1.5 ÀÔ´Ï´Ù.
8.0.5 ¿¡¼± inline view¿¡¼­ order by °¡ ¾ÈµÈ´Ù°í Çϳ׿ä.
´Ù¸¥ ¹æ¹ýÀ» ã¾ÆºÁ¾ß°Ú³×¿ä. ^^;
 ----------------------------------------------------------------------
 ÀÌ ±Ùº»ÀûÀÎ ¹®Á¦¸¦ ÇØ°áÇÏ´Â ¹æ¹ýÀº º¸µåij½³ ±â¹ýÀ» ÀÌ¿ëÇÏ´Â ¹æ¹ýÀÔ´Ï´Ù.
º¸µåij½³Àº ¿äÁò ÃÖ½ÅÀ¸·Î Á¦°øµÇ´Â Connection Pool¿¡¼­ SQL ij½³°ú ºñ½ÁÇÑ
±â¹ýÀ» »ç¿ëÇÏ´Â ¹æ¹ýÀÔ´Ï´Ù.

¸ÕÀú À̸¦ ÀÌ¿ëÇϱâ À§Çؼ­´Â Äõ¸®¸¦ ´ÜÁö Á¶°Ç¾øÀÌ ¸ðµÎ Àд ¹æ¹ýº¸´Ù
¾î´ÀÁ¤µµ ²÷¾î¼­ ÀÐÀ» Çʿ䰡 ÀÖ½À´Ï´Ù.

Áï, select first 10 user_id, user_name from test_board ¿Í °°ÀÌ ¸»ÀÔ´Ï´Ù.

ÀÎÆ÷¹Í½º, ¿À¶óŬ, MS SQL¿¡¼­´Â first ¹®À» ÀÌ¿ëÇØ ¿øÇÏ´Â °³¼ö¸¸Å­ÀÇ
resultsetÀ» ¾òÀ» ¼ö ÀÖ½À´Ï´Ù.
¾Æ, mysql¿¡¼­´Â select user_id, user_name from test_board limit 10; À»
»ç¿ëÇØ¾ß ÇÕ´Ï´Ù.

±×·¸´Ù¸é ¸Å¹ø ÀÌ·¸°Ô ³ª´²¼­ Àоî¾ß ÇÒ±î? ±×°Ç ¾Æ´Õ´Ï´Ù.
°Ô½ÃÆÇÀÌ º¯°æ(insert, delete)µÇÁö ¾Ê´Â´Ù¸é, ÃÖÃÊ Çѹø¸¸ Àеµ·Ï Çϰí
³ª¸ÓÁö »ç¶÷µéÀº ÇØ´çÇÏ´Â °Ô½ÃÆÇÀÇ Á¤º¸(¸Þ¸ð¸®»óÀÇ ÀνºÅϽº¸¦ ¸»ÇÕ´Ï´Ù)¸¦
Àо¸é ±»ÀÌ DB¸¦ ´Ù½Ã Àо Çʿ䰡 ¾ø°ÚÁö¿ä.

ÀúÀÇ °æ¿ì¿¡´Â °Ô½Ã¹°¿¡ ´ëÇÑ ÆäÀÌÁö ºí·° 5°³ Á¤µµ¸¦ ¸Þ¸ð¸®¿¡ °øÀ¯ ÀνºÅϽº·Î
¶ç¿ö¼­ °Ô½Ã¹°¿¡ ´ëÇÑ Á¤º¸¸¦ ³ª´²°®´Â ij½³±â¹ýÀ» »ç¿ëÇÏ¿© °³¹ßÇÏ´Â ÁßÀÔ´Ï´Ù.
Ãß°¡ÀûÀ¸·Î, °Ô½Ã¹° ù ÆäÀÌÁö¿¡ ´ëÇØ¼­´Â ¾Æ¿¹ Ç¥½Ã³»¿ëÀ» º¤ÅÍ¿¡ ³Ö¾î¼­
¿ª½Ã ´Ù¸¥ »ç¿ëÀÚ°¡ DB¸¦ ÀÐÁö ¾Ê°íµµ º¤ÅͰª¸¸ °¡Á®´Ù ¾²µµ·Ï Çß½À´Ï´Ù.

¸Þ¸ð¸®¿¡ ´ëÇÑ °è»êÀ» ÇØºÃ´Âµ¥, ÆäÀÌÁö ºí·° 5°³ Á¤µµ¸é 32kb ¹Û¿¡ Â÷ÁöÇÏÁö
¾ÊÀ¸¸ç, ùÆäÀÌÁö¿¡ ´ëÇÑ º¤ÅÍ »çÀÌÁîµµ ¹Ì¹ÌÇÒÁ¤µµÀÔ´Ï´Ù.
ÀÌ·± ij½³±â¹ýÀ» »ç¿ëÇÏÁö ¾ÊÀº °Ô½ÃÆÇÀº °Ô½Ã¹°ÀÌ ´ë·« 10000°Ç ÀÌ»óÀÎ °æ¿ì
½É°¢ÇÑ ¼ÓµµÀúÇϸ¦ °¡Á®¿À´Â°Ô ´ë´Ù¼öÀÔ´Ï´Ù.
ƯÈ÷, Å×À̺íÀ» 1°³¸¸ »ç¿ëÇÏ°í ¿©·¯°³ÀÇ °Ô½ÃÆÇÀÌ °øÀ¯ÇÏ´Â °æ¿ì¿¡´Â
´õ¿í ½É°¢ÇÑ »óȲÀÌ ¹ú¾îÁú ¼ö ¹Û¿¡ ¾ø°ÚÁÒ...

±×¸®°í À妽ºÀÇ Á߿伺À» ²À ¾Ë¾ÆµÎ½Ã±æ ¹Ù¶ø´Ï´Ù.
À妽º¸¦ °Å´Â °ÍÀ̶û ¾Æ´Ñ°ÍÀ̶û ¼ÓµµÂ÷ÀÌ´Â °Ô½Ã¹° ¼ö°¡ Áõ°¡ÇÒ ¼ö·Ï
¾öû³ª°Ô Â÷À̰¡ ³³´Ï´Ù. (´ÜÁö ¼öÄ¡ÀûÀ¸·Î ¸î½Ê¹è ÀÌ»óÀÌ µÇ±âµµ ÇÕ´Ï´Ù.)

À妽º¸¦ °Å´Â ¿ä·ÉÀº whereÀý¿¡¼­ ¾î¶² Çʵ尪À» ÁÖ·Î »ç¿ëÇÏ´ÂÁö°¡ Æ÷ÀÎÆ®À̸ç
º¸Åë 2-3°³ Á¤µµÀÇ Çʵ带 ¹­¾î¼­ cluster index¸¦ »ý¼º½Ãŵ´Ï´Ù.
±×³É À妽º¸¦ °Å´Â°Íº¸´Ù cluster index¸¦ »ý¼ºÇÏ´Â°Ô ÃÖ»óÀÇ ¹æ¹ýÀÔ´Ï´Ù.
ÂÁ... mysql¿¡¼­´Â º¸Åë À妽º¸¸ Áö¿øÇÕ´Ï´Ù...
(Á¦ °³ÀÎÀûÀ¸·Î mysqlÀ» ±²ÀåÈ÷ ÁÁ¾ÆÇÕ´Ï´Ù. ÀÛ°í ÆÄ¿öÇ®ÇÑ°Ô Á¤¸» ¸¾¿¡ µì´Ï´Ù.
±×·¯³ª ±â´É/¼º´ÉÀ¸´Â ¿À¶óŬÀ̳ª MS SQLÀÌ ´õ ³´´Ù°í ÀÎÁ¤Çؾ߰ÚÁÒ...)
----------------------------------------------------------------------
1. ¿À¶óŬ rownum »ç¿ëÇÑ 10°³ °Ô½Ã¹° °¡Á®¿À±â

¿À¶óŬ¿¡¼­´Â select ÇÑ °á°ú¿¡ ÀÚµ¿ÀûÀ¸·Î rownum À̶ó´Â ¼ýÀÚ°¡ ºÙ½À´Ï´Ù.
±×·¡¼­ ÀÌ rownum ÇÔ¼ö¸¦ ÀÌ¿ëÇϸé db¿¡¼­ ²÷¾î¼­ query¸¦ ÇØ ³¾ ¼ö ÀÖ½À´Ï´Ù.
¾Æ·¡ÀÖ´Â Vector¸¦ ÀÌ¿ëÇÑ °Íº¸´Ù db Á¶È¸¼ö°¡ ÇöÀúÇÏ°Ô ³·¾ÆÁöÁÒ.
Vector´Â DB¿Í java °¡ °è¼Ó data¸¦ ÁÖ°í¹Þ´Ù°¡ 10°³¸¦ °ñ¶ó¿À´Â °ÍÀ̰í,
Áö±Ý ÀÌ Äõ¸®´Â DB¿¡¼­ 10°³¸¦ ¼±ÅÃÇÑ µÚ¿¡ ÀÚ¹Ù¿¡°Ô ÁÖ´Â °ÍÀÔ´Ï´Ù.

// totcnt ´Â ÃÑ °Ô½Ã¹°ÀÇ ¼ö "select * from board where board_gbn='" + boardGbn + "'" ¿¡¼­ ³ª¿Â int °ª

int pageSize = 10, curPage, totPage;

if (reqpage == null) {
curPage = 1;
} else {
curPage = Integer.parseInt(reqpage);
}
totPage = ((totcnt - 1)/ pageSize) + 1;
int lastNum = totcnt - (curPage-1) * pageSize;

sqlstr = "SELECT * FROM board WHERE board_gbn = '" + boardGbn + "' AND rownum <= " + lastNum ;
sqlstr = sqlstr + " order by board_no DESC";
sqlstr = "SELECT * FROM ("+sqlstr+") WHERE ROWNUM <= "+pageSize+"";

out.println(sqlstr);

rs1 = conn.executeQuery(sqlstr);
....
Query ¸¦ Ãâ·ÂÇØ º¸½Ã¸é ´ë·« ÀÌÇØ°¡ °¡½Ç °Ì´Ï´Ù.
----------------------------------------------------------------------

   

 
´º½º¿Í Á¤º¸ ¡¤ ÀÚÀ¯ °Ô½ÃÆÇ ¡¤ °¡ÀÔ ÀÎ»ç ¡¤ °øÁö»çÇ× ¡¤ AJAX ÇнÀ ¡¤ ASP Áú¹® ¡¤ ASP ÇнÀ ¡¤ MYSQL ÇнÀ ¡¤ SQLSERVER ÇнÀ ¡¤ ¿À¶óŬ ÇнÀ ¡¤ µ¥ÀÌŸº£À̽º ÇнÀ ¡¤ ¾×¼Ç½ºÅ©¸³Æ® ÇнÀ ¡¤ ¾×¼Ç½ºÅ©¸³Æ® Áú¹® ¡¤ ÆÛ¿Â Ç÷¡½Ã ¡¤ Ç÷¡½Ã ³×ºñ°ÔÀÌ¼Ç ¡¤ Ç÷¡½Ã ¼Ò½º ¡¤ Ç÷¡½Ã ¿¬±¸½Ç ¡¤ Ç÷¡½Ã Áú¹® ¡¤ Ç÷¡½Ã °ÔÀÓ ¡¤ Ç÷¡½Ã ÀÎÆ®·Î ¡¤ Ç÷¡½Ã ÀÌÆåÆ® ¡¤ ÀÚÀÛ Ç÷¡½Ã ¡¤ ű×,HTML Áú¹® ¡¤ ű×,HTML ÇнÀ ¡¤ ÀÚ¹Ù,JSP ÇнÀ ¡¤ ÀÚ¹Ù,JSP Áú¹® ¡¤ ÀÚ¹Ù½ºÅ©¸³Æ® ÇнÀ ¡¤ ÀÚ¹Ù½ºÅ©¸³Æ® ¼Ò½º ¡¤ ÀÚ¹Ù½ºÅ©¸³Æ® Áú¹® ¡¤ Æ÷Åä¼¥ Áú¹® ¡¤ Æ÷Åä¼¥ ÇнÀ ¡¤ Ãßõ À̹ÌÁö ¡¤ ÀÚÀÛ À̹ÌÁö ¡¤ ÆÛ¿Â À̹ÌÁö ¡¤ PHP Áú¹® ¡¤ PHP ÇÔ¼ö ¡¤ PHP ÇнÀ ¡¤ ÇÁ·Î±×·¡¹Ö ÇнÀ ¡¤ ÀÎÅͳݼ­¹ö ÇнÀ ¡¤ ÀÎÅͳݼ­¹ö Áú¹®¡¤ Ç÷¡½Ã »ùÇà ¼Ò½º ¡¤ Ç÷¡½Ã äÆÃ¹æ ¡¤ Ç÷¡½Ã ¹Ì´ÏȨÇÇ ¡¤ Ç÷¡½Ã °¶·¯¸® ¡¤ Ç÷¡½Ã RSS¸®´õ ¡¤ Ç÷¡½Ã PHP »çÀü ¡¤ Ç÷¡½Ã ¿ìÆí¹øÈ£ ã±â ¡¤ Ç÷¡½Ã ÇÑÀÚ°ÔÀÓ ¡¤ Ç÷¡½Ã ´Þ·Â°ú½Ã°è ¡¤ Ç÷¡½Ã Æ÷Åä¶óÀ̺귯¸® ¡¤ ·£´ýÀ̹ÌÁö ¡¤ Ç÷¡½Ã ´Þ·Â°ú½Ã°è ¡¤ ÇÑ±Û µµ¸ÞÀÎ ¡¤ ³×À̹ö ºí·Î±× ½ºÅ©·¦ ¡¤ ½ÎÀÌ¿ùµå ¹Ì´ÏȨÇÇ °¶·¯¸® ¡¤ ½ÎÀÌ¿ùµå ¹Ì´ÏȨÇÇ µî·Ï ¡¤ ÇÁ·Î°ÔÀÌ¸Ó ·©Å© ¡¤ ȨÆäÀÌÁöÁ¤º¸ ºí·Î±×
Copyright ¨Ï hompy.info. All rights reserved.