在DB2优化器中使用分布统计信息
2009-12-23 15:00:17 来源:WEB开发网核心提示:使用 PreparedStatement 的那种代码片段在编码方面更为优雅,因为在将 STATE 和 TYPE 的值置入 SQL 语句时,在DB2优化器中使用分布统计信息(7),不需要进行字符串运算,但这种方法存在一个缺点,然而,使用参数标记时,在绑定 WHERE 子句中谓词的值之前,需要编译 SELECT(创建访问计
使用 PreparedStatement 的那种代码片段在编码方面更为优雅,因为在将 STATE 和 TYPE 的值置入 SQL 语句时,不需要进行字符串运算。但这种方法存在一个缺点,在绑定 WHERE 子句中谓词的值之前,需要编译 SELECT(创建访问计划)。为使优化器能够使用可用的分布统计信息,带有具体值的谓词极为重要。
让我们再次看看 CARS 表的查询示例,但这次使用参数标记,而不是具体值:
SELECT * FROM CARS WHERE STATE < ? AND TYPE = ?
CARS 表的分布统计信息仍然可用,因为在此期间这些统计信息也已经被收集。然而,使用参数标记时,将生成另一个访问计划。
图 3. 有参数标记和分布统计信息时示例查询的访问计划
更多精彩
赞助商链接