db2中有分区、表空间、日志空间等的概念,所以在操作db2数据库时候,注意以上的设置,会大大提升sql的运行速度,也方便管理人员的管理和维护。了解其原理后,你会发现db2是典型的分布式集群

1.db2的存储结构

假设仓库主机现在有40个节点,节点号为0-39升序排列,40个节点,即有40个分区,每个分区大小一致,且每个分区都有自己的表空间和日志空间。

2.指定表空间

表空间是存储表里数据记录的地方。

3.指定分区键  partitioning key

分区键的作用:在向表里面insert或者load数据时,是通过哈希算法根据分区键来计算出节点号,然后把分割的数据送往此节点,然后装入数据。

分区键的指定:指定分区键时一般要指定那些此列数据内容有很大差异的那些列,比如手机号码,id_no等,这样计算出的节点号分布比较均匀,数据才能均匀分布存放在40个节点。

不指定分区键:如果建表的时候没有指定分区键的话,系统默认使用表的第一个字段,分区键未指定或者分区键指定不恰当,会导致情况。

4.增加一个列

Alter table tab_tmp add column ph varchar(11)

说明:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度,只能增大。

5.修改表名

Rename  bug.temp_tab  to temp_tab2;

说明:temp_tab2不存在,方可执行成功。并且temp_tab2不加前缀,修改成功后表名为:bug.temp_tab2。

6.创建视图

create view  as select id_no,phone_no from com.com_result_tab where ...

说明:视图唯一能修改的是引用类型列,改变列的范围。其他定义好了都不能修改。当视图基于的基表drop后,视图变为无效。创建视图,可以修改字段名称,对原表信息是一种保护。

7.表的左连接 left join。以及左表的选择。

选择1: 数据量小的表作为左表(业务逻辑允许的情况下)。

选择2:将使用条件筛选的表作为左表。

选择3:具有索引选择操作的表作为左表,否则每扫描左表中的一行,就要扫描一遍整个表。

选择4:重复记录少的表更趋向于作左表。

选择5:外关联时,on后面仅仅存放关联条件(也就是说必须是左右表的字段比较),对于关联表内部的条件应当放在where子句中,除非你想保留所有没有匹配上的记录。

8.尽量不使用in(select id_no from tabs...)

9.表连接是一定注意两个字段类型是否相同

比如A表,id_no 类型为bigint; B表,id_no 类型为varchar();  此时以id_no作为连接条件,速度特别慢。

原因1:当连接两个不同类型的列时,其中一个列必须转换成另一个列的类型,级别低的会被转换成高级别的类型,转换操作会消耗一定的系统资源;

原因2:如果你使用两个不同类型的列来连接表,其中一个列原本可以使用索引,但经过转换后,优化器就不会使用它的索引了。

10.在查询中尽量不要使用or

使用union合并两个不同的查询结果集,这样查询性能会更好。

如果不是必须要不同的结果集,使用union all效果会更好,因为它不会对结果集排序,去重。88

11.更新表统计信息

Runstats的作用是重新更新数据库系统对表的统计信息,这些信息在数据库生成执行计划时将被使用。

12.整理表存储碎片

如果一个表的数据量变化很多,与操作系统的文件系统一样就会产生存储碎片,需要重新收集数据碎片和分布数据,从而提高数据访问效率。

reorg table tab_name

另外可以通过reorgchk on table…来检查碎片是否需要整理

13.在大数据量插入操作

可以采用不写日志方式,

一般情况下插入数据时必须避免插入笛卡尔集

注意:但如果执行被中断,表将损坏,无法使用。

14.为避免锁冲突,可以采用脏读模式

前提对数据一致性要求不高

---------------------------------------------------------------------------------------------完美分割线----------------------------------------------具体操作。

1.当前库连接其他库

db2 connect to db_name user db_id using db_pwd

 说明:密码得问相关的管理人员,我们无法查看。name和id通过键入conn就可以显示。

2.创建视图

3.学会建立临时表

假设有三张或者三张以上的表进行连接,而且每张表的数据量都不小,此时就建立一张临时表,将其中的两张表关联的结果插入临时表(tab_temp1),之后再与其他表进行关联。

说明:数据量小的时候,看不出临时表的作用,但是数据量很到的时候,临时表可以避免让你等的很焦灼。

3.大量数据的插入操作

大量数据插入临时表中,采用不写日志的方式,避免日志满了。被force后,事务日志回滚,造成i/o繁忙。

4.对数据表进行过更新操作后记得commit

eg:insert into ;merge into;delete;update

显示提交事务,释放事务日志。

5.长时间不使用数据库记得断开数据库连接。

6.自己建立的临时表使用完之后记得删除

第一步:清空表数据

第二步:删除表

7.查询数据进行限定,一定不要select * from 

8.初次碰见自己不知道的表,不要进行update 或者delete 操作,可以自己建立临时表玩。

转载于:https://www.cnblogs.com/bug-mark/p/8631013.html

3.db2性能和优化相关推荐

  1. DB2性能调整优化问题

    服务器是IBM Netfinity 5600,PIII 800,1G内存,OS是win2000高级版.目前数据库有90多个table,最大的一个表有二十多万数据,备份后的image有900多兆.我们每 ...

  2. 测试mktime和localtime_r性能及优化方法

    // 测试mktime和localtime_r性能及优化方法 // // 编译方法:g++ -g -o x x.cpp或g++ -O2 -o x x.cpp,两种编译方式性能基本相同. // // 结 ...

  3. mysql解释器优化_MySQL——SQL性能分析优化利器之Explain

    系统性能的优劣取决于我们sql的查询速度,MySQL Explain命令是分析SQL性能及优化不可缺少的一部分. Explain被我们称为解释器,通过 explain 我们可以知道以下信息:表的读取顺 ...

  4. fir.im Weekly - APP 性能监测优化 二三事

    每一个成功的 App,都拥有强大的性能体验.本期 fir.im Weekly 整理了微信读书.美团外卖. 天猫.美团点评技术团队的关于性能监测优化方面策略和工具的分享,一起来看看. 微信读书 iOS ...

  5. php7.0 java 性能,php7代码性能常见优化技巧

    目录概述 php7代码性能常见优化技巧 参考文档 概述 这是关于php进阶到架构之php7性能优化学习的第一篇文章:php代码性能常见优化技巧.第一篇:php代码性能常见优化技巧 php7代码性能常见 ...

  6. 8条关于Web前端性能的优化建议

    转载自 8条关于Web前端性能的优化建议 一般网站优化都是优化后台,如接口的响应时间.SQL优化.后台代码性能优化.服务器优化等.高并发情况下,对前端web优化也是非常重要的. 下面说说几种常见的优化 ...

  7. [jQuery] 针对jQuery性能的优化方法有哪些?

    [jQuery] 针对jQuery性能的优化方法有哪些? show slide animate 等频繁修改 dom 很耗性能,可采用 jquery.transit 插件等使用单个 id 或 class ...

  8. [vue] vue性能的优化的方法有哪些?

    [vue] vue性能的优化的方法有哪些? Vue 项目性能优化 - 实践指南(网上最全 / 详细) 前言 Vue 框架通过数据双向绑定和虚拟 DOM 技术,帮我们处理了前端开发中最脏最累的 DOM ...

  9. terminal看服务器性能,终端服务服务器性能评估优化问题

    终端服务服务器性能评估优化计算问题terminal server performance:现有50客户端需要访问总部ERP,财务等资源,这些都是在一台服务器上.线路已经准备好,4M光纤. 但对于终端服 ...

最新文章

  1. python安卓版下载安装-python手册中文版apk下载
  2. HTML事件的执行顺序
  3. DM8168 系统编译、启动、烧写
  4. HDU 1724 Ellipse ——Simpson积分
  5. Windows Server 2008 R2托管服务账户(MSA)的功能
  6. 跨网页张贴(Cross-Page Posting),微软称为「跨网页公布」 #1
  7. Chapter 3: 常用SQL * PLUS命令
  8. matplotlib中ion()和ioff()的使用
  9. vm驱动程序版本不正确_微软 Win10 版本 2004 获得新版 Intel/Nvidia 显卡驱动程序
  10. 打印学生选课清单 (25 分)
  11. 国网376.1协议报文地址域
  12. 快来试试这几个照片拼图软件,效果很不错
  13. 节约里程法—单配送中心CVRP求解
  14. 第五届山东ACM大赛汇总
  15. codelite开发php,CodeLite环境搭建
  16. 【学习笔记】C++ GUI Qt4 第六章 6.4 滚动区域 和 6.5 停靠窗口和工具栏
  17. 取消usb计算机连接网络,usb连接(如何设置usb网络连接)
  18. if单选,双选,多选及switch多选择结构
  19. 第四期_Metasploit 基础(六)Meterprete《Metasploit Unleashed Simplified Chinese version(Metasploit官方文档教程中文版)》
  20. Linux 命令 常用总结(一)

热门文章

  1. GCC中同时使用动态和静态库链接的编译
  2. 击败安全系统系列文章之突破卡巴6
  3. 【BZOJ1022】小约翰的游戏(博弈论)
  4. 移动端web,tap与click事件
  5. 团队编程项目3-学生成绩管理系统-模块开发过程
  6. pod出现include of non-modular header inside framework module 错误
  7. Servlet中使用getInputStream进行文件上传
  8. Struts2升级注意事项
  9. ASP隐藏文件地址,并在下载时替换文件名
  10. Caffe中的损失函数解析