• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >DB2 > DB2编程序技巧 (六)

DB2编程序技巧 (六)

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了db2 备份 压缩,hfc4db2-1d1,db2焊条是什么焊条,db2,db2数据库等相关知识,希望本文的分享对您有所帮助
正在看的db2教程是:DB2编程序技巧 (六)。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'))


<

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • DB2编程序技巧(1)
  • DB2大事记
  • DB2 9的九大新特性
  • 如何访问大型机、小型机上的DB2 9数据服务器
  • 在DB2中提高INSERT性能的技巧(1)
  • DB2编程序小小技巧
  • DB2常用傻瓜问题1000问(五)
  • DB2常用傻瓜问题1000问(六)
  • DB2编程序技巧 (一)
  • DB2编程序技巧 (三)

相关文章

  • 2017-06-28DB2数据库优化需掌握几条基本策略
  • 2017-06-28讲解监控IBM DB2数据库的性能的详细步骤
  • 2017-06-28备份恢复DB2数据库步骤
  • 2017-06-28DB2CLP命令的快速参考
  • 2017-05-11IBM DB2 日常维护汇总(一)
  • 2017-06-28实例之Visual C#中实现DB2数据库的编程
  • 2017-06-28IBM Workplace Web Content Management和DB2 Content Manager
  • 2017-06-28DB2 for Linux, UNIX, and Windows 的锁事件,第 3 部分: 使用 DB2 9.7 中的锁事件监控器来解决并发性问题
  • 2017-06-28DB2 9.5 SQL Procedure Developer认证考试 735 准备,第1部分
  • 2017-06-28使 XA 事务管理器灵活地应对资源管理器故障,确保更高的可用性

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • 对于与DB2并行度相关的几个参数的说明
    • 分析DB2 for Linux,UNIX,and Windows中的锁等待情形
    • 如何在DB2中更新执行计划
    • 如何在AIX平台上把DB2V8升级到DB2V95
    • 调优 DB2 UDB v8.1 及其数据库的最佳实践
    • DB2 Magazine中文版:为实时分析提供支持
    • WebSphere Federation Server V9.5 中的端到端联合可信上下文
    • DB2返回SQLCODE -818错误
    • DB2 9.5 中多线程架构的工作原理
    • DB2 Load 和 Oracle SQL*Loader

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有