¡åAdvertisement
right event
¡åAdvertisement
¡åAdvertisement
ÀÐÀ»°Å¸® > µðº§·ÎÆÛ Ç÷¯½º

DB2 ¿ÉƼ¸¶ÀÌÀú ¼Ò°³¿Í Åë°èÁ¤º¸ÀÇ ÀÌÇØ

ÀÏ¹Ý »ó¿ë DBMS Áß¿¡¼­ µ¶ÀÚµéÀÌ ¸¹ÀÌ Á¢ÇÏ°Ô µÇ´Â Á¦Ç°Àº Oracle°ú MS SQL Á¤µµ´Ù. ¼­Á¡¿¡¼­ º¼ ¼ö ÀÖ´Â DBMS °ü·Ã ¼­Àûµµ ´ëºÎºÐ À̵鿡 ´ëÇÑ °ÍÀÌ´Ù. ¿©´ãÀ» Çϸé ÇÊÀÚ°¡ óÀ½À¸·Î ÀԻ縦 ÇØ¼­, DBMS ºÐ¾ß¿¡ °ü½ÉÀÌ ÀÖ´Ù°í ÇÏ´Ï ÀÓ¹«·Î DB2 ±â¼úÁö¿øÀÌ ÇÒ´çµÆ´Ù. ±× ´ç½Ã DB2´Â È£½ºÆ®(¸ÞÀÎÇÁ·¹ÀÓ)¿¡ »ç¿ëµÇ´Â ´ëÇü »çÀÌÆ®¸¦ Á¦¿ÜÇÏ°í ¿î¿µµÇ´Â »çÀÌÆ®°¡ ¸¹Áö ¾Ê¾Æ ÈçÈ÷ Á¢ÇÒ ¼ö ÀÖ´Â Á¦Ç°Àº ¾Æ´Ï¾ú´Ù. ÀÔ»çÇϱâ Àü±îÁö DB2¸¦ Á¢Çغ¸Áö ¸øÇßÀ» »Ó´õ·¯ ±× À̸§¸¸ DBMS°³·Ð ¼ö¾÷½Ã°£¿¡ ¾óÇÍ µé¾îºÃÀ» »ÓÀ̾ú´Ù.

¼Û¼ö°­ duck921@hanafos.com£üÇöÀç LIG½Ã½ºÅÛ TAÆÀ ¼Ò¼ÓÀ¸·Î LIG¼ÕÇØº¸Çè DBA ¾÷¹«¸¦ ´ã´çÇϰí ÀÖÀ¸¸ç, ÀÌÀü¿¡´Â ¿©·¯ ÇØ µ¿¾È DB2 ±â¼úÁö¿ø°ú ´Ù¾çÇÑ DB2 ÇÁ·ÎÁ§Æ®ÀÇ DBA ¾÷¹«¸¦ ´ã´çÇÏ¿´´Ù. ¾ÆÁ÷µµ DB2ÀÇ ¿©·¯ ºÎºÐÀ» ÆÄ°íµé¾î¾ß ÇØ¼­ Ç×»ó °í¹ÎÇϰí ÀÖ´Ù.


DB2 ¼Ò°³

DB2´Â ´Ù¾çÇÑ ±Ô¸ð¿Í ´Ù¾çÇÑ OS¸¦ Áö¿øÇÑ´Ù. °³ÀÎ »ç¿ëÀÚ¸¦ À§ÇÑ ÀͽºÇÁ·¹½º ¹öÀüºÎÅÍ ´ë±Ô¸ð ±â¾÷À» À§ÇÑ  ¿£ÅÍÇÁ¶óÀÌÁî ¹öÀü ±×¸®°í µ¥ÀÌÅÍ¿þ¾îÇϿ콺(DW) ¹öÀüÀÌ ÀÖÀ¸¸ç, ¶ÇÇÑ ´Ù¾çÇÑ OS ¸®´ª½º, À©µµ¿ì, À¯´Ð½º(AIX, Solaris, HP-UX)¸¦ Áö¿øÇÑ´Ù. µû¶ó¼­ ¿î¿µµÇ´Â OS Â÷ÀÌ ¶§¹®¿¡ ¹ß»ýÇÏ´Â ºÎºÐÀ» Á¦¿ÜÇϰí´Â ´ëºÎºÐ µ¿ÀÏÇÑ »ç¿ëȯ°æÀ» Á¦°øÇÑ´Ù. 

°ú°Å¿Í ºñ±³ÇÏ¸é °ø°ø, Åë½Å, Á¦Á¶, ±ÝÀ¶ µî ´Ù¾çÇÑ ºÐ¾ß¿¡¼­ »ç¿ëµÇ°í ÀÖÀ¸¸ç ¿î¿µµÇ´Â µ¥ÀÌÅÍÀÇ ¾çµµ ±× ¶§¿Í´Â ºñ±³ÇÒ ¼ö ¾øÀ» ¸¸Å­ Ä¿Á³Áö¸¸, ¾ÆÁ÷µµ ÀÏ¹Ý »ç¿ëÀÚµéÀÌ Âü°íÇÒ ¸¸ÇÑ ¼­ÀûÀ̳ª ÀÚ·áµéÀÌ ¸¹Áö ¾ÊÀº °Íµµ »ç½ÇÀÌ´Ù. 

DB2¿Í °ü·ÃµÈ ¿©·¯ ºÐ¾ß Áß ÇÊÀÚ´Â À̹ø ¿¬À縦 ÅëÇØ DB2 ¿ÉƼ¸¶ÀÌÀú(Optimizer)ÀÇ Æ¯¼º°ú »ç¿ëÀÚ°¡ ¼öÇàÇÏ´Â SQL¹®¿¡ ´ëÇÑ ½ÇÇà°èȹÀ» ¼ö¸³, ¿ÉƼ¸¶ÀÌÀú°¡ »ç¿ëÇÏ´Â Åë°èÁ¤º¸¿¡ ´ëÇÑ ÀÌÇØ¿Í À̸¦ ¹ÙÅÁÀ¸·Î ÇÑ SQL Æ©´×¹æ¹ýÀ» ¼Ò°³ÇϰíÀÚ ÇÑ´Ù. 

DB2 ¿ÉƼ¸¶ÀÌÀú

DB2¿¡¼­ Æ©´×À» Çϱâ À§Çؼ­´Â ¸ÕÀú DB2 ¿ÉƼ¸¶ÀÌÀú¿¡ ´ëÇÑ ÀÌÇØ°¡ ÇÊ¿äÇÏ´Ù. ¿ÉƼ¸¶ÀÌÀú´Â »ç¿ëÀÚ°¡ ½ÇÇàÇÏ´Â SQL¹®ÀÌ ÃÖÀûÀÇ ÀÀ´ä¼Óµµ¸¦ ³¾ ¼ö ÀÖµµ·Ï ¾×¼¼½ºµÇ´Â Å×ÀÌºí ¼ø¼­, »ç¿ëÇÒ À妽º, Á¶ÀÎ ¹æ½ÄÀ» ¼±ÅÃÇØ ÃÖÀûÈ­µÈ ½ÇÇà°èȹÀ» ¸¸µç´Ù.

DBMS ¿ÉƼ¸¶ÀÌÀú´Â ºñ¿ë±â¹Ý(Cost-base)°ú ±ÔÄ¢±â¹Ý(Rule-base)À¸·Î ³ª´²Áø´Ù. ºñ¿ë±â¹Ý ¿ÉƼ¸¶ÀÌÀú´Â °¢°¢ÀÇ ºñ¿ë(ºñ¿ë »êÁ¤¿ä¼Ò´Â CPU, I/O, ¸Þ¸ð¸®, ³×Æ®¿öÅ© µî)À» °è»êÇØ °¡Àå ³·Àº ºñ¿ëÀÇ ½ÇÇà°èȹÀ» ¼¼¿ì´Â °ÍÀ̸ç, ±ÔÄ¢±â¹Ý ¿ÉƼ¸¶ÀÌÀú´Â Á¤ÇØÁø ±ÔÄ¢(°Ë»ö ¹æ½Ä, Á¶ÀÎ ¹æ½Ä, »ç¿ëµÉ À妽ºÀÇ Æ¯¼º, °Ë»ö Á¶°Ç µî)À» ±âÁØÀ¸·Î ½ÇÇà°èȹÀ» ¼¼¿ì´Â °ÍÀÌ´Ù. ´ëºÎºÐÀÇ DBMS´Â ºñ¿ë±â¹Ý ¿ÉƼ¸¶ÀÌÀú¸¦ »ç¿ëÇϰí ÀÖ´Ù. 

ÇÊÀÚ°¡ »ý°¢ÇÏ´Â DB2ÀÇ °¡Àå Å« Ư¡Àº ¿À·£ ±â°£ µ¿¾È(DB2´Â óÀ½ºÎÅÍ ºñ¿ë±â¹Ý ¿ÉƼ¸¶ÀÌÀú¸¦ »ç¿ë)¹ßÀüÇØ¿Â ºñ¿ë±â¹Ý ¿ÉƼ¸¶ÀÌÀúÀÇ ½Å·Ú¼º(Åë°è Á¤º¸°¡ À߸øµÈ °æ¿ì °¡²û ÀǵµÇÏÁö ¾ÊÀº ¾×¼¼½º Ç÷£(Access Plan)À» ¸¸µé±âµµ Çϴµ¥, ÀÌ ³»¿ëÀº ÈÄ¿¡ »ç·Ê¸¦ ÅëÇØ¼­ ¼³¸íÇϵµ·Ï ÇϰڴÙ)°ú Äõ¸® ¸®¶óÀÌÆ®(Query Rewrite)´Ù. Åë°èÁ¤º¸¿¡ ´ëÇÑ ¼³¸í¿¡ ¾Õ¼­ Äõ¸® ¸®¶óÀÌÆ® ±â´ÉÀ» ¼³¸íÇϸé, »ç¿ëÀÚ°¡ ¼öÇàÇÑ SQL¹®¿¡ ´ëÇØ ¿ÉƼ¸¶ÀÌÀú°¡ ÃÖÀûÈ­µÈ ½ÇÇà°èȹÀ» ¸¸µé±â À§ÇÑ ÀÇ¹Ì»ó µ¿ÀÏÇÑ SQL¹®À¸·Î º¯°æ½ÃŰ´Â °ÍÀ» ¸»ÇÑ´Ù. ¸î °¡Áö ¿¹¸¦ µé¸é 

CASE 1. »ç¿ëÀÚ°¡ »ç¿ëÇÒ EMP Å×À̺íÀÇ EMPNO Ä÷³¿¡ uniqueÀ妽º ¶Ç´Â primary key°¡ Á¤ÀÇµÈ °æ¿ì, »ç¿ëÀÚ°¡ À̸¦ ¸ð¸£°í ¾Æ·¡¿Í °°Àº SQL¹®À» ¼öÇàÇÏ¸é ¿ÉÆ¼¸¶ÀÌÀú´Â DISTINCT ¹®À» Á¦°ÅÇØ ºÒÇÊ¿äÇÑ Á¤·ÄÀÛ¾÷À» ¼öÇàÇÏÁö ¾Êµµ·Ï ÇÑ´Ù. ÀÌ´Â ÇÊ¿ä ¾ø´Â ±¸¹®À» Á¦°ÅÇÑ´Ù´Â ¶æ°ú °°´Ù.

- ¿øº» SQL¹®
   SELECT DISTINCT EMPNO, FIRSTNME
   FROM EMP;


- RewriteµÈ SQL¹®
   SELECT EMPNO, FIRSTNME
   FROM EMP;

CASE 2. Á¤ÀǵǾî ÀÖ´Â ºä¿¡ Ãß°¡ÀûÀÎ °Ë»öÁ¶°Ç(predicate)À» »ç¿ëÇÒ °æ¿ì, ÇØ´ç ºä¿¡ ÀÇÇØ »ý¼ºµÈ °á°ú¿¡ Ãß°¡ÀûÀ¸·Î °Ë»öÁ¶°ÇÀ» ¹Ý¿µÇÏ´Â °ÍÀÌ ¾Æ´Ñ ºä¸¦ »ý¼ºÇϴµ¥ Á¤ÀÇµÈ SELECT¹®¿¡ ÇØ´ç °Ë»öÁ¶°ÇÀ» ÇÔ²² »ç¿ëÇØ °á°ú¸¦ ¹ÝȯÇÏ°Ô µÈ´Ù.

- ¿øº»SQL¹®
   CREATE VIEW V_D21_EMP AS
   SELECT *
   FROM EMPLOYEE
   WHERE WORKDEPT = ‘D21’;
 
   SELECT *
   FROM V_D21_EMP
   WHERE EMPNO = ‘000250’;


- RewriteµÈ SQL¹®
   SELECT *
   FROM EMPLOYEE
   WHERE EMPNO = ‘000250’
   AND WEORKDEPT = ‘D21’;

CASE 3. »ç¿ëÀÚ°¡ »ç¿ëÇÑ °Ë»ö Á¶°Ç¿¡ ¼û°ÜÁø Á¶°ÇÀ» Ãß°¡ÇÑ´Ù.

-
¿øº» SQL¹®
   SELECT EMP.EMPNO, EMP.FIRSTNME, DEPT.DEPTNAME
   FROM EMP, DEPT
   WHERE EMP.WORKDEPT = DEPT.DEPTNO
   AND EMP.WORKDEPT = ‘A01’;


- RewriteµÈ SQL¹®
   SELECT EMP.EMPNO, EMP.FIRSTNME, DEPT.DEPTNAME
   FROM EMP, DEPT
   WHERE EMP.WORKDEPT = DEPT.DEPTNO
   AND EMP.WORKDEPT = ‘A01’
   AND DEPT.DEPTNO = ‘A01’;

CASE 4. ¼­ºêÄõ¸®(Subquery)¹®À» Á¶Àι®À¸·Î º¯°æÇÑ´Ù.
- ¿øº» SQL¹®
   SELECT EMPNO, FIRSTNAME
   FROM EMP
   WHERE WORKDEPT IN
        (SELECT DEPTNO
         FROM DEPT
         WHERE DEPTNAME = ‘SALES’);

- RewriteµÈ SQL¹®
   SELECT EMP.EMPNO, EMP.FIRSTNAME
   FROM EMP, DEPT
   WHERE EMP.WORKDEPT = DEPT.DEPTNO
   AND DEPT.DEPTNAME = ‘SALES’;


<±×¸² 1> ¿ÉƼ¸¶ÀÌÀúÀÇ ½ÇÇà°èȹ ¼ö¸³´Ü°è

<±×¸² 1>Àº DB2 ¿ÉƼ¸¶ÀÌÀúÀÇ ½ÇÇà°èȹ ¼ö¸³´Ü°è¸¦ ³ªÅ¸³½ ±×¸²À¸·Î ½ÇÇà°èȹÀ» ¼ö¸³ÇÏ´Â ´Ü°è Áß Äõ¸®¸¦ ´Ù½Ã ¾²´Â ´Ü°è¸¦ °ÅÄ¡¸é¼­ ¿ÉƼ¸¶ÀÌÀú°¡ ÃÖÀûÈ­µÈ ½ÇÇà°èȹÀ» ¼ö¸³Çϱâ À§ÇØ ³»ºÎÀûÀ¸·Î »ç¿ëÀÚ°¡ ¼öÇàÇÑ SQL¹®À» ¼öÁ¤ÇØ ½ÇÇàÇÏ´Â °ÍÀ» ¾Ë ¼ö ÀÖ´Ù.
 
Åë°èÁ¤º¸

¿ÉƼ¸¶ÀÌÀú¸¦ ¼³¸íÇϸç Åë°èÁ¤º¸¸¦ »ç¿ëÇÑ´Ù°í ¾ð±ÞÇߴµ¥ °ú¿¬ ¾î¶² Åë°èÁ¤º¸¸¦ ¾î¶»°Ô »ç¿ëµÇ´ÂÁö ÀÚ¼¼È÷ »ìÆìº¸µµ·Ï ÇÑ´Ù.

DB2¿¡¼­ ¼öÁýµÇ´Â Åë°èÁ¤º¸´Â ½Ã½ºÅÛ Ä«´Þ·Î±× Å×À̺í(DB2ÀÇ ¸ðµç ¿ÀºêÁ§Æ®¿¡ ´ëÇÑ Á¤º¸¸¦ ÀúÀåÇÏ´Â ¸ÞŸµ¥ÀÌÅͷμ­ SYSIBM ½ºÅ°¸¶·Î »ý¼ºµÊ)¿¡ ÀúÀåµÈ´Ù. Åë°èÁ¤º¸´Â Á÷Á¢ Ä«´Þ·Î±× Å×ÀÌºí¿¡¼­ Á¶È¸°¡ °¡´ÉÇÏÁö¸¸, Ä«´Þ·Î±× Å×ÀÌºí¿¡¼­ »ç¿ëÀÚ°¡ ÀÚÁÖ »ç¿ëÇϰí Åë°èÁ¤º¸¿Í °ü·ÃµÈ Ä÷³µé·Î ÀÌ·ïÁø Ä«´Þ·Î±× ºä(SYSCAT ½ºÅ°¸¶·Î »ý¼ºµÊ)¿¡¼­µµ Á¶È¸°¡ °¡´ÉÇÏ´Ù. ±× ³»¿ëÀÌ ¹æ´ëÇÏ¿© ´Ù ´Ù¸¦ ¼ö´Â ¾øÁö¸¸ ÇÊÀÚ°¡ Æ©´×À» ÁøÇàÇÏ´Â µ¿¾È ÀÚÁÖ ÂüÁ¶ÇÏ´Â Ä«´Þ·Î±× ºä¿Í ±×¿¡ ÇØ´çÇÏ´Â Ä÷³ À§ÁÖ·Î ¼³¸íÇÑ´Ù.

   

SYSCAT.TABLES (SYSSTAT.TABLES) ? Å×À̺í°ú °ü·ÃµÈ Á¤º¸
  TABSCHEMA : Å×ÀÌºí½ºÅ°¸¶
  TABNAME : Å×À̺í¸í
  CARD : Å×ÀÌºí °Ç¼ö (¾×¼¼½ºµÉ µ¥ÀÌÅÍ °Ç¼ö ÆÇ´Ü¿¡ ÀÌ¿ë)
  NPAGES : ÇØ´ç Å×ÀÌºí ½ÇÁ¦·Î µ¥ÀÌÅÍ Á¸ÀçÇÏ´Â ¹°¸®Àû ÆäÀÌÁö ¼ö (¾×¼¼½ºµÉ ¹°¸®Àû µ¥ÀÌÅÍ ¾ç ÆÇ´Ü¿¡ ÀÌ¿ë)
  FPAGES : ÇØ´ç Å×ÀÌºí¿¡ ÇÒ´çµÈ ¹°¸®Àû ÆäÀÌÁö ¼ö (¾×¼¼½ºµÉ ¹°¸®Àû µ¥ÀÌÅÍ ¾ç ÆÇ´Ü¿¡ ÀÌ¿ë)
  STATS_TIME : °¡Àå ¸¶Áö¸·À¸·Î Åë°èÁ¤º¸¸¦ °»½ÅÇÑ ½Ã°£ ¼ÒÀÎ
 
SYSCAT.COLUMNS (SYSSTAT.COLUMNS) ? Ä÷³°ú °ü·ÃµÈ Á¤º¸
  TABSCHEMA
  TABNAME
  COLNAME : Ä÷³¸í
  COLCARD : °íÀ¯ÇÑ Ä÷³ °ªÀÇ ¼ö
      Å×ÀÌºí µ¥ÀÌÅͰ¡ 100°Ç À̰í ÁֹιøÈ£ Ä÷³°ú ¼ºº° Ä÷³ÀÌ ÀÖ´Ù°í ÇÒ ¶§, ÁֹιøÈ£ÀÇ °æ¿ì´Â °íÀ¯ÇÑ °ªÀ̹ǷΠ100,¼ºº°ÀÇ °æ¿ì´Â °íÀ¯ÇÑ °ªÀÌ ³², ¿© Áß ÇϳªÀ̹ǷΠ2, COLCARD Á¤º¸¸¦ ÀÌÇØÇϸé ÃßÈÄ À妽º »ý¼º ½Ã ¾î´À Ä÷³À¸·Î ¶Ç´Â ¾î¶² ¼ø¼­·Î À妽º¸¦ »ý¼ºÇÒÁö¿¡ ÆÇ´ÜÇϴµ¥ µµ¿òÀÌ µÈ´Ù.
 
SYSCAT.COLDIST (SYSSTAT.COLDIST) - Ä÷³ µ¥ÀÌÅÍÀÇ ºÐÆ÷µµ Á¤º¸
  TABSCHEMA
  TABNAME
  COLNAME
  TYPE : F ? ºóµµ (Frequency Value)·Î °Ë»ö Á¶°Ç Áß °°°Å³ª °°Áö ¾ÊÀº Á¶°ÇÀ» ÆÇ´ÜÇϴµ¥ »ç¿ë
 Q ? ºÐÀ§¼ö (Quntaile Value)·Î °Ë»ö Á¶°Ç Áß ¹üÀ§ ¶Ç´Â Å©´Ù, ÀÛ´Ù Á¶°ÇÀ» ÆÇ´ÜÇϴµ¥ »ç¿ë
  SEQNO : TYPE ÀÌ FÀÏ °æ¿ì ¹Ýº¹ ºóµµ°¡ ³ôÀº µ¥ÀÌÅͺÎÅÍ ¼ø¹øÀ» ÀǹÌ
          TYPE ÀÌ QÀÏ °æ¿ì Ä÷³ µ¥ÀÌÅÍÀÇ ÃÖ¼Ò°ªºÎÅÍ ÃÖ´ë°ª »çÀÌ ÀÓÀÇ ±¸°£ÀÇ ¼ø¹øÀ» ÀǹÌ
  COLVALUE : ÇØ´ç Ä÷³ÀÇ µ¥ÀÌÅÍ
  VALCOUNT : TYPE ÀÌ FÀÏ °æ¿ì ¹Ýº¹µÇ´Â µ¥ÀÌÅÍÀÇ °Ç¼ö¸¦ ÀǹÌ
    TYPE ÀÌ QÀÏ °æ¿ì ÇØ´ç COLVALUE º¸´Ù À۰ųª °°Àº µ¥ÀÌÅÍÀÇ °Ç¼ö¸¦ ÀǹÌ
  DISTCOUNT : TYPEÀÌ QÀÏ °æ¿ì COLVALUE º¸´Ù À۰ųª °°Àº µ¥ÀÌÅÍÀÇ °íÀ¯ °³¼ö¸¦ ÀǹÌ
 
SYSCAT.INDEXES (SYSSTAT.INDEXES)
  INDSCHEMA : À妽º½ºÅ°¸¶
  INDNAME : À妽º¸í
  COLNAMES : À妽º¿¡ Á¤ÀÇµÈ Ä÷³ ¸ñ·Ï (+ ±âÈ£ : ¿À¸§Â÷¼ø, - ±âÈ£ : ³»¸²Â÷¼ø)
  COLCOUNT : À妽º¿¡ Á¤ÀÇµÈ Ä÷³ °³¼ö
 NLEAF : À妽º ¸®ÇÁ ÆäÀÌÁöÀÇ ¼ö
 NLEVELS : À妽º ·¹º§ÀÇ ¼ö (Æ®¸® ±¸Á¶ÀÎ À妽ºÀÇ ±íÀ̸¦ ÀǹÌ)
 FIRSTKEYCARD : À妽º ù¹øÂ° Ä÷³À¸·Î °íÀ¯ÇÑ °ªÀÇ °³¼ö
 FIRST2KEYCARD : À妽º ù¹øÂ°ºÎÅÍ µÎ¹øÂ° Ä÷³À¸·Î °íÀ¯ÇÑ °ªÀÇ °³¼ö
 FIRST3KEYCARD : À妽º ù¹øÂ°ºÎÅÍ ¼¼¹øÂ° Ä÷³À¸·Î °íÀ¯ÇÑ °ªÀÇ °³¼ö
 FIRST4KEYCARD : À妽º ù¹øÂ°ºÎÅÍ ³×¹øÂ° Ä÷³À¸·Î °íÀ¯ÇÑ °ªÀÇ °³¼ö
 FULLKEYCARD : À妽º Àüü Ä÷³À¸·Î °íÀ¯ °ªÀÇ °³¼ö
 CLUSTERRATIO(CLUSTERFACTOR) : µ¥ÀÌÅÍ Å¬·¯½ºÅÍ ºñÀ²(ÇØ´ç À妽º ¼ø¼­´ë·Î ½ÇÁ¦ µ¥ÀÌÅͰ¡ Á¤·ÄµÇ¾î ÀÖ´Â ºñÀ²)
  INDCARD : À妽º Ä«µð³Ú¸®Æ¼ (´ëºÎºÐ µ¥ÀÌÅÍ °Ç¼ö¿Í µ¿ÀÏ)

<¸®½ºÆ® 1> ¸¹ÀÌ »ç¿ëÇÏ´Â Ä«´Þ·Î±× ºä¿Í ÇØ´ç Ä÷³

ºÐÆ÷µµ Á¤º¸¸¦ ÀÌÇØÇϱâ À§ÇØ °£´ÜÇÑ ¿¹¸¦ ÅëÇØ È®ÀÎÇØ º¸ÀÚ. EMP Å×À̺íÀÇ µ¥ÀÌÅÍ´Â Àüü 100°ÇÀ̸ç, Ä÷³ µ¥ÀÌÅÍ·Î ±¸¼ºµÇ¾î ÀÖ´Ù.

 »ç¹ø : 1 ~ 100 (°íÀ¯ÇÑ ¿¬¹ø)
  À̸§ : ´ëºÎºÐ °íÀ¯ Çϳª ÀϺΠµ¿¸íÀÌÀÎ Á¸Àç (¹ÚÂùÈ£-3, ÇÑ¿¹½½-5)
 Áö¿ª : ¼­¿ï, ÀÎõ, ´ëÀü, ´ë±¸, ¿ï»ê, ºÎ»ê, ±¤ÁÖ, °æ±â, °­¿ø, Àü³², ÀüºÏ, °æºÏ, °æ³², ÃæºÏ, Ãæ³², Á¦ÁÖ
 ¼ºº° : ³², ³à
 ÈÞ´ëÆù¹øÈ£ : °íÀ¯°ª ¶Ç´Â NULL
 ÀÔ»çÀÏ - 2009.01.01 ~ 2009.01.31

<¸®½ºÆ® 2> ºÐÆ÷µµ Á¤º¸ ÀÌÇØ¸¦ À§ÇÑ ¿¹Á¦

 

À妽º¸¦ »ý¼ºÇß´Ù.

CREATE INDEX IDX1 ON EMP (»ç¹ø);
 CREATE INDEX IDX2 ON EMP (À̸§);
 CREATE INDEX IDX3 ON EMP (Áö¿ª, À̸§);
 CREATE INDEX IDX4 ON EMP (¼ºº°, ÀÔ»çÀÏ, Áö¿ª);

<¸®½ºÆ® 3> ¿¹Á¦¿¡¼­ µµÃâµÈ À妽º

 

ÀÌÁ¦ Åë°èÁ¤º¸¸¦ ¼öÁýÇØ º¸ÀÚ. DB2¿¡¼­ Åë°èÁ¤º¸¸¦ ¼öÁýÇÏ´Â ¸í·ÉÀº RUNSTATSÀ̸ç, ´Ù¾çÇÑ ¿É¼ÇÀÌ Àִµ¥ °¡Àå ÈçÈ÷ »ç¿ëÇÏ´Â ¿É¼ÇÀº ´ÙÀ½°ú °°´Ù.

- ºÐÆ÷µµ Á¤º¸ ¾øÀÌ µ¥ÀÌÅÍ¿Í À妽ºÀÇ Åë°èÁ¤º¸ ¼öÁý

   RUNSTATS ON TABLE DB2V95.EMP AND INDEXES ALL;
   (Âü°í·Î DB2´Â ±âº»ÀûÀ¸·Î ÇØ´ç µ¥ÀÌÅͺ£À̽º¿¡ Á¢¼ÓÇÑ »ç¿ëÀÚ °èÁ¤ÀÌ ½ºÅ°¸¶¸íÀ¸·Î »ç¿ëµÇ³ª »ç¿ëÀÚ °èÁ¤°ú ´Ù¸¥ º°µµÀÇ ½ºÅ°¸¶¸íÀ» »ý¼ºÇÒ ¼öµµ ÀÖ´Ù. ¾ÕÀ¸·Î »ç¿ëµÇ´Â ¿¹Á¦ ¿ÀºêÁ§Æ®µéÀÇ ½ºÅ°¸¶¸íÀº DB2V95 À̸ç, Åë°èÁ¤º¸ ¼öÁý ½Ã¿¡´Â ¹Ýµå½Ã ½ºÅ°¸¶¸í. Å×À̺í¸íÀ¸·Î ±â¼úÇØ¾ß ÇÑ´Ù.)


- À妽º·Î Á¤ÀÇµÈ Ä÷³ÀÇ ºÐÆ÷µµ Á¤º¸¸¦ Æ÷ÇÔÇØ µ¥ÀÌÅÍ¿Í À妽ºÀÇ Åë°èÁ¤º¸ ¼öÁý

  RUNSTATS ON TABLE DB2V95.EMP AND WITH DISTIRIBUTION ON KEY COLUMNS AND INDEXES ALL;

Åë°èÁ¤º¸ ¼öÁý ÈÄ À§¿¡¼­ ¼³¸íÇÑ °¢°¢ÀÇ Ä«´Þ·Î±× ºäÀÇ ½ÇÁ¦ µ¥ÀÌÅ͸¦ Á¶È¸ÇØ º¸¸é <¸®½ºÆ® 4>¿Í °°Àº °á°ú¸¦ ¾ò´Â´Ù.

SELECT TABNAME, CARD, NPAGES, FPAGES, STATS_TIME
FROM SYSCAT.TABLES
WHERE TABNAME = 'EMP';
 
TABNAME    CARD      NPAGES    FPAGES    STATS_TIME                
---------- --------- --------- ---------  ---------
EMP        100       2         2         2010-05-21-20.42.32.995201

<¸®½ºÆ® 4> Ä«´Þ·Î±× ºäÀÇ ½ÇÁ¦ µ¥ÀÌÅÍ Á¶È¸°á°ú

 

<¸®½ºÆ® 4>¸¦ ÅëÇØ Àüü°Ç¼ö´Â 100°ÇÀÌ°í ¹°¸®ÀûÀ¸·Î 2 ÆäÀÌÁö¸¦ »ç¿ëÇϸç 2010 -05-15¿¡ Åë°èÁ¤º¸ °»½ÅÇßÀ½À» ¾Ë ¼ö ÀÖ´Ù.

SELECT SUBSTR(COLNAME, 1, 10) COLNAME, COLCARD
FROM SYSCAT.COLUMNS
WHERE TABNAME = 'EMP'
ORDER BY COLNO;
 
COLNAME               COLCARD     
--------------------- -------------
»ç¹ø                    100         
À̸§                    94          
Áö¿ª                    16          
¼ºº°                    2           
ÈÞ´ëÆù¹øÈ£               100         
ÀÔ»çÀÏ                  29     

<¸®½ºÆ® 5> ¿¹Á¦¿¡¼­ µµÃâµÈ COLCARD

COLCARD´Â ÇØ´ç Ä÷³ µ¥ÀÌÅÍ Áß °íÀ¯ÇÑ °ªÀÇ °³¼ö¸¦ ÀǹÌÇÑ´Ù. Àüü µ¥ÀÌÅÍ 100°Ç Áß »ç¹ø°ú ÈÞ´ëÆù ¹øÈ£´Â °¢ »ç¿øº°·Î °íÀ¯ÇϹǷΠ100ÀÌ µÇ°í, ¼ºº°Àº ³²¿© 2°¡ÁöÀ̹ǷΠ°íÀ¯°ªÀÇ °³¼ö°¡ 2°¡ µÈ´Ù. À̸§Àº µ¿¸íÀÌÀÎ(¹ÚÂùÈ£-3, ÇÑ¿¹½½-5)¸¦ Æ÷ÇÔÇØ °íÀ¯°ª °³¼ö°¡ 92´Ù. Áß¿äÇÑ °ÍÀº ÀÌ µ¥ÀÌÅ͸¦ Àß ÀÌÇØÇϸé ÃßÈÄ À妽º¸¦ Ãß°¡ÇÒ ¶§ ¾î¶² Ä÷³ÀÇ Á¾·ù¿Í ¼ø¼­·Î À妽º¸¦ »ý¼ºÇÒÁö ÆÇ´ÜÇϴµ¥ µµ¿òÀÌ µÈ´Ù(<¸®½ºÆ® 5> ÂüÁ¶).

IDX1 À妽º´Â »ç¹ø Ä÷³À¸·Î µÈ À妽º·Î, ù¹øÂ° Ä÷³¿¡ ÇØ´çÇÏ´Â °íÀ¯°ª °³¼öÀÎ FIRSTKEYCARD°ªÀÌ 100ÀÌ´Ù. µû¶ó¼­ ÀÌ Ä÷³À» °Ë»öÁ¶°ÇÀ¸·Î »ç¿ëÇÏ¸é ´ëºÎºÐÀÇ µ¥ÀÌÅͰ¡ ÇÊÅ͸µ µÅ ¾×¼¼½º µ¥ÀÌÅ;çÀÌ ÁÙ¾îµç´Ù. ±×·¯³ª IDX4 À妽º´Â ¼ºº°, ÀÔ»çÀÏ, Áö¿ª Ä÷³ ¼øÀ¸·Î µÈ À妽º·Î, ù ¹øÂ° Ä÷³¿¡ ÇØ´çÇÏ´Â ¼ºº°ÀÇ °íÀ¯°ª °³¼öÀÎ FIRSTKEYCARD°ªÀÌ 2´Ù. µû¶ó¼­ ÀÌ Ä÷³À» °Ë»ö Á¶°ÇÀ¸·Î »ç¿ëÇϸé ÇÊÅ͸µ ºñÀ²ÀÌ ³·¾Æ ¾×¼¼½º µ¥ÀÌÅ;çÀÌ ´Ã¾î³­´Ù. ÇÑÆí À妽ºÀÇ Ã¹ ¹øÂ°¿Í µÎ ¹øÂ° Ä÷³Àº °íÀ¯°ª °³¼öÀÎ FIRST2KEYCARD°ªÀÌ 49·Î, °Ë»ö Á¶°ÇÀ¸·Î ¼ºº°°ú ÀÔ»çÀÏÀ» ÇÔ²² »ç¿ëÇÒ °æ¿ì ÇÊÅ͸µ ºñÀ²ÀÌ »ó½ÂÇØ ¾×¼¼½º µÇ´Â ¾çÀÌ ÁÙ¾îµç´Ù(<¸®½ºÆ® 6> ÂüÁ¶).

SELECT SUBSTR(INDNAME, 1, 10) INDNAME, CLUSTERRATIO, NLEVELS, NLEAF,
       FIRSTKEYCARD  F_CARD,
       FIRST2KEYCARD F2_CARD,
       FIRST3KEYCARD F3_CARD,
       FIRST4KEYCARD F4_CARD,
       FULLKEYCARD   FULL_CARD, 
       NDCARD
FROMSYSCAT.INDEXES
WHERETABNAME='EMP'
ORDERBYINDNAME;
INDNAME    CLUSTERRATIO NLEVELS NLEAF  FIRSTKEYCARD  FIRST2KEYCARD  FIRST3KEYCARD FIRST4KEYCARD  FULLKEYCARD  INDCARD
----------------------------------------------------------
IDX1       100          1       1      100           -1             -1            -1             100          100    
IDX2       100          1       1      94            -1             -1            -1             94           100    
IDX3       100          1       1      16            98             -1            -1             98           100    
IDX4       100          1       1      2             49             93            -1             93           100

<¸®½ºÆ® 6> ¿¹Á¦ÀÇ ÃÖÁ¾ SQL¹®

ClusterRatio´Â ÇØ´ç À妽º ¼ø¼­´ë·Î ½ÇÁ¦ ¹°¸®Àû µ¥ÀÌÅÍ ÆäÀÌÁö°¡ Á¤·ÄµÈ ºñÀ²·Î, <±×¸² 2>¿¡¼­ º¸´Â ¹Ù¿Í °°ÀÌ 100% °¡±î¿ï¼ö·Ï µ¥ÀÌÅÍ Á¤·ÄºñÀ²Àº ³ô´Ù. ±×·¯³ª ¾Õ¼± ¿¹½Ã´Â µ¥ÀÌÅ;çÀÌ ¸¹Áö ¾Ê¾Æ ¸ðµÎ 100%·Î ³ªÅ¸³µÀ» »Ó ½ÇÁ¦ ¿î¿µ µ¥ÀÌÅÍ¿¡¼­ ÀÌ·± °æ¿ì´Â ¾Æ½±°Ôµµ °ÅÀÇ ¾ø´Ù. Ŭ·¯½ºÅÍ ºñÀ²ÀÌ ³ô°Å³ª ¹üÀ§°Ë»ö ¶Ç´Â ÇØ´ç À妽º¸¦ »ç¿ëÇØÀÐÀ» µ¥ÀÌÅ;çÀÌ ¸¹À» °æ¿ì ¶Ç´Â µ¥ÀÌÅͰ¡ ¹°¸®ÀûÀ¸·Î Á¤·ÄµÅ ¸ð¿© ÀÖÀ» ¶§ ¾×¼¼½ºµÇ´Â µ¥ÀÌÅ;çÀÌ ÁÙ¾îµé¾î ¼º´ÉÀÌ Çâ»óµÈ´Ù. 
<±×¸² 2>Ŭ·¯½ºÅÍ ·¹ÀÌÅä À妽º¿Í Å×ÀÌºí µ¥ÀÌÅÍÀÇ »ó°ü°ü°è

Åë°èÁ¤º¸ ¼öÁý ½Ã ºÐÆ÷µµ ¼öÁý¿É¼Ç(RUNSTATS ¸í·ÉÀÇ WITH DISTRIBUTION ±¸¹®)À» »ç¿ëÇÏ´Â °æ¿ì¿¡¸¸ ºÐÆ÷µµ Á¤º¸°¡ ¼öÁýµÅ ¾Æ·¡ SQL¹®À¸·Î Á¶È¸°¡ °¡´ÉÇÏ´Ù.

   SELECT SUBSTR(COLNAME, 1, 10) COLNAME, TYPE, SEQNO,
   SUBSTR(COLVALUE, 1, 15) COLVALUE, VALCOUNT, DISTCOUNT
   FROM SYSCAT.COLDIST
   WHERE TABNAME = 'EMP'
   ORDER BY COLNAME, TYPE, SEQNO;

<¸®½ºÆ® 7> Åë°èÁ¤º¸ ¼öÁýÁ¶È¸¸¦ À§ÇÑ SQL¹®

DB2´Â µ¥ÀÌÅͺ£À̽º ¼³Á¤°ú °ü·ÃµÈ µ¥ÀÌÅͺ£À̽º ÆÄ¶ó¹ÌÅÍ(DB CFG)°¡ ÀÖÀ¸¸ç, Åë°èÁ¤º¸¼öÁý°ú °ü·ÃµÈ ÆÄ¶ó¹ÌÅÍ Áß NUM_FREQVALUES(Frequency Value)´Â 10, NUM_QUANTILES(Quantile Value)´Â 20À¸·Î °¢°¢ ¼³Á¤µÅÀÖ´Ù. À̰ÍÀº ÇØ´ç Ä÷³ÀÇ µ¥ÀÌÅÍ Áß ÃÖ»óºóµµ µ¥ÀÌÅÍ 10°³¿Í ÃÖ¼Ò°ª°ú ÃÖ´ë°ªÀ» ÀÓÀÇÀÇ 20°³ ±¸°£À¸·Î ³ª´©°í °¢ ±¸°£ º°·Î ´©Àû°Ç¼ö¸¦ ¼öÁýÇÑ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù.

RUNSTATS ¼öÇà ½Ã ºÐÆ÷µµ Á¤º¸¸¦ ¼öÁýÇϸ鼭 ¿É¼ÇÀ» ÁöÁ¤Çϸé ÇØ´ç ¿É¼ÇÀÌ »ç¿ëµÇÁö¸¸, º°µµ¿É¼ÇÀ» »ç¿ëÇÏÁö ¾ÊÀ¸¸é ºÐÆ÷µµ ¼öÁý°ú °ü·ÃµÈ DB CFG¿¡ ¼³Á¤µÈ °ªÀÌ »ç¿ëµÈ´Ù. <¸®½ºÆ® 8>ÀÇ °á°ú¸¦ »ìÆìº¸¸é(°á°ú °Ç¼ö°¡ ¸¹¾Æ ÀϺΠµ¥ÀÌÅÍ´Â Á¦¿ÜÇÏ¿´À¸¸ç, Ä«´Þ·Î±× µ¥ÀÌÅÍ¿¡¼­ -1Àº Á¤º¸¸¦ ¼öÁýÇÏÁö ¾Ê¾ÒÀ½À» ÀǹÌÇÑ´Ù), °¢ Ä÷³ º°·Î TYPE F´Â 10°³(SEQNO 1~10), TYPE Q´Â 20°³(SEQNO 1~20)¸¦ ¼öÁýÇß´Ù. ¸ðµç µ¥ÀÌÅÍ´Â °íÀ¯ÇÑ »ç¹ø°ú À̸§ Áß Áߺ¹ µ¥ÀÌÅͰ¡ ÀÖ´Â ¹ÚÂùÈ£(3)¿Í ÇÑ¿¹½½(2)À» Á¦¿ÜÇÏ°í µ¥ÀÌÅ͸¦ ¼öÁýÇÏÁö ¾Ê¾Æ COLVALUE´Â NULL, VAL COUNT´Â -1ÀÌ µÆ´Ù. À̸§ Ä÷³ÀÇ TYPE Q µ¥ÀÌÅ͸¦ º¸¸é, À̸§ÀÌ ‘ÇÑ¿¹½½’ º¸´Ù °°°Å³ª ÀÛÀº µ¥ÀÌÅÍÀÇ ¼ö´Â 99(VAL COUNT)À̸ç ÀÌÁß À¯ÀÏÇÑ µ¥ÀÌÅÍÀÇ ¼ö´Â 93(COLCOUNT)ÀÌ´Ù. ÀÔ»çÀÏ Ä÷³ÀÇ TYPE F µ¥ÀÌÅ͸¦ º¸¸é ¹Ýº¹ºóµµ°¡ ³ôÀº »óÀ§ 10°³ µ¥ÀÌÅÍ Áß Ã¹ ¹øÂ°´Â ‘2010-01-21’·Î 9À̸ç, ¿­¹øÂ°´Â ‘2010-01-11’·Î 3ÀÌ´Ù. 

¸¸¾à RUNSTATS ¸í·É ¼öÇà ½Ã NUM_FREQVALUES ¿É¼ÇÀ» 10º¸´Ù Å« °ªÀ¸·Î ÁöÁ¤ÇÏ¸é ´ÙÀ½ ºóµµÀÇ µ¥ÀÌÅ͵éÀÌ Ãß°¡¼öÁý µÈ´Ù. TYPE Q µ¥ÀÌÅ͸¦ º¸¸é ÀÔ»çÀÏÀÌ ‘2010-01-02’º¸´Ù °°°Å³ª ÀÛÀº µ¥ÀÌÅÍ´Â 2¸ç, ÀÔ»çÀÏÀÌ ‘2010-01-04’ º¸´Ù °°°Å³ª ÀÛÀº µ¥ÀÌÅÍ´Â ÀÌÀü ±¸°£ µ¥ÀÌÅÍ 2°ÇÀ» Æ÷ÇÔÇÑ ÃÑ 7°ÇÀÌ´Ù.

 COLNAME    TYPE SEQNO   COLVALUE        VALCOUNT   DISTCOUNT

--------------------------------------------------------
   »ç¹ø       F    1                       -1                  
                          <Áß·«>                               
   »ç¹ø       F    10                      -1                  
   »ç¹ø       Q    1       1               1          1        
                          <Áß·«>                               
   ¼ºº°       Q    20      100             100        100      
   ¼ºº°       F    1       '³²'            85                  
   ¼ºº°       F    2       '¿©'            15                  
   ¼ºº°       F    3                       -1                  
                          <Áß·«>                               
   À̸§       F    1       'ÇÑ¿¹½½ '       5                   
   À̸§       F    2       '¹ÚÂùÈ£ '       3                   
   À̸§       F    3                       -1                  
                          <Áß·«>                               
   À̸§       Q    1      '°­±âÁ¤ '        1         1         
   À̸§       Q    2      '°­¿ë¼® '        5         5         
                          <Áß·«>
   À̸§       Q    19     'ÇÑ¿¹½½ '        99       93         
   À̸§       Q    20     'È«Á¤¿í '       100       94         
                          <Áß·«>                               
   ÀÔ»çÀÏ     F    1       '2010-01-21'    9                   
   ÀÔ»çÀÏ     F    2       '2010-01-27'    7                   
   ÀÔ»çÀÏ     F    3       '2010-01-20'    7                   
                          <Áß·«>                               
   ÀÔ»çÀÏ     F    10      '2010-01-11'    3                   
   ÀÔ»çÀÏ     Q    1       '2010-01-02'    1                   
   ÀÔ»çÀÏ     Q    2       '2010-01-04'    7                   
                          <Áß·«>                               
   ÀÔ»çÀÏ     Q    19      '2010-01-29'    95                  
   ÀÔ»çÀÏ     Q    20      '2010-01-31'    100     

<¸®½ºÆ® 8> RUNSTATS ¼öÇàÀ» ÅëÇØ ¼öÁýµÈ ºÐÆ÷µµ Á¤º¸ 

¼³¸íÇÑ Åë°èÁ¤º¸°¡ ÀÌÇØµÆ´Ù¸é DB2 ¿ÉƼ¸¶ÀÌÀú°¡ Åë°èÁ¤º¸¸¦ ¾î¶»°Ô »ç¿ëÇÏ´ÂÁö ¿¹¸¦ ÅëÇØ ¾Ë¾Æº¸ÀÚ.

   SELECT *
   FROM EMP
   WHERE »ç¹ø = 10;

°Ë»öÁ¶°Ç¿¡ = °¡ »ç¿ëµÆ´Ù. ºÐÆ÷µµ Á¤º¸ Áß TYPEÀÌ FÀÎ °ªµéÀÌ ÀÌ¿ëµÇ¸ç, ÇØ´ç Ä÷³¿¡ Áߺ¹µÈ µ¥ÀÌÅͰ¡ ¾ø¾î VAL COUNT¸¦ ¼öÁýÇÏÁö ¾Ê¾ÒÀ¸¹Ç·Î ¿ÉƼ¸¶ÀÌÀú´Â ÀÌ SQL¹®ÀÇ ¼öÇà°á°ú·Î 1°ÇÀÌ ¹ÝȯµÈ´Ù°í ¿¹»óÇÑ´Ù(½ÇÁ¦´Â 9°ÇÀ̸ç, DB2´Â 8°ÇÀÇ µ¥ÀÌÅͰ¡ ¹ÝȯµÈ´Ù°í ¿¹»óÇÑ´Ù).

   SELECT *
   FROM EMP
   WHERE À̸§ = ¹ÚÂùÈ£;

°Ë»öÁ¶°Ç¿¡ = °¡ »ç¿ëµÆ´Ù. ºÐÆ÷µµ Á¤º¸ Áß TYPEÀÌ FÀÎ °ªµéÀÌ ÀÌ¿ëµÇ¸ç, ºÐÆ÷µµ Á¤º¸¿¡¼­ À̸§ÀÌ ‘¹ÚÂùÈ£’ÀÎ VALCOUNT°¡ 3ÀÎ Á¤º¸°¡ ÀÖ¾î ¿ÉÆ¼¸¶ÀÌÀú´Â ÀÌ SQL¹®ÀÇ ¼öÇà°á°ú·Î 3°ÇÀÌ ¹ÝȯµÈ´Ù°í ¿¹»óÇÑ´Ù(½ÇÁ¦´Â 3°ÇÀ̸ç, DB2´Â 3°ÇÀÇ µ¥ÀÌÅͰ¡ ¹ÝȯµÈ´Ù°í ¿¹»óÇÑ´Ù).

   SELECT *
   FROM EMP
   WHERE À̸§ <= ‘°­¿ë¼®’;

°Ë»öÁ¶°Ç¿¡ ¹üÀ§°¡ »ç¿ëµÆÀ¸¹Ç·Î ºÐÆ÷µµ Á¤º¸ Áß TYPEÀÌ QÀÎ °ªµéÀ» ÀÌ¿ëÇÑ´Ù. ºÐÆ÷µµ Á¤º¸¿¡¼­ À̸§ÀÌ ‘°­¿ë¼®’º¸´Ù À۰ųª °°Àº VALCOUNT°¡ 5ÀÎ Á¤º¸°¡ ÀÖ°í, ÇØ´ç ±¸°£¿¡¼­ °íÀ¯°Ç¼ö¸¦ ÀǹÌÇÏ´Â DISCOUNT°¡ 5À̹ǷΠ¿ÉƼ¸¶ÀÌÀú´Â ÀÌ SQL¹®ÀÇ ¼öÇà°á°ú·Î 5°ÇÀÌ ¹ÝȯµÈ´Ù°í ¿¹»óÇÑ´Ù(½ÇÁ¦´Â 5°ÇÀ̸ç, DB2´Â 5°ÇÀÇ µ¥ÀÌÅͰ¡ ¹ÝȯµÈ´Ù°í ¿¹»óÇÑ´Ù).

   SELECT *
   FROM EMP
   WHERE ÀÔ»çÀÏ <= ‘2010-01-04’

°Ë»öÁ¶°Ç¿¡ ¹üÀ§°¡ »ç¿ëµÇ¾úÀ¸¹Ç·Î ºÐÆ÷µµ Á¤º¸ Áß TYPEÀÌ QÀÎ °ªµéÀ» ÀÌ¿ëÇÑ´Ù. ºÐÆ÷µµ Á¤º¸¿¡¼­ ÀÔ»çÀÏÀÌ ‘2010-01-04’º¸´Ù À۰ųª °°Àº VALCOUNT°¡ 7ÀÎ Á¤º¸°¡ ÀÖ°í DISCOUNT´Â ¼öÁýÀÌ µÇÁö ¾Ê¾Ò´Ù. ÇØ´ç ±¸°£¿¡ Áߺ¹ µ¥ÀÌÅͰ¡ Á¸ÀçÇÑ´Ù´Â ÀǹÌÀ̹ǷΠ¿ÉƼ¸¶ÀÌÀú´Â ÀÌ SQL¹®ÀÇ ¼öÇà°á°ú·Î ¾à 7°Ç ÀÌ»óÀÇ µ¥ÀÌÅͰ¡ ¹ÝȯµÈ´Ù°í ¿¹»óÇÑ´Ù(½ÇÁ¦´Â 9°ÇÀ̸ç, DB2´Â 8°ÇÀÇ µ¥ÀÌÅͰ¡ ¹ÝȯÇÑ´Ù°í ¿¹»óÇÑ´Ù).

   SELECT *
   FROM EMP
   WHERE ÀÔ»çÀÏ BETWEEN ‘2010-01-04’ AND ‘2010-01-30’;

°Ë»öÁ¶°Ç¿¡ ¹üÀ§°¡ »ç¿ëµÇ¾úÀ¸¹Ç·Î ºÐÆ÷µµ Á¤º¸ Áß TYPEÀÌ QÀÎ °ªµéÀ» ÀÌ¿ëÇÑ´Ù. ºÐÆ÷µµ Á¤º¸¿¡¼­ ÀÔ»çÀÏÀÌ ‘2010-01-29’º¸´Ù À۰ųª °°Àº VALCOUNT°¡ 95ÀÎ Á¤º¸°¡ ÀÖ°í ‘2010-01-04’º¸´Ù À۰ųª °°Àº VALCOUNT°¡ 7À̸ç, DISCOUNT´Â ¼öÁýÀÌ µÇÁö ¾Ê¾Ò´Ù.  ÇØ´ç±¸°£¿¡ Áߺ¹ µ¥ÀÌÅͰ¡ Á¸ÀçÇÑ´Ù´Â ÀǹÌÀ̹ǷΠ¿ÉƼ¸¶ÀÌÀú´Â ÀÌ SQL¹®ÀÇ ¼öÇà°á°ú·Î ¾à 87°Ç ÀÌ»óÀÇ µ¥ÀÌÅͰ¡ ¹ÝȯµÈ´Ù°í ¿¹»óÇÑ´Ù(½ÇÁ¦´Â 93°ÇÀ̸ç, DB2´Â ¾à 94°ÇÀÇ µ¥ÀÌÅͰ¡ ¹ÝȯµÈ´Ù°í ¿¹»óÇÑ´Ù).

   SELECT *
   FROM EMP
   WHERE ¼ºº° = ‘³²ÀÚ’;

À§¿Í °°Àº SQL¹®ÀÌ ¼öÇàµÉ ¶§ ºÐÆ÷µµ Á¤º¸°¡ ÀÖ´Ù¸é ¿ÉÆ¼¸¶ÀÌÀú´Â 85°ÇÀÇ µ¥ÀÌÅͰ¡ ¹ÝȯÇÑ´Ù°í ¿¹»óÇÒ °ÍÀÌ´Ù. ±×·¯³ª ºÐÆ÷µµ Á¤º¸°¡ ¾ø´Ù¸é À̸¦ ÆÇ´ÜÇÒ ¼ö ¾øÀ¸¹Ç·Î Å×À̺íÀÇ CARD¼ö´Â 100À̰í, ¼ºº° Ä÷³ÀÇ COLCARD´Â 2À̹ǷΠ¹ÝȯµÇ´Â Çà¼ö´Â 100/2ÀÎ 50À̶ó°í ÆÇ´ÜÇÑ´Ù. ÀÌ °æ¿ì Á¶°ÇÀÌ ³²ÀÚÀÌ¸é ½ÇÁ¦ µ¥ÀÌÅͺ¸´Ù ´õ ÀûÀº ¼öÀÇ µ¥ÀÌÅͰ¡ ¹ÝȯµÈ´Ù°í ÆÇ´ÜÇϸç, Á¶°ÇÀÌ ¿©ÀÚÀÏ °æ¿ì ½ÇÁ¦ µ¥ÀÌÅͺ¸´Ù ´õ ¸¹Àº ¼öÀÇ µ¥ÀÌÅͰ¡ ¹ÝȯµÈ´Ù°í ÆÇ´ÜÇÑ´Ù.

´ÙÀ½ È£¿¡¼­´Â DB2´Â »ç¿ëÀÚÀÇ SQL¹®À» ¾î¶»°Ô ¼öÇàÇÏ´ÂÁö¿¡ °üÇÑ ¾×¼¼½º Ç÷£À» º¸´Â ¹ý°ú Æ©´×¿¡ ´ëÇÑ ¸î¸î »ç·Ê¸¦ ¼³¸íÇϰڴÙ.  

 

aboutmenu