DB2 Spatial Extender 性能调优(2)
2007-06-01 16:21:34 来源:WEB开发网核心提示: 清单 12. 逐行操作与多行操作的比较-- insert just a single rowINSERT INTO tabVALUES ( 1, db2gse.ST_LineString( 'linestring (11.9963970 54.9979739, 11.9947259
清单 12. 逐行操作与多行操作的比较
-- insert just a single row
INSERT INTO tab
VALUES ( 1, db2gse.ST_LineString(
'linestring (11.9963970 54.9979739, 11.9947259 55.0000000)',
1003) )@
-- insert multiple rows at once
INSERT INTO tab
SELECT id, db2gse.ST_LineString(wkt, 1003)
FROM TABLE ( VALUES
( 1, 'linestring (11.9963970 54.9979739, 11.9947259 55.0000000)' ),
( 2, 'linestring (11.9872250 55.0000000, 11.9963970 54.9979739)' ),
... ) AS t(id, wkt)@
下载 一节中提供的脚本 test_multi_row.sql 用同样的一组数据运行两种不同的方法。被插入的数据源自我们之前用过的 shapefile 文件 europe/roads.shp。第一种方法总共花费 0.050 秒,而组合语句可以在 0.012 秒内完成。
应该注意的是,大部分时间花在解析和编译 SQL 语句上。如果使用了预置语句,那么两种方法之间的差距可能拉大,也可能缩小,这取决于您的应用程序、系统配置和数据。但是,不大可能出现第一种场景好于多行语句的情况。而且应该记住,构造函数 ST_LineString 不执行任何复杂的空间计算;它只是在文本表示上执行一次 single-sweep 扫描,并将坐标转换成内部编码。
该函数占用的内存也很少。还应记住,预置语句可用于多行插入(例如,在静态嵌入式 SQL 应用程序中)并且多行插入可以执行多次,以利用上述优点。同样的技术还用于空间导入过程中,这就是为什么在消息文件的一开始出现像 “Using 342 rows per single INSERT statement” 这样的信息性消息的原因。在导入期间,总行数受 SQL 语句的最大可能大小、提交范围(commit scope)、被导入的总行数或所有这些因素的限制。
- ››db2 对float类型取char后显示科学计数法
- ››DB2中出现SQL1032N错误现象时的解决办法
- ››DB2 锁升级示例
- ››db2诊断系列之---定位锁等待问题
- ››db2 命令选项解释
- ››DB2 最佳实践: 使用 DB2 pureXML 管理 XML 数据的...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 基础: 表空间和缓冲池
- ››DB2 XML 编程,第 1 部分: 理解 XML 数据模型
- ››DB2 pureScale 实战
更多精彩
赞助商链接