免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2955 | 回复: 8
打印 上一主题 下一主题

静态SQL的执行计划保存在哪里? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-01-25 11:06 |只看该作者 |倒序浏览
请问DB2的包里的静态SQL的执行计划,成本什么的,是保存在哪个系统视图里的啊?

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
2 [报告]
发表于 2007-01-25 12:44 |只看该作者
在PACKAGE里

论坛徽章:
0
3 [报告]
发表于 2007-01-25 12:47 |只看该作者
能查到么?能用什么方法看到么?

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
4 [报告]
发表于 2007-01-25 14:42 |只看该作者
看access plan,cost可以用db2expln,db2exfmt等命令,系统视图里不会有的。

论坛徽章:
0
5 [报告]
发表于 2007-01-25 15:24 |只看该作者
那就是说要一个一个取出静态sql文本,然后再看它的执行计划了?

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
6 [报告]
发表于 2007-01-25 16:59 |只看该作者
多条语句可以放在一个文本文件里,一条命令就够了。

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
7 [报告]
发表于 2007-01-27 14:41 |只看该作者
今天看到一篇文章,给你转过来

如何使用db2expln工具查看某个程序包中SQL语句的存取计划



环境 [产品] DB2
[平台] 跨平台
[版本] 7.x
问题 如果希望查看某条SQL语句的存取计划,可以在命令中心中得到;
如果希望查看在某一个程序包中SQL语句存取计划,可以使用db2expln工具得到。
解答 举个例子,对于数据库SAMPLE中程序包DB2INST1.P0203450,使用下面命令:
db2expln -d SAMPLE -g -c db2inst1 -p P0203450 -s 0 -t
其中
-g 是指给出存取计划的图形输出(用字符模拟的)
-s 0 是指分析所有的SQL命令

下面是相应的输出:
DB2 Universal Database Version 7.2, 5622-044 (c) Copyright IBM Corp. 1991, 2001
Licensed Material - Program Property of IBM
IBM DATABASE 2 SQL Explain Tool

Processing package DB2INST1.P0203450.
******************** PACKAGE *********************

Package Name = DB2INST1.P0203450
--------Prep Date = 2002/12/17
--------Prep Time = 16:02:04

--------Bind Timestamp = 2002-12-17-16.02.04.373971

--------Isolation Level ---------= Cursor Stability
--------Blocking---------------- = Block Unambiguous Cursors
--------Query Optimization Class = 5

--------Partition Parallel ------= No
--------Intra-Partition Parallel = No

--------Function Path----------- = "SYSIBM", "SYSFUN", "DB2INST1"

Processing Section 1.
-------------------- SECTION ----------------------
......
-------------------- SECTION ----------------------
Section = 2

SQL Statement:

update STAFF set NAME = 'test'
where ID = 350

Estimated Cost = 75
Estimated Cardinality = 2

Access Table Name = DB2INST1.STAFF ID = 2,3
| #Columns = 2
| Relation Scan
| | Prefetch: Eligible
| Lock Intents
| | Table: Intent Exclusive
| | Row : Update
| Sargable Predicate(s)
| | #Predicates = 1
Update: Table Name = DB2INST1.STAFF ID = 2,3

End of section

Optimizer Plan:

------UPDATE
------( -2)
------/-- \
-TBSCAN --Table:
--( 3) --DB2INST1
---| -----STAFF
Table:
DB2INST1
STAFF
......


可以用下面命令找出数据库中存在的程序包:
db2 "select pkgschema, pkgname from syscat.packages"
上面例子中的程序包DB2INST1.P0203450是一个存储过程。

论坛徽章:
0
8 [报告]
发表于 2007-01-27 19:03 |只看该作者
多谢!

论坛徽章:
11
数据库技术版块每日发帖之星
日期:2016-06-25 06:20:00数据库技术版块每日发帖之星
日期:2016-06-24 06:20:00数据库技术版块每日发帖之星
日期:2016-05-03 06:20:00数据库技术版块每日发帖之星
日期:2016-04-21 06:20:00数据库技术版块每日发帖之星
日期:2016-01-23 06:20:00数据库技术版块每日发帖之星
日期:2015-12-03 06:20:00综合交流区版块每周发帖之星
日期:2015-12-02 15:03:53数据库技术版块每日发帖之星
日期:2015-10-19 06:20:00数据库技术版块每日发帖之星
日期:2015-08-20 06:20:002015年辞旧岁徽章
日期:2015-03-03 16:54:15数据库技术版块每日发帖之星
日期:2016-07-30 06:20:00
9 [报告]
发表于 2007-01-27 22:45 |只看该作者
比较习惯用那个Visual Explain,现在在DWB里面做看更方便了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP