大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 数据库 -> DB2 -> DB2编程序技巧 (六)

DB2编程序技巧 (六)

时间: 2021-08-13 作者:daque

2.2 sql语句尽管写搀杂sql    尽管运用大的搀杂的sql语句,将多而大略的语句拉拢成大的sql语句对本能会有所革新。    db2的sql engieer对搀杂语句的优化本领比拟强,基础上不必留心语句的本能题目。 oracle 则差异,引荐将搀杂的语句大略化,sql engieer的优化本领不是更加好。 这是由于每一个sql语句城市有reset sqlcode和sqlstate等百般操纵,会对数据库本能有所耗费。 一个总的思维即是尽管缩小sql语句的个数。 2.3 sql  sp及c sp的采用 开始,c的sp的本能比sql 的sp 的要高。 普遍而言,sql语句比拟搀杂,而论理比拟大略,sql sp 与 c sp 的本能分别会比拟小,如许从处事量商量,用sql写比拟好。 而即使论理比拟搀杂,sql比拟大略,用c写比拟好。 2.4 查问的优化(hash及rr_to_rs) db2set  db2_hash_join=y (hash排序优化)    指定排序时运用hash排序,如许db2在表join时,先对各表做hash排序,再join,如许不妨大大普及本能。    剧沈刚说做试验,7个一万万条记载表的做join取10000条记载,再没有索引的情景下  72秒。 db2set  db2_rr_to_rs=y         该树立后,不许设置rr分隔级别,即使设置rr,db2也会机动降为rs. 如许,db2不必处置next key,不妨少处置少许货色,如许不妨普及本能。      2.5 制止运用count(*) 及exists的本领 1、开始要制止运用count(*)操纵,由于count(*)基础上要对表做十足扫描一遍,即使运用很多会引导很慢。 2、exists比count(*)要快,但总的来说也会对表做扫描,它不过碰到第一条适合的记载就停下来。 即使做这两中操纵的手段是为        select into 效劳的话,就不妨简略掉这两步。 径直运用select into 采用记载中的字段。 即使是没有记载采用到的话,db2 会将  sqlcode=100 和 sqlstate=’20000’ 即使是有多条记载的话,db2会爆发一个缺点。 步调不妨创造  continue handler for  exception                continue handler for  not found 来检验和测定。 这是最赶快的本领。 3、即使是确定是否一条,不妨运用游标来计划,用一个计数器,累加,到达预订值后就摆脱。这个速率也比count(*) 要快,由于它只有扫描到预订值就不复扫描了,不必做全表的scan,然而它写起来比拟烦恼。 3 db2表及sp处置 3.1 看保存进程文本 select text from syscat.procedures where procname='proc1'; 3.2 看表构造 describe table syscat.procedures describe select * from syscat.procedures 3.3 察看各表对sp的感化(被哪些sp运用) select procname from syscat.procedures where specificname in(select dname from sysibm.sysdependencies where bname in ( select pkgname  from syscat.packagedep where bname='tb_branch'))

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.