DB2 (join) SQL DB2 11 SQL DB2 SQL 9.1 DB2 DB2 ( ) SQL ( ) DB2 SQL DB2 DB2 SQL DB2 DB2 SQL DB2 ( DB2 ) DB2 DB2 DB2 SQL DB2 (1) SQL (2) S

Similar documents
Oracle9i 的查询优化

untitled

untitled

目錄 C ontents Chapter MTA Chapter Chapter

ebook46-23

6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM

幻灯片 1

目錄

四川省普通高等学校

11.2 overview

學 科 100% ( 為 單 複 選 題, 每 題 2.5 分, 共 100 分 ) 1. 請 參 閱 附 圖 作 答 : (A) 選 項 A (B) 選 項 B (C) 選 項 C (D) 選 項 D Ans:D 2. 下 列 對 於 資 料 庫 正 規 化 (Normalization) 的 敘

目錄... ivv...vii Chapter DETECT

SQL 书写规范

数 据 库 系 统 基 础 2/54 第 6 章 数 据 库 管 理 与 维 护

untitled

季刊9web.indd

V8_BI.PPT [只读]

Microsoft Word 年9月二级VF真卷.doc

习题1

untitled

教 学 目 标 描 述 主 要 数 据 库 对 象 创 建 表 描 述 列 定 义 时 可 用 的 数 据 类 型 改 变 表 的 定 义 删 除 改 名 和 截 断 表 描 述 每 个 DML 语 句 插 入 行 到 表 中 更 新 表 中 的 行 从 表 中 删 除 行 描 述 约 束 创 建

第1套

PowerPoint Presentation

PowerPoint 演示文稿

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

幻灯片 1

123

Oracle 4

R D B M S O R D B M S R D B M S / O R D B M S R D B M S O R D B M S 4 O R D B M S R D B M 3. ORACLE Server O R A C L E U N I X Windows NT w w

1-1 database columnrow record field 不 DBMS Access Paradox SQL Server Linux MySQL Oracle IBM Informix IBM DB2 Sybase 1-2

精 品 库 我 们 的 都 是 精 品 _www.jingpinwenku.com (8) 数 据 库 数 据 库 系 统 和 数 据 库 管 理 系 统 之 问 的 关 系 是 ( ) A) 数 据 库 包 括 数 据 库 系 统 和 数 据 库 管 理 系 统 B) 数 据 库 系 统 包 括

上海市本科教学质量年度报告

未命名

Microsoft PowerPoint - 05-SQL3-advanced.ppt

SQL: Interactive Queries (2)

epub 61-6

ebook 96-16


RUN_PC連載_12_.doc

基于UML建模的管理管理信息系统项目案例导航——VB篇

starter_pdfmerge

MySQL資料庫教學

untitled

1 旅 游 安 全 与 应 急 任 课 教 师 : 李 峰 开 课 学 院 : 资 源 学 院 课 程 简 介 : 课 程 主 要 讲 授 内 容 : 旅 游 安 全 现 象 和 旅 游 安 全 认 知 ; 旅 游 者 与 旅 游 活 动 的 安 全 管 理 ; 旅 游 安 全 保 障 ; 旅 游

数据库系统概论

ebook45-5

Oracle Database 10g: SQL (OCE) 的第一堂課

untitled

SQL Server SQL Server SQL Mail Windows NT

高中信息技术课程标准

回滚段探究

01 SQL Server SQL Server 2008 SQL Server 6-1 SSIS SQL Server ( master ) ( msdb ) SQL Server ( master ) master 6-1 DTS sysadmin 6-1 sysa

关 于 我 姓 名 : 葛 云 杰 网 名 :Dylan Oracle OCM Oracle 用 户 组 年 轻 专 家 中 国 OCM 联 盟 成 员 山 东 Oracle 用 户 组 联 合 创 始 人 齐 鲁 IT 联 盟 联 合 创 始 人 软 件 研 发 工 程 师 具 有 十 年 以 上

CWP156.pdf

支付宝2011年 IT资产与费用预算

数据库系统概论

untitled

Microsoft PowerPoint - Ch6

PowerPoint Presentation

使用SQL Developer

01

untitled

威 福 髮 藝 店 桃 園 市 蘆 竹 區 中 山 里 福 祿 一 街 48 號 地 下 一 樓 50,000 獨 資 李 依 純 105/04/06 府 經 登 字 第 號 宏 品 餐 飲 桃 園 市 桃 園 區 信 光 里 民

Microsoft Word htm

untitled

Cadence Poqi

<4D F736F F D20C9CFBAA3CAD0BCC6CBE3BBFAB5C8BCB6BFBCCAD4C8FDBCB6BFBCCAD4B4F3B8D95FBDA8D2E9B8E55F5F E646F63>

Microsoft Word - 扉页.doc

untitled

FileMaker 16 SQL 参考

穨ac3-4.PDF

Untitiled

中艺华海修改1.7.indd

北 京 蓝 皮 书 公 共 服 务 相 比 而 言, 养 老 医 疗 失 业 等 保 险 都 早 已 经 由 国 务 院 颁 布 了 相 应 的 立 法 条 例, 在 全 国 范 围 内 形 成 了 统 一 的 制 度 党 的 十 八 届 四 中 全 会, 首 次 以 依 法 治 国 为 主 题,

2006年中央、国家机关公务员录用考试


untitled

上海浦~1

1. 概 述 1.1 扫 描 对 象 序 号 1 IP 地 址 域 名 1.2 漏 洞 等 级 分 布 风 险 类 型 数 量 高 风 险 1 中 风 险 5 低 风 险 4 信 息 类 4 7% 29% 高 风 险 36% 中 风 险 低 风

课程名称:数据库系统概论

A API Application Programming Interface 见 应 用 程 序 编 程 接 口 ARP Address Resolution Protocol 地 址 解 析 协 议 为 IP 地 址 到 对 应 的 硬 件 地 址 之 间 提 供 动 态 映 射 阿 里 云 内

0SQL SQL SQL SQL SQL 3 SQL DBMS Oracle DBMS DBMS DBMS DBMS RDBMS R DBMS 2 DBMS RDBMS R SQL SQL SQL SQL SELECT au_fname,au_ lname FROM authors ORDER BY

NTSE: Non-Transactional Storage Engine MySQL InnoDB 10 InnoDB +Memcached 5 50% / K C++

,,,,,, :,,, ;,,,,,,,,,,,,,,,,,,,,,, ( ),,,,,


RUN_PC連載_8_.doc

PowerPoint Presentation

3 Driver do Microsoft Access (*.mdb) hisdata IFIX 1.4

3.1 SQL Server 2005 Analysis Services Unified Dimension Model (UDM) 3 ( Ad-Hoc) SQL Server 2005 E - R T-SQL(Star Schema) (Data Mart) (ETL) ( Ora

第 一 节 认 识 自 我 的 意 义 一 个 人 只 有 认 识 自 我, 才 能 够 正 确 地 认 识 到 自 己 的 优 劣 势, 找 出 自 己 的 职 业 亮 点, 为 自 己 的 顺 利 求 职 推 波 助 澜 ; 一 个 人 只 有 认 识 自 我, 才 能 在 求 职 中 保 持

Oracle高级复制冲突解决机制的研究

untitled

Microsoft Word - 序+目錄.doc

一 個 SQL Injection 實 例 的 啟 示 頁 2 / 6 因 此, 在 知 名 網 站 上 看 到 SQL Injection, 讓 人 驚 心, 卻 不 意 外 網 站 專 案 外 包 是 目 前 業 界 的 常 態, 而 在 價 格 取 勝 的 制 度 下, 低 價 得 標 的 S

ebook10-5

深入理解otter

致理技術學院資訊管理學系專題企劃書格式建議書

% ~ AAA

ebook 132-6

ebook 165-5

Transcription:

9 DB2 优化器 DB2 SQL select c1 c2 from ( DB2 )??? DB2?!?, no no DB2 I/O ( transrate overhead ) SQL DML (INSERT UPDATE DELETE) DB2 (access plan)

DB2 (join) SQL DB2 11 SQL DB2 SQL 9.1 DB2 DB2 ( 728 747 ) SQL ( 9-1 9-2) DB2 SQL DB2 DB2 SQL DB2 DB2 SQL DB2 ( DB2 ) DB2 DB2 DB2 SQL DB2 (1) SQL (2) SQL 326

9 DB2 (3) SQL (4) SQL SQL IBM (CBO) DB2 4 CPU I/O DB2 SQL 9-1 DB2 9-2 DB2 327

DB2 9.2 SQL SQL 9-3 SQL SQL 1. 2. 3. 4. 5. 6. SQL 7. Visual Explain db2exfmt db2expln 9-3 SQL 328

9 DB2 9-3 SQL 1. SQL 2. YEAR 3. (avg sum max min count ) 4. ( ) 5. 329

DB2 (avg sum max min count ) (SMP) 6. SQL SQL SQL SQL 7. (section) ( ) ( ) SQL ( ) REOPT ( ) SQL SQL (syscat.statements) db2expln RUNSTATS RUNSTATS RUNSTATS (FPAGES) ACTIVE_BLOCKS 330

9 DB2 9.3 DB2 DB2 Query Rewriter( ) SQL (Query Rewriter) Estimator( ) 3 1. Selectivity rows 0.0~1.0 0 row statistics Estimator selectivity '=' selectivity '<' (statistics) last_name = 'Smith' Estimator last_name distinct ( last_name distinct ) selectivity 2. Cardinality row set 3. Cost Cost Disk I/O CPU usage (timeron) Plan Generator( ) cost 9.3.1 SQL ( ) SQL db2expln dynexpln db2exfmt ( SELECT ) SQL 331

DB2 SELECT SELECT SELECT (avg max sum count min) DISTINCT DISTINCT / SQL OR IN OR IN SQL IN OR 9.3.2 EMPLOYEE $35,000 332

9 DB2 CREATE VIEW EMP_EDUCATION (EMPNO, FIRSTNME, LASTNAME, EDLEVEL) AS SELECT EMPNO, FIRSTNME, LASTNAME, EDLEVEL FROM EMPLOYEE WHERE EDLEVEL > 17 CREATE VIEW EMP_SALARIES (EMPNO, FIRSTNAME, LASTNAME, SALARY) AS SELECT EMPNO, FIRSTNME, LASTNAME, SALARY FROM EMPLOYEE WHERE SALARY > 35000 $35,000 SELECT E1.EMPNO, E1.FIRSTNME, E1.LASTNAME, E1.EDLEVEL, E2.SALARY FROM EMP_EDUCATION E1, EMP_SALARIES E2 WHERE E1.EMPNO = E2.EMPNO SELECT E1.EMPNO, E1.FIRSTNME, E1.LASTNAME, E1.EDLEVEL, E2.SALARY FROM EMPLOYEE E1, EMPLOYEE E2 WHERE E1.EMPNO = E2.EMPNO AND E1.EDLEVEL > 17 AND E2.SALARY > 35000 SELECT SELECT SQL SELECT EMPNO, FIRSTNME, LASTNAME, PHONENO FROM EMPLOYEE WHERE WORKDEPT IN (SELECT DEPTNO FROM DEPARTMENT WHERE DEPTNAME = 'OPERATIONS') SELECT DISTINCT EMPNO, FIRSTNME, LASTNAME, PHONENO FROM EMPLOYEE EMP, DEPARTMENT DEPT WHERE EMP.WORKDEPT = DEPT.DEPTNO AND DEPT.DEPTNAME = 'OPERATIONS' 333

DB2 SELECT E1.EMPNO, E1.FIRSTNME, E1.LASTNAME, E1.EDLEVEL, E2.SALARY FROM EMPLOYEE E1,EMPLOYEE E2 WHERE E1.EMPNO = E2.EMPNO AND E1.EDLEVEL > 17 AND E2.SALARY > 35000 SQL SELECT EMPNO, FIRSTNME, LASTNAME, EDLEVEL, SALARY FROM EMPLOYEE WHERE EDLEVEL > 17 AND SALARY > 35000 EMPLOYEE DEPARTMENT CREATE VIEW PEPLVIEW AS SELECT FIRSTNME, LASTNAME, SALARY, DEPTNO, DEPTNAME, MGRNO FROM EMPLOYEE E DEPARTMENT D WHERE E.WORKDEPT = D.DEPTNO SELECT LASTNAME, SALARY FROM PEPLVIEW SELECT LASTNAME, SALARY FROM EMPLOYEE WHERE WORKDEPT NOT NULL; (avg max sum count min) SQL SELECT SUM(SALARY+BONUS+COMM) AS OSUM, AVG(SALARY+BONUS+COMM) AS OAVG, 334

9 DB2 COUNT(*) AS OCOUNT FROM EMPLOYEE; SELECT OSUM,OSUM/OCOUNT OCOUNT FROM (SELECT SUM(SALARY+BONUS+COMM) AS OSUM COUNT(*) AS OCOUNT FROM EMPLOYEE) AS SHARED_AGG; 2 2 1 1 9.3.3 DISTINCT EMPNO EMPLOYEE SELECT DISTINCT EMPNO, FIRSTNME, LASTNAME FROM EMPLOYEE DISTINCT SELECT EMPNO, FIRSTNME, LASTNAME FROM EMPLOYEE SQL DISTINCT ( ) D11 CREATE VIEW D11_EMPLOYEE (EMPNO, FIRSTNME, LASTNAME, PHONENO, SALARY, BONUS, COMM) AS SELECT EMPNO, FIRSTNME, LASTNAME, PHONENO, SALARY, BONUS, COMM FROM EMPLOYEE WHERE WORKDEPT = 'D11' SELECT FIRSTNME, PHONENO FROM D11_EMPLOYEE WHERE LASTNAME = 'BROWN'; LASTNAME = 'BROWN' D11_EMPLOYEE SELECT FIRSTNME, PHONENO FROM EMPLOYEE WHERE LASTNAME = 'BROWN' AND WORKDEPT = 'D11' UNION GROUP BY ( ) 335

DB2 9.3.4 E01 SELECT DEPT.DEPTNAME DEPT.MGRNO, EMP.LASTNAME, PROJ.PROJNAME FROM DEPARTMENT DEPT, EMPLOYEE EMP, PROJECT PROJ WHERE DEPT.ADMRDEPT = 'E01' AND DEPT.MGRNO = EMP.EMPNO AND EMP.EMPNO = PROJ.RESPEMP DEPT.MGRNO = PROJ.RESPEMP E00 SELECT EMPNO, LASTNAME, FIRSTNAME, DEPTNO, DEPTNAME FROM EMPLOYEE EMP, DEPARTMENT DEPT WHERE EMP.WORKDEPT = DEPT.DEPTNO AND DEPT.DEPTNO > 'E00'; EMP.WORKDEPT > 'E00' OR IN OR SELECT * FROM EMPLOYEE WHERE DEPTNO = 'D11' OR DEPTNO = 'D21' OR DEPTNO = 'E21' DEPTNO OR IN SELECT * FROM EMPLOYEE 336

9 DB2 WHERE DEPTNO IN ('D11', 'D21', 'E21') IN OR OR 9.4 SQL SQL SQL SQL WHERE 9.4.1 ( ) ( ) 337

DB2 9.4.2 ( ) ( ) (index only access) ALLOW REVERSE SCANS ( 11 SQL ) 1. WHERE WHERE ( ANY ALL SOME ) ( SELECT) INDEX IX1: NAME ASC, DEPT ASC, MGR DESC, SALARY DESC, YEARS ASC IX1 338

9 DB2 WHERE NAME = :hv1 AND DEPT = :hv2 WHERE MGR = :hv1 AND NAME = :hv2 AND DEPT = :hv3 WHERE ( ) ( ) ALLOW REVERSE SCANS CREATE INDEX iname ON tname (cname DESC) ALLOW REVERSE SCANS cname (iname) WHERE NAME DEPT SALARY YEARS WHERE NAME = :hv1 AND DEPT = :hv2 AND SALARY = :hv4 AND YEARS = :hv5 (MGR) (NAME DEPT) NAME = :hv1 DEPT = :hv2 2. (>) (<) NAME DEPT MGR 339

DB2 WHERE NAME = :hv1 AND DEPT AND DEPT AND MGR > :hv2 < :hv3 < :hv4 >= <= BETWEEN LIKE WHERE NAME = :hv1 AND DEPT >= :hv2 AND DEPT <= :hv3 AND MGR <= :hv4 :hv2 = 404 :hv3 = 406 :hv4 = 12345 404 405 (MGR ) 12345 406 3. ORDER BY DISTINCT GROUP BY = ANY > ALL < ALL INTERSECT EXCEPT UNION WHERE NAME = 'JONES' AND DEPT = 'D93' ORDER BY MGR NAME DEPT WHERE ORDER BY 340

9 DB2 WHERE NAME = 'JONES' AND DEPT = 'D93' ORDER BY NAME, DEPT, MGR ORDER BY UNIQUE INDEX IX0: PROJNO ASC SELECT PROJNO, PROJNAME, DEPTNO FROM PROJECT ORDER BY PROJNO, PROJNAME PROJNAME IX0 PROJNO PROJNO PROJNAME SQL 8 9.5 (outer table) (inner table) Table1 Table2 341

DB2 Table1 Table2 PROJ PROJ_ID PROJ_ID A 1 1 Sam B 2 3 Joe C 3 4 Mary D 4 1 Sue 2 Mike Table1 Table2 SQL SELECT PROJ, x.proj_id, NAME FROM TABLE1 x, TABLE2 y WHERE x.proj_id = y.proj_id PROJ PROJ_ID A 1 Sam A 1 Sue B 2 Mike C 3 Joe D 4 Mary ( INNER LEFT OUTER JOIN) 342

9 DB2 9.5.1 T1 T2 A T1 A T2 A 2 3 3 2 3 2 (1) T1 A 2 (2) T2 ( 2 ) (3) T2 ( 2 ) (4) T2 (5) T1 ( 3 ) (6) T2 ( 3 ) 3 1 343

DB2 344 (7) T2 ( 3 ) (8) T2 (9) T1 ( 3 ) (10) T2 ( 3 ) expr(outer_table.column) relop inner_table.column relop ( = > >= < <=) expr OUTER.C1 + OUTER.C2 <= INNER.C1 OUTER.C4 < INNER.C3 9.5.2 ( table1.column = table2.column ) LONG LOB T1 T2 A

9 DB2 T1 A T2 A 2 1 3 2 3 2 3 3 (1) T1 A 2 (2) T2 (3) T2 (4) T2 3 T1 (5) T1 3 T2 (6) T2 (7) T2 (8) T1 ( T1 T1 T2 3 T2 ) 9.5.3 (hash) table1.columnx = table2.columny CHAR DECIMAL DECFLOAT LONG LOB ( build table) ( sortheap ) Join INNER ( ) ( probe table) 345

DB2 (spill) SMP SMP ( intra-parallel = ON dft_degree >1 ) CPU CPU sortheap sheapthres sheapthres sortheap sheapthres sortheap OLAP SQL OLTP 9.5.4 DB2 DB2 DB2 0 1 2 3 5 7 9 346

9 DB2 1 5 DB2 SQL 9.6 SQL DB2 SQL SQL SQL DB2 7 0 1 DB2/6000 V1 V1 2 5 3 DB2 for MVS/ESA 5 Heuristic Rules( ) 7 Heuristic Rules 9 347

DB2 Heuristic Rules DB2 SQL ( OLTP) 0 1 ( OLTP) 1 OLTP ( OLTP ) 5 ( 1 ) ( ) 9 DB2 9.7 DB2 SQL 9.7.1 DB2 DB2 SQL (Transtrate Overhead) ( ) 348

9 DB2 RUNSTATS DB2 (Control Center) 10 9.7.2 DB2 SQL SELECT LASTNAME, SALARY FROM EMP WHERE EMPNO = '000010' AND DEPTNO = 'D01'; EMPNO Index1 DEPTNO Index2 EMPNO DEPTNO Index3 Index3 DB2 WHERE EMP DB2 INSERT DELETE UPDATE EMPNO DEPTNO SELECT LASTNAME, SALARY FROM EMP WHERE EMPNO = '000010' AND DEPTNO > 'D01'; 349

DB2 EMPNO DEPTNO DB2 (EMPNO) (DEPTNO) ( EMPNO DEPTNO) DB2 (index-only access) SQL DB2 SQL EMPNO DEPTNO LASTNAME SALARY EMPNO DEPTNO LASTNAME SALARY EMP I/O SQL 8 9.7.3 AVG_APPLS( ) DB2 SORTHEAP( ) ( ) LOCKLIST( ) DB2 DB2 (escalate) 350

9 DB2 MAXLOCKS( ) DB2 NUM_FREQVALUES( ) DB2 Runstats DB2 WHERE NUM_QUANTILES( ) DB2 Runstats DB2 DBHEAP( ) CPUSPEED (CPU ) CPU BUFFPAGE 6 9.7.4 SQL OLTP/OLAP 5 3 OLTP OLAP SELECT ( 1 ) 1 0 1 2 30 UNION ALL VIEW( FixPak4 ) 7 9 9.7.5 I/O Transrate Overhead Transrate=(1/ )*1000/1024000*4096( 4KB ) Overhead= +(((1/ )*60*1000)/2) I/O I/O 2 I/O 351

DB2 9.7.6 SQL 11 9.8 DB2 DB2 352