[Áöµð³ÝÄÚ¸®¾Æ]¨ç ¼¼¼Çºó¿¡¼ÀÇ DB Á¢±ÙÀü·« ¹× ¿£ÅÍÆ¼ºó »ç¿ë½Ã ÁÖÀÇ»çÇ×
¨è ¼¼¼Çºó¿¡¼ÀÇ Æ®·£Àè¼Ç °ü¸®
¨é ºñÁî´Ï½º ÇÁ·Î¼¼½º ±¸Çö ÃÖÀûÈÇϱâ
¨ê ´É·ü ³ô¿©ÁÖ´Â À¯Æ¿¸®Æ¼¸¦ »ç¿ëÇÏÀÚ
À̹ø °Á¿¡¼´Â Áö³¹ø¿¡ ¾ð±ÞÇÑ´ë·Î Procedure¿¡ ´ëÇØ À̾߱âÇØº¸°Ú´Ù.
°³¹ßÀÚ°¡ SQL¹®¿¡ ´ëÇÑ Áö½ÄÀÌ ¾î´ÀÁ¤µµ ÀÖ°í ±× ¿Ü ÇÁ·Î±×·¡¹Ö ¾ð¾î¿¡ ´ëÇÑ °æ·ÂÀÌ ÀÖ´Ù°í ÇØ¼ ¾ðÁ¦³ª °·ÂÇÑ ÇÁ·Î±×·¥À» °³¹ßÇÏ´Â °ÍÀº ¾Æ´Ï¸ç, ±× ÇÁ·Î±×·¥ÀÌ À¯Áöº¸¼ö ¹× ÀçȰ¿ë¼ºÀÌ ¶Ù¾î³ ÇÁ·Î±×·¥ÀÌ µÉÁö Àå´ãÇÏÁöµµ ¸øÇÑ´Ù. ¶Ç EJB ½ºÆå¿¡ ´ëÇÑ Áö½ÄÀÌ EJB»ç¿ë ÇÁ·ÎÁ§Æ®ÀÇ ¼ºÆÐ¸¦ Á¿ìÇÏ´Â °Íµµ ¾Æ´Ï´Ù.
°³¹ßÀÚÀÇ ¿ª·®°ú ÇÔ²² Á¤È®ÇÑ ¾÷¹«ºÐ¼® ¹× ¿ä±¸»çÇ× ºÐ¼®¿¡ ±Ù°ÅÇØ È¿À²ÀûÀ¸·Î °è»êµÈ ¼³°è°¡ Áß¿äÇÑ º¯¼öÀÎ °ÍÀº ±»ÀÌ °Á¶ÇÏÁö ¾Ê¾Æµµ ¸ðµÎ ¾Ë °ÍÀÌ´Ù.
¡®Stored Procedure¡¯ÀÇ »ç¿ëÀ» °³¹ßÀÚ ¿ª·®À̶ó´Â °üÁ¡¿¡¼ À̾߱âÇØ º¸ÀÚ.
Ÿ ½Ã½ºÅÛ¿¡¼ »ç¿ëÇϱ⵵ ÇÏ´Â °øÅëµÈ ±â´É, ºñÁî´Ï½º ÇÁ·Î¼¼½ºÀÇ º¯È °¡´É¼ºÀÌ ÀÛÀº ±â´É, ´Ù¼ö°³ÀÇ Å×ÀÌºí¿¡ Á¤º¸¸¦ µî·Ï ¹× º¯°æÇÏ°Ô µÇ´Â ¹èÄ¡ ÀÛ¾÷ µîÀº ¼¼¼Çºó ¸Þ¼Òµå ¾È¿¡¼ Äõ¸® ½ÇÇàÀ» ÅëÇØ ±¸ÇöÇÏ´Â °ÍÀ» Áö¾çÇϰí Procedure·Î ó¸®ÇÒ °ÍÀ» ±ÇÇÑ´Ù.
Procedure »ç¿ë½Ã ¾òÀ» ¼ö ÀÖ´Â ÀåÁ¡ Áß Ã¹Â°·Î ²ÅÀ» ¼ö ÀÖ´Â °ÍÀº ¼º´É Çâ»óÀÌ´Ù. º¸Åë Á¶È¸¼º ÇÁ·Î±×·¥Àº 1°³ÀÇ SELECT¹®À» ½ÇÇà½ÃŰ´Â °ÍÀ¸·Î Á¦ ¿ªÇÒÀ» ´Ù ÇϰÚÁö¸¸ ½ÇÁ¦ ¾÷¹« ½Ã½ºÅÛ¿¡´Â Á¶È¸¼º ÇÁ·Î±×·¥¸¸ Á¸ÀçÇÏ´Â °ÍÀÌ ¾Æ´Ï´Ù.
±¸¸Åó¸® ¹× ȸ°èÀüÇ¥¹ßÇà, º¸Çè±Ý ¼ö³³ µî ½ÇÁ¦ ºñÁî´Ï½º ÇÁ·Î¼¼½º¿¡¼ ³»ºÎ Äõ¸®¸¦ ÀÌ¿ëÇØ Á¶È¸Çؿͼ VALIDATION üũ¸¦ Çϱ⵵ Çϰí, INSERT ¶Ç´Â UPDATE¸¦ ¿©·¯ °³ÀÇ Å×ÀÌºí¿¡ ÇÒ ¼öµµ ÀÖ´Ù.
´ÜÀÏ ºñÁî´Ï½º ÇÁ·Î¼¼½º, Áï ÇϳªÀÇ Æ®·£Àè¼Ç¿¡¼ ó¸®ÇØ¾ß ÇÏ´Â ¼¼ºÐÈµÈ ÀÛ¾÷ÀÌ ´Ù¼ö°³ÀÏ °æ¿ì, EXECUTE µÇ´Â Äõ¸®µµ ¿©·¯°³ ÀÏ ¼ö ¹Û¿¡ ¾ø´Ù. ÀÌ ¸Þ¼Òµå¸¦ ÄÝÇÏ´Â REQUEST°¡ ¿©·¯ °³ÀÌ¸é ±×¸¸Å Äõ¸® ½ÇÇ൵ ´Ã¾î³´Ù.
ÀÌ¿¡ ºñÇØ ÇѹøÀÇ ½ÇÇàÀ¸·Î ¼¼ºÐÈµÈ ÀÛ¾÷À» ÁøÇà½ÃŰ´Â Procedure¸¦ ÀÌ¿ëÇÏ¸é »ó´çÇÑ ¼º´ÉÇâ»ó È¿°ú¸¦ º¸°Ô µÉ °ÍÀÌ´Ù.
Procedure »ç¿ëÀÇ µÎ¹øÂ° ÀåÁ¡Àº À¯Áöº¸¼ö°¡ ¼Õ½±´Ù´Â °ÍÀÌ´Ù.
ºñÁî´Ï½º ÇÁ·Î¼¼½º »óÀÇ º¯È³ª ¿À·ù µîÀ¸·Î ÀÎÇØ Procedure¸¦ °íÃÄ¾ß ÇÒ ÀÏÀÌ ¹ß»ýÇÒ ¶§, ÇØ´ç Procedure¸¦ °íÄ¡°í REPLACE ¸í·ÉÀ¸·Î DB¿¡ ´Ù½Ã ÀúÀå½ÃŰ´Â °Í ¸¸À¸·Î ¼öÁ¤ÀÌ ¿Ï·áµÈ´Ù.
Procedure°¡ »ç¿ëÇÏ´Â ÀÎÀÚÀÇ °¹¼ö°¡ º¯°æµÇÁö ¾ÊÀº °æ¿ì¶ó¸é À̸¦ È£ÃâÇÏ´Â ÀÚ¹ÙŬ·¡½º ³»ºÎ ³»¿ëÀº ¼Õ º¼ °ÍÀÌ ¾ø´Ù. ¸¸¾à Procedure·Î ó¸®ÇÏÁö ¾Ê°í ¼¼¼Çºó ¸Þ¼Òµå ¾È¿¡¼ ó¸®Çß´Ù¸é ¾î¶² ÀÏÀÌ µÚµû¸¦±î.
ÀÚ¹Ù ¼Ò½º¸¦ º¯°æ½Ã۰í, ´Ù½Ã ÄÄÆÄÀÏÇØ Ŭ·¡½ºÆÄÀÏÀ» ¼¹ö¿¡ ¾÷·Îµå ÇØ¾ßÇÑ´Ù. ¼¼¼Çºó ¸Þ¼Òµå ³»¿¡¼ º¯°æÀÌ ÀÖ¾ú´Ù¸é ¼¼¼ÇºóŬ·¡½º¸¦ ÄÄÆÄÀÏÇÑ ´ÙÀ½ JAR ÆÄÀÏÀ» ´Ù½Ã ¹¾îÁØ ÈÄ ¾÷·ÎµåÇÑ´Ù.
ÇÏÁö¸¸ WAS¼¹öÀÇ Å¬·¡½º·Î´õ¿¡ ÀÌ¹Ì ÀûÀçµÇ¾îÀÖ´Â º¯°æ Àü Ŭ·¡½º¸¦ º¯°æ ÈÄÀÇ Å¬·¡½º·Î ÂüÁ¶ÇÏ°Ô ÇÏ·Á¸é WAS ¼¹ö¸¦ Àç±âµ¿½ÃŰ´Â ¼ö ¹Û¿¡ ¾ø´Ù. ±×·±µ¥ ½Ã½ºÅÛ WAS¼¹ö¸¦ °³¹ßÀÚ ¸¶À½´ë·Î Àç±âµ¿½Ãų ¼ö ÀÖÀ»±î? ÇöÀç Á¢¼ÓÇÑ »ç¿ëÀÚµéÀÌ ÀÖÀ¸¹Ç·Î ¿©ÀÇÄ¡ ¾ÊÀº ÀÏÀÌ´Ù. Àç±âµ¿ °¡´É ½ÃÁ¡±îÁö ±â´Ù¸± ¼ö ¹Û¿¡ ¾ø´Ù.
ÀÌ·¸°Ô ÀÚ¹Ù¼Ò½º¸¦ º¯°æÇÏ´Â °Í°ú ºñ±³ÇØ º¸¸é Procedure À¯Áöº¸¼ö°¡ ¾ó¸¶³ª °£ÆíÇÑÁö ¾Ë ¼ö ÀÖÀ» °ÍÀÌ´Ù.
¼¼¹øÂ° ÀåÁ¡Àº º¸¾È¼º°ú °ü·ÃµÈ °ÍÀÌ´Ù. ´Ù¸¥ °³¹ßÀÚ³ª À¯Áöº¸¼ö ÀηÂÀº ÇØ´ç ºñÁî´Ï½º ÇÁ·Î¼¼½º°¡ Procedure¸¦ ÄÝÇÏ´Â ÇüÅÂÀÇ ¼¼¼Çºó ¸Þ¼Òµå¸¸ ºÁ¼´Â ¸Þ¼Òµå³»¿¡¼ ¾î¶² ºñÁî´Ï½º ÇÁ·Î¼¼½º°¡ 󸮵ǴÂÁö ¾Ë ¼ö ¾ø´Ù. DB¿¡ Á¢¼ÓÇØ Procedure ³»¿ëÀ» È®ÀÎÇÏ°í ³ª¼¾ß ¾Ë ¼ö ÀÖ´Â °ÍÀÌ´Ù. ºñÁî´Ï½º ÇÁ·Î¼¼½º°¡ DBÂÊ TIER¿¡ ¼û°ÜÁ® ÀÖ´Â ¸ðµâÀÌ º¸¾È¼ºÀÌ ´õ ³ô´Ù°í ¸»ÇÒ ¼ö ÀÖ´Ù.
ÀÌÁ¦ Á÷Á¢ Procedure¸¦ ¸¸µé¾î »ç¿ëÇϵµ·Ï ÇÏÀÚ. ¸¸¾à Procedure¿¡ ÀüÇô °³¹ß °æÇèÀÌ ¾ø´Â »ç¿ëÀÚ¶ó¸é ÀÌ¹Ì ÀÚ¹ÙÄÚµùÀ¸·Î ±¸ÇöµÇ¾îÀÖ´Â ¸ðµâÀ» Procedure·Î ¹Ù²Ù¾î º¸´Â ÀÛ¾÷À» ÇØº¸´Â °Íµµ ÁÁÀ» °ÍÀÌ´Ù.
Procedureµµ ¸í¸í±ÔÄ¢ÀÌ ÀÖ´Ù. °¢Á¾ Æã¼ÇÀ̳ª Procedure µî ÇÁ·ÎÁ§Æ®ÀÇ ´ã´ç DBA°¡ Á¤ÇÏ´Â ¸í¸í±ÔÄ¢ÀÌ ÀÖÀ¸´Ï, ±×°ÍÀ» Âü°íÇØ¼ À̸§À» Á¤ÇÑ´Ù.
ÇÊÀÚÀÇ °æ¿ì¿¡´Â ÀÚ¹Ù±¸¹®À¸·Î µ¥ÀÌÅ͸¦ Çڵ鸵 ÇØ³õÀº ¸Þ¼Òµå¸¦ Procedure·Î ¸ðµÎ °íÄ¡´Â ÀÛ¾÷À» Çϱ⵵ Çϰí(ÀÌ·¯ÇÑ °æ¿ì´Â FULL TEST¸¦ ¹Ýµå½Ã °ÅÄ£ÈÄ ÀÚ¹ÙŬ·¡½º ½ÇÇà½Ã °á°ú¹°°ú ProcedureÀÇ °á°ú¹°ÀÌ °°ÀºÁö È®ÀÎÇÑ´Ù), °³¹ßÇÏ´Â ½ÃÁ¡ºÎÅÍ Procedure¸¦ µµÀÔÇÏ¿© °³¹ßÇϱ⵵ ÇÑ´Ù.
¾Æ·¡¿Í °°Àº °£´ÜÇÑ »ùÇà Procedure¸¦ º¸µµ·Ï ÇÏÀÚ.
| |
CREATE OR REPLACE PROCEDURE PC_TEST (
v_value1 IN VARCHAR2,
v_value2 IN NUMBER,
v_value3 IN VARCHAR2,
v_value4 IN VARCHAR2
) IS
testTableInfo TEST_TABLE%ROWTYPE;
cnt NUMBER;
BEGIN
DBMS_OUTPUT.ENABLE;
/*******************************************************************
TEST_TABLE¸¦ Á¶È¸ÇÑ´Ù.
*******************************************************************/
SELECT *
INTO testTableInfo
FROM TEST_TABLE_01
WHERE
COLUMN_NAME1 = v_value1
AND COLUMN_NAME2 = v_value2;
/*******************************************************************
COLUMN_NAME3°ú COLUMN_NAME4À» UPDATE ÇÑ´Ù
*******************************************************************/
UPDATE TEST_TABLE_01
SET COLUMN_NAME3 = v_value3 , COLUMN_NAME4 = v_value4
WHERE
COLUMN_NAME1 = v_value1
AND COLUMN_NAME2 = v_value2;
/*******************************************************************
TEST_TABLE_02 ¿¡¼ ÇØ´ç ÀÏÀÚ¿¡ Á¤º¸¸¦ Á¶È¸ÈÄ,
ÀÖÀ¸¸é UPDATE, ¾øÀ¸¸é INSERT ÇÑ´Ù.
*******************************************************************/
SELECT COUNT(*) INTO cnt
FROM TEST_TABLE_02
WHERE
COLUMN_NAME01 = testTableInfo.COLUMN_NAME1
AND COLUMN_NAME02 = testTableInfo.COLUMN_NAME2
AND COLUMN_NAME03 = testTableInfo.COLUMN_NAME3
AND COLUMN_NAME04 = testTableInfo.COLUMN_NAME4
AND COLUMN_NAME05 = testTableInfo.COLUMN_NAME5
AND COLUMN_NAME06 = testTableInfo.COLUMN_NAME6;
IF cnt = 0 THEN
INSERT INTO TEST_TABLE_02
(
COLUMN_NAME1,
COLUMN_NAME2,
COLUMN_NAME3,
COLUMN_NAME4,
COLUMN_NAME5,
COLUMN_NAME6,
UPD_DT,
AMT,
WON_AMT
)
VALUES
(
testTableInfo.COLUMN_NAME1,
testTableInfo.COLUMN_NAME2,
testTableInfo.COLUMN_NAME3,
testTableInfo.COLUMN_NAME4,
testTableInfo.COLUMN_NAME5,
testTableInfo.COLUMN_NAME6,
TO_CHAR( SYSDATE , 'YYYYMMDD'),
testTableInfo.AMT,
testTableInfo.WON_AMT
);
/*******************************************************************
ÀÖÀ¸¸é UPDATE .
*******************************************************************/
ELSE
UPDATE TEST_TABLE_02
SET AMT = AMT + testTableInfo.AMT,
WON_AMT = WON_AMT + testTableInfo.WON_AMT
WHERE
COLUMN_NAME1 = testTableInfo.COLUMN_NAME1
AND COLUMN_NAME2 = testTableInfo.COLUMN_NAME2
AND COLUMN_NAME3 = testTableInfo.COLUMN_NAME3
AND COLUMN_NAME4 = testTableInfo.COLUMN_NAME4
AND COLUMN_NAME5 = testTableInfo.COLUMN_NAME5
AND COLUMN_NAME6 = testTableInfo.COLUMN_NAME6;
END IF;
COMMIT;
END;
/ | |
 |
À§ Procedure´Â ÀÚ½ÅÀÌ ¹ÞÀº 4°¡Áö ÀÎÀÚ¸¦ °®°í TEST_TABLE_01 Å×À̺íÀÇ ROW¸¦ °Ë»ö ÈÄ, UPDATE¸¦ Ä¡°í TEST_TABLE_02¿¡ INSERT³ª UPDATE¸¦ ÇÑ´Ù.
º¸´Ù½ÃÇÇ if then/else ±¸¹®À» Ȱ¿ëÇÒ ¼ö ÀÖ´Ù´Â °Í »Ó ¾Æ´Ï¶ó, À§ÀÇ ¿¹½Ã¿¡´Â ¾øÁö¸¸ for ·çÇÁ ±¸¹®µµ »ç¿ëÇÒ ¼ö ÀÖ´Â µî Äõ¸®¿Í ÀýÂ÷Àû ÇÁ·Î±×·¡¹ÖÀ» µ¿½Ã¿¡ ÇÒ ¼ö ÀÖ´Ù´Â °Á¡ÀÌ ÀÖ´Ù.
´ÙÀ½Àº ¸î°¡Áö À¯ÀÇÇÒ Á¡.
ÀÚ¹Ù ÄÚµùÀ» ÇÏ´Ù°¡ Procedure ÄÚµùÀ» ÇÏ°Ô µÇ¸é °¡²û ÁÖ¼®À» "//"·Î Ç¥±âÇÏ´Â ½Ç¼öµµ ÇÏ°Ô µÇ´Âµ¥(¾Æ´Ï¶ó°í ¾Ë°í´Â ÀÖÁö¸¸ ½À°ü ¶§¹®¿¡ ¼ÕÀº ±×·¸°Ô ŸÀÌÇÎÀ» Çϰí ÀÖ´Ù) Procedure ÀÛ¼º½Ã "//"¶ó´Â ÁÖ¼®Ã³¸®´Â Á¸ÀçÇÏÁö ¾ÊÀ¸¸ç, "/* * /"·Î ó¸®ÇØ¾ß ÇÑ´Ù.
¶ÇÇÑ, º¯¼ö ¸í ¾Õ¿¡ "v_" ¸¦ ºÙÀÌ´Â ¸í¸í±ÔÄ¢À» °¡Áö°í °¡´Â °ÍÀÌ ÁÁ´Ù. ÀÚÄ© ¿À¶óŬ ¿¹¾à¾î¸¦ ½Ç¼ö·Î º¯¼ö¸íÀ¸·Î »ç¿ëÇÒ °æ¿ì, ÄÄÆÄÀÏ ¹× ½ÇÇà½Ã¿¡ ¿¡·¯°¡ ¶³¾îÁöÁö´Â ¾ÊÁö¸¸ ½ÇÇà°á°ú°¡ °³¹ßÀÚÀÇ Àǵµ´ë·Î »êÃâµÇÁö ¾Ê°Ô µÇ¹Ç·Î º¯¼ö¸í ¾Õ¿¡ ÀÌ¿Í °°Àº ¹®ÀÚ¸¦ ´Þ¾ÆÁÖ´Â ½À°üÀ» °®´Â°Ô ÁÁ´Ù.
ÀÌÁ¦ À§ÀÇ »ùÇà Procedure¸¦ È£ÃâÇÏ°Ô µÇ´Â È帧ÀÌ ¾îµð¼ºÎÅÍ ½ÃÀ۵ǴÂÁö ¼¼¼Çºó ¸Þ¼ÒµåºÎÅÍ »ìÆìº¸±â·Î ÇÏÀÚ.
| |
public boolean usePcMethod( String v1 , int v2 , String v3 , String v4 )
throws Exception
{
Connection con = null;
boolean yn = false;
try{
con = DBManager.getConnection();
UsePcDB db = new UsePcDB();
yn = db.usePcMethod( con , v1 , v2 , v3 , v4 );
}
catch(Exception e){
throw new Exception(e.getMessage());
}
finally {
try{
DBManager.closeConnection(con);
}catch(Exception sqe){
throw new Exception(sqe.getMessage());
}
}
return yn;
} | |
 |
2ȸ °Á¸¦ º» »ç¶÷À» ¾Ë°ÚÁö¸¸, ¼¼¼Çºó ¸Þ¼Òµå´Â UsePcDB¶ó´Â À̸§ÀÇ DB·¡ÆÛ Ŭ·¡½ºÀÇ ¸Þ¼Òµå¸¦ È£ÃâÇÏ´Â °ÍÀ¸·Î ÀÓ¹«¸¦ ¸¶Ä¡°í ÀÖ´Ù. ±×·¸´Ù¸é UsePcDB Ŭ·¡½ºÀÇ usePcMethod ¸Þ¼Òµå´Â ¾î¶² ³»¿ëÀϱî? ¾Æ·¡ ¼Ò½º¸¦ º¸ÀÚ.
| |
public boolean usePcMethod( Connection con , String v1 , int v2 , String v3 , String v4 )
throws java.sql.SQLException {
CallableStatement cstmt = null;
try {
int index = 1 ;
cstmt = con.prepareCall("{call PC_TEST(?, ?, ?, ?)}");
cstmt.setString(index++, v1);
cstmt.setInt(index++, v2);
cstmt.setString(index++, v3);
cstmt.setString(index++, v4);
cstmt.executeUpdate();
}
finally{
DBManager.closeStatement(cstmt);
}
return true;
} | |
 |
CallableStatement´Â PreparedStatement¸¦ »ó¼Ó¹ÞÀº ÀÎÅÍÆäÀ̽º·Î½á, Procedure¸¦ ½ÇÇà½Ãų¶§ »ç¿ëµÈ´Ù. usePcMethod ¸Þ¼ÒµåÀÇ ¿ªÇÒÀº PC_TEST¶ó´Â À̸§ÀÇ Procedure¸¦ ÄÝÇÏ°í ½ÇÇà½ÃŰ´Â °ÍÀ¸·Î ³¡³´Ù.
¼¼¼ÇºóÀº UsePcDB¶ó´Â Ŭ·¡½º¿¡°Ô ÀÏÀ» ½Ã۰í, UsePcDB¶ó´Â Ŭ·¡½º´Â PC_TEST¶ó´Â Procedure¿¡°Ô ÀÏÀ» ½ÃŲ ¼ÀÀÌ´Ù. ½ÇÁúÀûÀΠ󸮴 ¸ðµÎ PC_TEST Procedure°¡ ÇÏ°Ô µÇ´Â °ÍÀÌ´Ù.
Procedure¸¦ ¼¼¼Çºó¿¡¼ »ç¿ëÇÏ°Ô µÇ´Â ÆÐÅÏÀº À̰ÍÀ¸·Î ´ë·« ¼Ò°³¸¦ ¸¶Ä£´Ù. ÇѰ¡Áö µ¡ºÙÀÏ ¸»Àº Procedure¸¦ À§¿Í °°ÀÌ ÀýÂ÷Àû ÇÁ·Î±×·¡¹ÖÀ» ´ë½ÅÇϱâ À§Çؼ¸¸ »ç¿ëÇÏ´Â °ÍÀº ¸Å¿ì Á¦ÇÑÀûÀΠȰ¿ëÀ̶ó´Â Á¡ÀÌ´Ù. ¼º´É, º¸¾È, À¯Áöº¸¼öÀÇ °£ÆíÇÔÀ̶ó´Â ÀåÁ¡ÀÌ ÀÖÁö¸¸, ÀÚ¹ÙÄÚµùÀ» ´ë½ÅÇÏ´Â µíÇÑ ÀýÂ÷Àû Ȱ¿ë¿¡¸¸ ¸Ó¹°Áö ¸»°í ´ë·®ÀÇ µ¥ÀÌÅ͸¦ Çѹø¿¡ ó¸®ÇÏ´Â ÀÛ¾÷¿¡µµ Ȱ¿ëÇÏ´Â °ÍÀÌ ÁÁ´Ù.
DBMS´Â µ¥ÀÌÅÍ I/O ½Ã ºí·°´ÜÀ§·Î ó¸®Çϰí ÀÖÀ¸¹Ç·Î, ROW Çϳª´ç ÀÛ¾÷À» ó¸®ÇÏ´Â Procedure¸¦ 1¸¸¹ø ÄÝÇÏ´Â ½ÄÀ¸·Î ÀÛ¾÷À» ÇÏ´Â °ÍÀº ºí·°´ÜÀ§ 󸮶ó´Â È¿À²Àû µµ±¸°¡ ÀÖÀ½¿¡µµ ³»¹ö·ÁµÎ°í ÀÖ´Â ¼ÀÀÎ °ÍÀÌ´Ù. 1¸¸°³ÀÇ ROWµç 100¸¸°³ÀÇ ROWµç Àϰý ó¸®ÇÏ°Ô ÇÏ´Â Procedure¸¦ ¸¸µé¾î¼ Ȱ¿ëÇÏ´Â °Ô °¡Àå ÃÖÀûÈµÈ Ã³¸®ÀÏ °ÍÀÌ´Ù.
°¨°¡»ó°¢°è»êµî°ú °°Àº ºñÁî´Ï½º ÇÁ·Î¼¼½º¸¦ ¿¹·Î µé¾îº¸ÀÚ. °¢ ±â¾÷¸¶´Ù ÃëµæÁßÀÎ ¸ðµç ÀÚ»ê ¹°Ç°¿¡ ´ëÇØ ¿¬°á»ê½Ã °¨°¡»ó°¢°è»êÀ» ÇÏ°Ô µÇ´Âµ¥, ´ëºÎºÐ ÇÁ·Î±×·¥¿¡¼´Â °³º° ÀÚ»ê¹øÈ£¸¶´Ù °è»êÀ» ³¡³½ ÈÄ °¨°¡»ó°¢°è»ê Å×ÀÌºí¿¡ INSERT Çϵµ·Ï 󸮸¦ ÇØ³õ°í ÀÖ´Ù.
±×·¯³ª °¨°¡»ó°¢°è»êÀ̶ó´Â ºñÁî´Ï½º ÇÁ·Î¼¼½º°¡ ÀÚ»ê¹øÈ£¸¶´Ù °è»ê¹æ¹ýÀÌ ´Ù¸¥ °ÍÀÌ ¾Æ´Ï°í Á¤·ü¹ý Á¤¾×¹ý µî ¾î¶°ÇÑ °è»ê¹æ¹ýÀ» ÃëÇÒ °ÍÀÎÁö, ÇØ´çÀÚ»êÀÌ ±× ÇØ¿¡ Æó±âµÆ´ÂÁö¿Í °°Àº °è»êÇÒ Á¶°ÇÀÌ ´Ù¸¥ °ÍÀÏ »Ó, ¸ðµç Àڻ꿡 ´ëÇØ¼ °¨°¡»ó°¢ °è»ê¹æ¹ýÀº µ¿ÀÏÇÏ´Ù.
°¢ ±â¾÷¸¶´Ù º¸À¯Çϰí ÀÖ´Â ¹°Ç°ÀÇ ¼ö°¡ Àû°Ô´Â 1000°³¿¡¼ ¸¹°Ô´Â ¸¸ ´ÜÀ§°¡ ³Ñ¾î°¡´Âµ¥, 1°Ç °è»êÇÒ¶§ 0.5Ãʰ¡ °É¸°´Ù ÇØµµ ÀÚ»êÀÌ 1¸¸°ÇÀ̸é 5000Ãʰ¡ ¼Ò¿äµÇ´Â °ÍÀÌ´Ù. ÀÌ·± °æ¿ì¿¡¼´Â °è»êÀÇ ÁÖü°¡ ¼¼¼ÇºóÀÎÁö, ProcedureÀÎÁö°¡ ¹®Á¦µÇ´Â °ÍÀÌ ¾Æ´Ï¶ó, for loop ¹®À» ÀÌ¿ëÇÏ¿© °Çº°·Î °è»ê½ÃŲ´Ù´Â °ÍÀÌ ¹®Á¦´Ù. Procedure¸¦ Çϳª ¸¸µé¾î¼ °¨°¡»ó°¢°è»êÇÒ ¹üÀ§¸¸ ÀÎÀÚ·Î ´øÁ®ÁØ ÈÄ, Àϰý ó¸®Çϵµ·Ï ÇØ¾ß ÇÑ´Ù.
ÀÌó·³ DBÀÇ ºí·°´ÜÀ§ I/O¸¦ Àϰý󸮱â¹ý¿¡ Ȱ¿ëÇÏ´Â °ÍÀÌ °ªºñ½Ñ DBMS¸¦ ¾²´Â ÁøÁ¤ÇÑ ÀÌÀ¯¶ó ÇÒ ¼ö ÀÖ´Ù.
´ÙÀ½ °Á¿¡¼´Â ¿£ÅÍÆ¼ºó ¾øÀÌ ÁøÇàµÇ´Â EJB ÇÁ·ÎÁ§Æ®¿¡¼ À¯¿ëÇÏ°Ô ¾²ÀÌ´Â À¯Æ¿À» ¼Ò°³Çϵµ·Ï ÇϰڴÙ. @