`

了解DB2数据库优化的几条策略

    博客分类:
  • DB2
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的条件里面尽量的只写关联条件和对左关联的表作限制,而对主表的限制不要写在这里。如果写在里面的话,不但速度非常慢,而且可能会出现莫名其妙的结果。

分享到:
评论

相关推荐

    DB2数据库优化教程

    ### DB2数据库优化教程 #### 一、引言 随着信息技术的发展,数据库系统在现代企业的信息系统架构中扮演着至关重要的角色。特别是在企业级应用中,如ERP(企业资源规划)、OA(办公自动化)以及CRM(客户关系管理)...

    db2c在cics中的建法

    DB2C,全称为DB2 for CICS,是IBM提供的一种在CICS(Customer Information Control System)环境中访问DB2数据库的接口。CICS是IBM主机系统中用于处理交易的中间件,广泛应用于银行、保险、航空等行业的核心业务系统...

    DB2查询访问计划分析与优化—张广舟.pdf

    IBM DB2作为一款先进的关系型数据库管理系统,其内置的优化器能够在处理复杂的SQL查询时提供高效的执行策略。本文将基于《DB2查询访问计划分析与优化—张广舟》这一资料,深入探讨DB2中的查询优化技术,特别是查询...

    批量更新历史数据 每10000提交一次

    本主题聚焦于“批量更新历史数据每10000提交一次”的实践方法,这涉及到数据库操作优化、事务管理以及代码实现等技术细节。 首先,批量更新是为了避免频繁的小规模数据库交互,因为每次交互都会带来一定的开销,如...

    数据业务工程师DB2入门指南

    #### 一、DB2数据库系统结构概览 **1.1 概述** DB2是IBM开发的一款高性能的关系型数据库管理系统(RDBMS),广泛应用于企业级应用中。本指南旨在为新入门的数据业务工程师提供关于DB2数据库的基础知识和实用技巧。...

    DB2使用经验积累

    3. 从数据表中取指定前几条记录:可以使用`LIMIT`或`FETCH FIRST`子句来获取数据表的前n条记录。例如,`SELECT * FROM table LIMIT n` 或 `SELECT * FROM table FETCH FIRST n ROWS ONLY`。 此外,DB2还涉及很多...

    DB2学习手册

    3. **从数据表中取指定前几条记录:** 使用`LIMIT`或`FETCH FIRST`子句来获取指定数量的记录。 4. **游标的使用:** 游标是用于处理结果集的指针。可以用来逐行检索结果集中的数据。 5. **类似DECODE的转码操作:** ...

    DB2性能监控SQL

    综上所述,通过对上述几种类型的SQL查询进行监控,我们可以有效地提高DB2数据库的整体性能。这些SQL语句不仅可以帮助我们快速定位到性能瓶颈所在,而且还能指导我们制定出合理的优化策略,从而确保数据库系统的高效...

    DB2性能监控和调优最佳实践

    徐明伟在2011年的ITPUB数据库大会上分享了关于DB2性能监控和调优的最佳实践,这一主题涵盖了性能问题识别、监控工具使用、数据分析方法以及具体的调优策略,对于DBA和IT专业人士来说具有极高的参考价值。 ### 性能...

    牛新庄:DB2使用经验

    - **取指定前几条记录**:可以通过`SELECT * FROM table ORDER BY column LIMIT n`获取前n条记录。注意,在DB2中,`LIMIT`是标准SQL的一部分。 - **游标的使用**:游标允许按行处理查询结果。使用时需要注意`COMMIT...

    Oracle SQL tuning 数据库优化步骤分享(图文教程)

    数据库优化通常包括以下几个层面: - **查询优化**:通过改进SQL语句,如避免子查询,使用JOIN替代自连接,合理使用索引等。 - **索引优化**:创建合适的索引以加速查询,但也要注意过多的索引可能导致插入、更新和...

    JAVA数据库编程JDBC .rar

    这本书可能会探讨如何优化JDBC代码,处理大数据量时的策略,以及如何利用JDBC进行复杂查询和存储过程的调用。 总之,理解和掌握JDBC是成为一名合格的Java数据库开发者的必备技能。通过阅读相关书籍和实践,你可以...

    Database Partitioning-Table Partitioning and MDC for DB2 9

    - **关系型数据库**:一种基于表格形式的数据存储方式,其中每个表格由行和列组成,每一行代表一条记录,每一列表示一个特定属性。 - **数据库管理系统(DBMS)**:用于创建、维护和查询数据库的软件工具。 - **事务...

    sqlServer数据库大表分区方案

    ### SQL Server 大表分区方案详解 #### 一、大表分区条件 在数据库管理过程中,随着业务数据的不断增长,单个表的数据...在实际应用中,还需要根据具体业务需求和技术环境来调整分区策略,以达到最佳的性能优化效果。

Global site tag (gtag.js) - Google Analytics