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

调优 DB2 UDB v8.1 及其数据库的最佳实践

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2017-06-28

匿名通过本文主要向大家介绍了db2 udb,金蝶标准版v8.1数据库,udb,udb是什么,udb文件等相关知识,希望本文的分享对您有所帮助
</div>

简介

性能是关系到随需应变型应用程序成功与否的关键。当那些应用程序使用 IBM® DB2 Universal Database™ 作为数据存储时,至关重要的是,从一开始就应该知道有关如何在 DB2 UDB 上取得尽可能好的性能的基础知识。在本文中,我将给出关于调优 DB2 UDB V8 系统的一些比较深入的建议。

我们将谈论这一过程中自始至终存在的性能问题。您可以遵循从创建一个新数据库到运行应用程序这之间的流程。通过本文可以看到如何使用 DB2 自动配置实用程序来初始配置数据库管理器和数据库环境。接着,我将讨论创建缓冲池、表空间、表和索引的最佳实践。另外,您可能还想改变一些重要配置参数的初始值,以便更好地支持应用程序,因此我们还将简介这些配置参数。

我们将论述基于监视器(monitor)细节输出的调优,从而展示如何使用快照监视(snapshot monitoring)帮助调优 SQL、缓冲池和各种不同的数据库管理器以及数据库配置参数。接着,我们将进一步研究应用程序发送给 DB2 的 SQL。通过使用 Explain,可以生成 SQL 采用的访问计划(access plan),并寻找可以进一步优化的机会。我们将考察 Design Advisor 这样一个工具,它可以根据所提供的 SQL 负载推荐出新的索引,或者评估现有的索引。最后,我们还将讨论一些 DB2 SQL 选项。

此外,持续(on-going)维护对于维持最佳性能非常重要。所以我们将讨论一些可以帮助我们进行持续维护的实用程序。对于那些正使用 DB2 ESE Database Partitioning Feature (DPF) 的读者,我会用一节的篇幅谈论为使数据库高效运行而应该考虑的一些问题。有时候可能会存在某种外在的瓶颈(来自 DB2)而使您无法达到性能目标,本文列出了一些常见的瓶颈,以及用于监视这些瓶颈的实用程序。最后,本文列出了一些有价值的 IBM 资源,以帮助您发现有价值的 DB2 信息。

本文是为那些在 DB2 数据库管理方面有中级技能的人而写的。

读前须知

在开始性能调优过程之前,应确保您已经应用了最新的 DB2 修订包(fix pack)。修订包常常会带来性能的提高。我们要使用 DB2 FixPak 4 作为本文的基础。如果您使用的是 FP4 之前的版本,那么这种环境可能不能提供这里讨论的所有选项。

在进行调优时,最好是有一个关于数据库使用(即应用程序运行在 DB2 上的工作负载)的可再现场景,这样就可以利用这种可再现场景来量身定制调优效果。例如,如果工作负载在不同的运行期间所经历的时间上有 10% 的变化量,那么就很难知道调优的真正效果如何。此外,如果在两次运行中各自的工作负载不一样,也就难于衡量数据库管理器和数据库配置参数所发生的变化。

坚持跟踪所有的变化。这样有助于开发调优脚本或者建议,以作为供其他 DBA 参考的历史,同时也有助于防止遵循不良的变化。

“十大”性能增强推动器

做了下面十件事情,您就几乎可以使数据库获得最佳性能。通常您会发现,通过大约 10% 的配置变化,就可以达到最佳性能的 90%。我将在下面适当的小节(在圆括号中标出)中详细讨论其中的每一条:

确保有足够的磁盘(每个 CPU 有 6-10 个磁盘才是一个好的开端)。每个表空间的容器应该跨越所有可用的磁盘。有些表空间,例如 SYSCATSPACE 以及那些表数量不多的表空间,不需要展开到所有磁盘上,而那些具有大型用户或临时表的表空间则应该跨越所有磁盘。( 表空间)。

缓冲池应该占用可用内存的大约 75% (OLTP) 或 50% (OLAP)( 缓冲池)。

应该对所有表执行 runstats,包括系统编目表( Runstats)。

使用 Design Advisor 为 SQL 工作负载推荐索引和检查索引( Design Advisor)。

使用 Configuration Advisor 为应用程序环境配置数据库管理器和数据库( Configuration Advisor)。

日志记录应该在一个独立的高速驱动器上进行,该驱动器由 NEWLOGPATH 数据库配置参数指定( Experimenting)。

通过频繁的提交可以增加并发性( SQL 语句调优)。

应该增加 SORTHEAP,以避免排序溢出( DBM 和 DB 配置)。

对于系统编目表空间和临时表空间,表空间类型应该为 SMS,而对于其他表空间,表空间类型应为 DMS( raw device 或者是文件)。运行 db2empfa,以便支持用于 SMS 表空间的多页(multi-page )文件的空间分配。这将允许 SMS 表空间一次增长一个区段(Extend),而不是一页,从而可以加快那些大型的插入操作和溢出磁盘的排序操作( 表空间)。

对于重复的语句,使用参数标记 ( SQL 语句调优)。

创建数据库

创建一个数据库时,系统会缺省地创建 3 个系统管理存储(System Managed Storage,SMS) 表空间(SYSCATSPACE、TEMPSPACE1 和 USERSPACE),以及一个 4 MB 的缓冲池(IBMDEFAULTBP),这些表空间和缓冲池的页面大小都是 4 KB 。根据下面的建议,先删除 TEMPSPACE1 和 USERSPACE 然后再重新创建它们,通常这是一种可取的做法。几乎在所有情况下, SYSCATSPACE 都不需要再作进一步的优化,但是如果将其容器展开到几个磁盘上,性能上可能会有少量提升。( 稍后讨论)。

在创建数据库时,您可以利用自动配置选项来根据环境对数据库进行最初的配置。当应用程序以编程方式创建 DB2 数据库时,这样做很方便,因为可以将这些选项从应用程序提供给 DB2。在自动配置数据库时不得不用到的另一个选项是更强大的 Configuration Advisor GUI,它不但可以配置数据库,而且还可以配置实例。不过,要使用 Configuration Advisor,数据库必须首先存在。我们将在 随后的小节中讨论 Configuration Advisor。

在 清单 1中,我们使用 CREATE DATABASE 命令的自动配置选项在 Windows 中创建了一个数据库,该数据库有一个跨越两个可用磁盘的 SYSCATSPACE。

清单 1. 使用自动配置选项创建数据库

create database prod1 catalog tablespace
  managed by system using ('c:proddbcattbs1','d:proddbcattbs2')
  extentsize 16 prefetchsize 32
  autocon图 using mem_percent 50 workload_type simple num_stmts 10
    tpm 20 admin_priority performance num_local_apps 2 num_remote_apps
    200 isolation CS bp_resizeable yes apply db and dbm

表 1显示了有效的自动配置输入关键字以及值:

表 1. 自动配置选项

关键字 有效值 缺省值 描述
mem_percent1-10025分配给数据库的物理存储空间的百分比。如果本服务器(不包括操作系统)上运行有其他应用程序,那么将其设为小于 100 的某个值
workload_typesimple, mixed, complexmixedsimple 型工作负载倾向于 I/O 密集型,并且大多数是事务处理(OLTP),而 complex 型工作负载则倾向于 CPU 密集型,并且大多数是查询(OLAP/DSS)
num_stmts1-100000025每个工作单元包含的语句条数
tpm1-20000060每分钟的事务数。
admin_priorityperformance, recovery, bothboth优化以获得更好性能(每分钟更多的事务数)或更好的回复时间
num_local_apps0-50000连接的本地应用程序的数目
num_remote_apps0-5000100连接的远程应用程序的数目
isolationRR, RS, CS, URRR连接到该数据库的应用程序的隔离级别(Repeatable Read、Read Stability、Cursor Stability 和 Uncommitted Read)。
bp_resizeableyes, noyes是否可以在线更改缓冲池大小

Configuration Advisor

如果您在创建数据库的时候已经使用了自动配置,那么这一步就不是很重要了。Configuration Advisor 是一个 GUI 工具,它允许根据您针对一系列问题给出的回答自动配置数据库和实例。通过使用这种工具,常常可以取得相当可观的性能提升。这个工具可以从 Control Center 中通过右键单击数据库并选择 "Configuration Advisor" 来打开。当您回答完所有问题后,就可以生成结果,还可以选择应用结果。 图 1展示了结果页面的屏幕快照:

图 1. Configuration Advisor Results 屏幕

调优 DB2 UDB v8.1 及其数据库的最佳实践(1)

创建缓冲池

恰当地定义缓冲池是拥有一个运行良好的系统的关键之一。对于 32 位操作系统,知道共享存储器的界限十分重要,因为这种界限将限制数据库的缓冲池(即数据库的全局存储器),使其不能超出以下界限(64 位系统没有这样的界限):

AIX - 1.75 GB

Linux - 1.75 GB

Sun - 3.35 GB

HP-UX - approximately 800 MB

Windows - 2-3 GB (在 NT/2000 上的 boot.ini 中使用的是 ' 3GB' switch)

用下面的公式计算近似的数据库全局存储器的使用:

清单 2. 计算全局存储器的使用(共享存储器)

buffer pools + dbheap + util_heap_sz + pkgcachesz + aslheapsz + locklist + approx 10% overhead

如果启用了 INTRA_PARALLEL,那么将 sheapthres_shr 的值加到总和中。

确定有多少缓冲池

对于数据库中一个表空

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

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

  • DB2 UDB V8.1管理学习笔记(一)
  • DB2 UDB V8.1管理学习笔记(一)
  • DB2 UDB V8.1管理学习笔记(二)
  • DB2 UDB V8.1管理学习笔记(三)
  • DB2 基础:关于 DB2 UDB 监控的一些问题和解答
  • DB2 基础: 介绍 DB2 UDB 跟踪功能
  • DB2 基础: 如何从 DB2 UDB 系统编目中获得有用的信息
  • 用于监控DB2实例和数据库的新的DB2 UDB工具
  • 如何在 SAP 系统中监控和分析 DB2 UDB 性能
  • 在 Windows 中用 GCC 编译 DB2 UDB 存储过程

相关文章

  • 2017-06-28DB2 9 基础(730 考试)认证指南,第 2 部分: 安全性
  • 2017-06-28我与Db2 9新特性的零距离体验
  • 2017-06-28DB2数据库部分日常实用操作
  • 2017-06-28IBM DB2 数据复制迁移方法
  • 2017-06-28DB2数据库优化需掌握几条基本策略
  • 2017-06-28详解DBA创建用户帐户及分配特定特权的步骤
  • 2017-06-28通过IBM Migration Toolkit的支持把数据从MySQL迁移到DB2和Informix Dynamic
  • 2017-06-28用 Q Replication Dashboard V97 实时监控复制
  • 2017-06-28将 InfoSphere Warehouse 数据挖掘与 IBM Cognos 报告集成,第 2 部分: 使用 InfoSphere Warehouse 和 Cognos 检测偏差
  • 2017-05-11DB2编程序技巧 (五)

文章分类

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

最近更新的内容

    • DB2 V9.7 分区索引新特性
    • DB2编程序技巧 (八)
    • 带你深入了解IBM DB2的通信与连接过程
    • DB2 9.5 中的锁定超时分析新方法
    • 解秘IBM数据库新利器:pureScale技术
    • 教你正确的理解DB2中的表空间
    • FAQ:关于 DB2 数据服务器使用的常见问题
    • DB2 for i5/OS 上的 SQL 性能优化目标评测
    • 使用 Tivoli Access Manager for Operating Systems 保护 DB2 资源
    • 提高DB2 Web程序性能5条规则

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

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