|
|
|
|
| °Ô½ÃÆÇ ÆäÀÌ¡ |
 |
|
|
| ±Û¾´ÀÌ : ¹Ù¶÷°øÁÖ
³¯Â¥ : 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 ¸¦ Ãâ·ÂÇØ º¸½Ã¸é ´ë·« ÀÌÇØ°¡ °¡½Ç °Ì´Ï´Ù. ----------------------------------------------------------------------
|
|
|
|