Database Optimizer λ?
SQLμ κ°μ₯ λΉ λ₯΄κ³ ν¨μ¨μ μΌλ‘ μνν μ΅μ μ μ²λ¦¬ κ²½λ‘λ₯Ό μμ±ν΄μ£Όλ DBMS λ΄λΆμ ν΅μ¬ μμ§
μ΅ν°λ§μ΄μ μ SQL μ΅μ ν κ³Όμ
1. μ¬μ©μκ° λμ§ μΏΌλ¦¬ μνμ μνμ¬, νλ³΄κ΅°μ΄ λ λ§ν μ€νκ³νμ μ°Ύλλ€.
2. λ°μ΄ν° λμ λ리(Data Dictionary)μ 미리 μμ§ν΄ λμ μ€λΈμ νΈ ν΅κ³ λ° μμ€ν ν΅κ³ μ 보λ₯Ό μ΄μ©ν΄ κ° μ€ν κ³νμ μμ λΉμ©μ μ°μ νλ€.
3. κ° μ€νκ³νμ λΉκ΅νμ¬ μ΅μ λΉμ©μ κ°λ νλλ₯Ό μ ννλ€.
μ΅ν°λ§μ΄μ μ νμμ±
- μμ±ν SQLλ¬Έμ μ΄λ€ μμΌλ‘ μ€ννλλμ λ°λΌ μ±λ₯μ΄ λ¬λΌμ§λ€.
- μ΅ν°λ§μ΄μ κ° λΉν¨μ¨μ μΌλ‘ μ€ν κ³νμ μ립νλ©΄, SQL κ°λ°μλ SQLμ κ°μ ν΄μΌ νλ€.
- μ΅ν°λ§μ΄μ μκ² μ€ν κ³νμ λ³κ²½νλλ‘ μμ²ν μ μλλ° μ΄λ ννΈ(HINT)/MSSQL, μ΅μ (OPTION)μ μ¬μ©νλ€.
μ΅ν°λ§μ΄μ μ μ’ λ₯
νλͺ© | κ·μΉ κΈ°λ° μ΅ν°λ§μ΄μ | λΉμ© κΈ°λ° μ΅ν°λ§μ΄μ |
κ°λ | μ¬μ μ μ μλ κ·μΉ κΈ°λ° | μ΅μ λΉμ© κ³μ°νμ¬ μ€νκ³ν μ립 |
κΈ°μ€ | μ€ν μ°μ μμ(Ranking) | μ‘μΈμ€ λΉμ©(Cost) |
μΈλ±μ€ | μΈλ±μ€ μ‘΄μ¬ μ κ°μ₯ λ¨Όμ μ¬μ© | Costμ μν κ²°μ |
μ±λ₯ | μ¬μ©μ SQL μμ± μλ ¨λμ λ°λΌ λ¬λΌμ§ | μ΅ν°λ§μ΄μ μμΈ‘ μ±λ₯μΌλ‘ μ§ν |
μ₯μ | μ€ν λ£¨νΈ μμ κ°λ₯ | ν΅κ³ μ 보λ₯Ό ν΅ν νμ€ μμ μ μ© |
λ¨μ | μμΈ‘λλ ν΅κ³ μ 보 무μ | μμΈ‘ μ μ΄κ° μ΄λ €μ |
* MSSQL/ORACLE μ κΈ°λ³Έ λΉμ© κΈ°λ° μ΅ν°λ§μ΄μ μ
μ΅ν°λ§μ΄μ μμ§
μ΅ν°λ§μ΄μ | μ€λͺ |
Query Transformer | SQLλ¬Έμ ν¨μ¨μ μΌλ‘ μ€ννκΈ° μν΄ μ΅ν°λ§μ΄μ κ° λ³ν |
Estimator | ν΅κ³ μ 보λ₯Ό μ¬μ©νμ¬ SQL μ€ν λΉμ©μ κ³μ°ν¨. μ΄ λΉμ©μ μ΅μ μ€ν κ³νμ μ립νκΈ° μν¨μ΄λ€. |
Plan Generator | SQLμ μ€νν μ€ν κ³νμ μ립. |
μ΅ν°λ§μ΄μ μμ§ μ€ν μμ
* κ·μΉ κΈ°λ° μ΅ν°λ§μ΄μ (RBO) ꡬν μ μ°Έκ³
μ°μ μμ | Decs. |
1 | ROWIDλ₯Ό μ¬μ©ν λ¨μΌ νμΈ κ²½μ° |
2 | ν΄λ¬μ€ν° μ‘°μΈμ μν λ¨μΌ νμΈ κ²½μ° |
3 | μ μΌνκ±°λ κΈ°λ³Έν€(Primary Key)λ₯Ό κ°μ§ ν΄μ ν΄λ¬μ€ν° ν€μ μν λ¨μΌ νμΈ κ²½μ° |
4 | μ μΌνκ±°λ κΈ°λ³Έν€(Primay Key)μ μν λ¨μΌ νμΈ κ²½μ° |
5 | ν΄λ¬μ€ν° μ‘°μΈμΈ κ²½μ° |
6 | ν΄μ ν΄λ¬μ€ν° μ‘°μΈμΈ κ²½μ° |
7 | μΈλ±μ€ ν΄λ¬μ€ν° μ‘°μΈμΈ κ²½μ° |
8 | λ³΅ν© μΉΌλΌ μΈλ±μ€μΈ κ²½μ° |
9 | λ¨μΌ μΉΌλΌ μΈλ±μ€μΈ κ²½μ° |
10 | μΈλ±μ€κ° ꡬμ±λ 컬λΌμμ μ νλ λ²μλ₯Ό κ²μνλ κ²½μ° |
11 | μΈλ±μ€κ° ꡬμ±λ 컬λΌμμ 무μ ν λ²μλ₯Ό κ²μνλ κ²½μ° |
12 | μ λ ¬-λ³ν©(Sort-Merge) μ‘°μΈμΈ κ²½μ° |
13 | μΈλ±μ€κ° ꡬμ±λ μΉΌλΌμμ MAX/MINμ ꡬνλ κ²½μ° |
14 | μΈλ±μ€κ° ꡬμ±λ μΉΌλΌμμ Order Byλ₯Ό μ€ννλ κ²½μ° |
15 | μ 체 ν μ΄λΈμ μ€μΊ(Full Table Scan)νλ κ²½μ° |