DB2数据库优化可以考虑以下几条基本策略

1、对后续用到的表建立索引(注意在插入数据之前建立或者在插入后建立但是要runstats):

说明:插入之前建立的话,在表插入数据的过程中,索引也随着更新,这样的话需要较大的日志空间,因此速度会比较慢,可以采用不计日志的方式插入;数据差完之后再建立索引的话,该表的日志统计信息没有更新,因此执行计划会很差,用不到索引,runstats on tabble asiainfo.aaaa and indexes all之后,索引统计信息就会更新,这样执行计划会考虑到使用索引,因此速度快。

2、将比较大的表建在多节点的表空间上,同时建好索引:

说明:现有的db2数据仓库每个节点使用2个CPU,4G内存,DIM表空间计划是存放维表的表空间,因此是单节点的。在使用这个表空间的中的表的时候,最多只会用到2个CPU,4G内存,加上其他的表空间也都要用到这两个CPU和这4G内存,因此资源比较有限。建议较大的表不要放在这个表空间中,而是建立好分区键,放在多节点的表空间中,这样检索这个表的时候32个节点同时检索,最后汇总到0节点上进行展现,速度当然会非常的快。另外,虽然32节点并行性好,但是如果建立好索引的话,速度会更快。

3、将插入的表使用不计日志的方式插入:

说明:数据库为了保证数据的一致性和可回退性,插入、更新或者删除数据的时候要计日志,这样在失败的时候可以回退,但是如果并发较多或者操作非常大的话,会导致争抢日志的情况,导致操作非常缓慢。如果使用不计日志的方式进行插入、更新或者删除操作的话,日志使用极少,但是如果操作失败的话是无法回退的,这样一致性得不到保证,这个表只能删除重建!

4、将表建立表级锁,减少锁数量的使用:

说明:数据库的锁的最大数量是有限制的,并且每个锁都要占一定的内存,因此如果锁的数量非常多,使用的内存也就多,导致资源紧张。

5、建立临时表的时候尽量只插入用的到的数据,不插用不到的数据:

说明:程序中好多地方为了提高速度,将用到的数据先插入到一个临时表中,但是插入了非常多的没有使用的数据,这样导致临时表也非常大,所以尽可能的只向临时表中插入用的到的数据,并且尽可能的使用索引,可以大大的提高速度。

6、关于左关联的一点使用心得:

在on的条件里面尽量的只写关联条件和对左关联的表作限制,而对主表的限制不要写在这里。如果写在里面的话,不但速度非常慢,而且可能会出现莫名其妙的结果。

转载于:https://blog.51cto.com/296525818/475925

数据库优化的几条基本策略相关推荐

  1. mysql优化难 选db2_DB2数据库优化的几条策略_MySQL

    DB2 1. 对后续用到的表建立索引(注意在插入数据之前建立或者在插入后建立但是要runstats) 说明:插入之前建立的话,在表插入数据的过程中,索引也随着更新,这样的话需要较大的日志空间,因此速度 ...

  2. Sql与数据库优化的几条核心建议

    本文目录: 为什么要进行数据库优化 MySql数据库优化 SQL及索引优化 MySQL慢查日志分析工具 通过explain查询分析SQL的执行计划 具体慢查询优化的案例 1. 为什么要进行数据库优化 ...

  3. 数据库优化:52 条 SQL 语句性能优化策略,果断收藏!

    1 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2 应尽量避免在 where 子句中对字段进行 null 值判断,创建表时NULL是默认值 ...

  4. mysql数据库优化语句_【MySQL】10条SQL优化语句,让你的MySQL数据库跑得更快!

    慢SQL消耗了70%~90%的数据库CPU资源: SQL语句独立于程序设计逻辑,相对于对程序源代码的优化,对SQL语句的优化在时间成本和风险上的代价都很低: SQL语句可以有不同的写法: 1 不使用子 ...

  5. table 条数过大优化_MySQL 数据库优化,看这篇就够了 | 不长不短,2000 字小结

    前言 数据库优化一方面是找出系统的瓶颈,提高MySQL数据库的整体性能,而另一方面需要合理的结构设计和参数调整,以提高用户的相应速度,同时还要尽可能的节约系统资源,以便让系统提供更大的负荷. 1. 优 ...

  6. SqlSever2005 一千万条以上记录分页数据库优化经验总结【索引优化 + 代码优化】一周搞定...

    对普通开发人员来说经常能接触到上千万条数据优化的机会也不是很多,这里还是要感谢公司提供了这样的一个环境,而且公司让我来做优化工作.当数据库中的记录不超过10万条时,很难分辨出开发人员的水平有多高,当数 ...

  7. 数据量高并发的数据库优化

    数据量高并发的数据库优化一.数据库结构的设计如果不能设计一个合理的数据库模型,不仅会增加客户端和服务器段程序的编程和维护的难度,而且将会影响系统实际运行的性能.所以,在一个系统开始实施之前,完备的数据 ...

  8. 【转贴】大型ORACLE数据库优化设计方案

    大型ORACLE数据库优化设计方案 本文主要从大型数据库ORACLE环境四个不同级别的调整分析入手,分析ORACLE的系统结构和工作机理,从九个不同方面较全面地总结了ORACLE数据库的优化调整方案. ...

  9. 大数据量高并发访问的数据库优化方法

    一.数据库结构的设计 如果不能设计一个合理的数据库模型,不仅会增加客户端和服务器段程序的编程和维护的难度,而且将会影响系统实际运行的性能.所以,在一个系统开始实施之前,完备的数据库模型的设计是必须的. ...

最新文章

  1. SAP MM盘点流程里如何处理事务代码MI11 Recount过的盘点凭证?
  2. 【重要预警】“永恒之蓝”漏洞又现新木马 组成僵尸网络挖矿虚拟货币
  3. c语言患者住院管理系统,患者住院管理系统 C,C++.doc
  4. 让Dapper支持读写分离
  5. 大数据常用数据库汇总
  6. python内置函数 pdf_关于Python巧妙而强大的内置函数
  7. google protobuf_protobuf 指南
  8. win10配置gcc编译环境
  9. ensp桥接云ping不通_谁偷了我的云主机文件?五大场景避坑指南
  10. rocketmq linux环境下载地址,Linux下RocketMQ下载安装教程
  11. Android反射修改view,Android 修改viewpage滑动速度的实现代码
  12. java基础题目的网站_Java基础题目
  13. Xcode 12 引用缺失包:libstdc++.tbd libstdc++.6.tbd libstdc++.6.0.9.tbd 等
  14. Atitit 软件集成法 eai 目录 1. 表示集成 ui界面集成 最简单 1 2. 数据集成 1 3. 控制集成 功能集成 应用集成 1 4. 业务流程集成 1 5. 企业应用集成 1
  15. 给架构师的推荐——《企业IT架构转型之道》
  16. 12306数据泄露,12306数据库遭网络公开下载,这里提供个账号安全监测工具
  17. 系统规划与管理师——IT服务规划设计
  18. SpringBoot java串口操作(rxtx)
  19. Web前端开发之CSS学习笔记5—溢出、浮动、层叠
  20. 对伪元素::after和::before的理解

热门文章

  1. Julia OpenCV绑定简介
  2. Qt添加对Android的OpenSSL支持
  3. Qt Creator分析CPU使用率
  4. QT的QEnableSharedFromThis类的使用
  5. php键名改为0.1.2.3,揭秘 0.1 + 0.2 != 0.3(php 请自觉点用round)
  6. python高阶函数 动态_Python进阶内容(一)--- 高阶函数 High order function
  7. 02_clickhouse安装,卸载,启动/关闭服务,交互式命令(数据库创建,数据导入,查询),批模式数据导入,MySQL接口操作ClickHouse,DBeaver可视化工具安装与使用(学习笔记)
  8. 利用CSS让元素垂直居中的两种实现方法
  9. PLSQL写给员工涨工资,总裁涨1000,经理涨800,其他员工涨400
  10. 表的插入、更新、删除、合并操作_7_通过视图插入