Posted on 2009-07-23 23:56
Prayer 阅读(1543)
评论(0) 编辑 收藏 引用 所属分类:
DB2
db2advis 是 DB2 提供的另外一种非常有用的命令。通过该命令 DB2 可以根据优化器的配置以及机器性能给出提高查询性能的建议。这种建议主要集中于如何创建索引,这些索引可以降低多少查询代价,需要创建哪些表或者 Materialized Query Table(MQT) 等。命令如清单 3 所示:
清单 3. db2advis 命令
db2advis -d <db_name> -a <user>/<password> -i <sql.file> -o <output>
Example: db2advis -d test_db -a user/password
-i D:\temp\sql_2.txt > D:\temp\sql_2_result_db2advis.txt
Query:
sql_2.txt(附件中)
Results:
sql_2_result_db2advis.txt(附件中)
|
通过 -i 指定的 SQL 文件可以包含多个查询,但是查询必须以分号分隔。这与 db2expln 命令不同,db2expln 可以通过 -z 参数指定多个查询之间的分隔符。用户可以把某一个 workload 中所使用的所有查询写入 SQL 文件中,并在每个查询之前使用”--#SET FREQUENCY <num>”为其指定在这个 workload 中的执行频率。db2advis 会根据每个查询在这个 workload 的频率指数进行权衡来给出索引的创建建议,从而达到整个 workload 的性能最优。