<DB2>《DB2使用期间一些注意事项》

1 建存储过程时 Create 后不能使用 TAB 键

create procedure 

create 后只能用空格,而不可用 tab 健,否则编译会通不过。

2 查看语句执行计划

dynexpln -d testdb -f test.sql -o test.out -g -z ';' 

sql 语句放在 test.sql 中,结果输出到 test.out。

3 查看SP存储过程执行计划

db2expln -c kstar -d testdb -o test.out -p P2806220 -s 0

-p 是存储过程的 id

4 手工做数据库别名配置及去除该别名配置

db2 catalog db gtjazb on /gtjadb2(目录) 
db2 uncatalog db gtjazb

5 查看及停止数据库当前的应用程序

db2 list applications show detail 

授权标识 | 应用程序名 | 应用程序句柄 | 应用程序标识 | 序号# | 代理程序 | 协调程序 | 状态 | 状态更改时间 | DB 名 | DB 路 径 | | 节点号 | pid/线程

1、应用程序标识的第一部分是应用程序的 IP 地址,不过是已 16 进制表示的。
2、pid/线程即是在 unix 下看到的线程号

停止应用程序::该 236 是查看中的应用程序句柄

db2 "force application(236)" 
db2 “force application all

6 更改 dbheap 的大小

db2 update db cfg for testdb using DBHEAP 4096 

该值是对 db 的。 Dbheap>catalogcache_sz+logbufsz

7 改 catalogcache 的大小

db2 update db cfg for testdb using catalogcache 2048 

和表的数量和字段数量有关,如果表及字段较多,最好将该指标改
大一些。该值的大小可以开为和建表 script 的大小相当,再稍大一点。
当然,如果有动态创建表的话,根据实际情况可能要开得更大一些。

8 改工具堆大小

UTIL_HEAP_SZ
这个指标值是用于对 import,export,load 等工具来分配内存的。

9 改排序堆的大小

db2 update db cfg for testdb using SORTHEAP 2048 

将排序堆的大小改为 2048 个页面,查询比较多的应用最好将该
值设置比较大一些。
该指标值是对每个连接分配的内存,如果连接数比较多,注意不要
开得太大。如果看到了 sort overflow 的话,可以将改值调大一些。
这个内存是只在用的时候才申请,平时是不会申请的。

10 改 stmtheap 的大小

db2 update db cfg for head using STMTHEAP 4096 

该指标值是对每个连接分配的内存,如果连接数比较多,注意不要
开得太大。该数据值和解释语句有关,如果太小,可能比较大的语句会解释不了。这个内存是只在用的时候才申请,平时是不会申请的。

11 改锁的相关参数的大小

db2 update db cfg for head using LOCKLIST 40000 

这个是整个 db 的最大锁资源占的内存。锁资源的消耗是每条共享锁
占 36 个字节,独占锁占用 72 个字节。锁资源的大小要考虑应用来设置。

db2 update db cfg for head using MAXLOCKS 10 

这个参数是设定单个应用程序能够使用的最大锁资源,这是个百分
比的值。实际上单个应用程序能够使用的锁资源的大小为
LOCKLIST* MAXLOCKS

db2 update db cfg for head using LOCKTIMEOUT 60 

这个参数是设定应用程序锁等待的最大时间。单位是秒,这个值的
设定要比较适当,对并发较多的情况下,锁等待可能是不可避免的,如
果设定不适当,可能会发生太多的 time out 错误。

db2 update db cfg for head using DLCHKTIME 10000 

这个参数是设定系统检测死锁发生的时间,单位是毫秒,不要设得
太小,耗系统资源且没太多必要

12 升级后消除版本问题

db2 bind @db2ubind.lst 
db2 bind @db2cli.lst

13 数据库性能下降后做 runstats 及 rebind 包。

在表(大表)的记录的条数有 30%的变化以后,就应该做一次 runstats
从方便管理的角度,直接从 syscat.tables 中建 script。

 db2 “select 'runstats on table db2inst1.' || tabname || ' and indexes all' from syscat.tables where tabschema='DB2INST1' and type='T'>stats.sql 

将 stats.sql 中的多余的信息删除后,运行该脚本。

db2 -tvf stats.sql 

请注意在做 runstats 时,将其他应用全部断开。
为了提高速度,可以调整一下 database 的参数,将 applheapsz ,
sortheadp,stmtheap 先扩大 10 倍,但注意做完 rebind 后将参数恢复回来。

注意:在作完 runstats 后,相关的 sp 如果不做 rebind,性能不会有任何变 化,不会使用新的统计数据来计算。

db2 “select 'rebind package '||pkgname from syscat.packages where pkgschema='DB2INST1’ “ >rebind.sql 

将 stats.sql 中的多余的信息删除后,运行该脚本。

db2 -tvf rebind.sql

15 修复诊断数据库 db2dart 的使用

 db2dart testdb//对一个表做诊断(从这里可以得到该表的 index 的 id号) 
db2dart testdb/T //对一个表的 index 做修复 
db2dart gtjazb /MI

db2dart 还有一些功能,但 db2dart 是个比较深的用法,一般情况下不要使用。具体可以看帮助。

16 获取数据库的信息 db2support 的使用

db2support /gtja_emc/dream/ -d testdb

17 有关锁的知识

在 db2 get snapshot for Locks on head >snap.log 时,经常会看到一些
锁的类型,不是很明白:
S:share 锁,共享锁,加上后,其他应用程序可以读,但不可 update,
每个占用 36 个字节。
X:exclusive,独占锁,加上后,其他程序除非使用 UR 隔离级,
否则不可读。每个占用 72 个字节。

**** 表锁 
IN (Intenet None)不需要行锁 
IS (Intent Share) 需要行锁配合 
IX (Intent eXclusive) 需要行锁配合 
SIX (Share with Intent exclusive)需要行锁,共享排他锁 
S (Share) 不需要行锁配合 
U (Update) 不需要行锁配合 
X (eXclusive) 不需要行锁配合 
Z (Super Exclusive)不需要行锁配合 
***** 行锁 
S (Share)共享锁 
U (Update) 更改锁 
X (eXclusive) 排他锁 
W (Weak eXclusive)弱排他锁 
NS (Next Key Share) 下一行共享锁 
NX (Next Key eXclusive)下一行排他锁 
NW (Next Key Weak eXclusive)下一行弱排他锁

锁的叠加情况:
S 锁和 S 锁是可以多个程序对一个对象加。
X 锁和 S 锁不兼容。

Object Type= Row (行锁)
Object Type= Table (表锁)
Object Type= Key Value
Object Type= Internal P Lock
Object Type= Internal V Lock
Object Type= Internal C Lock

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/210399.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

git 拉取项目指定目录或者指定文件

因为要做数据库自动更新,需要拉取Gitlab项目中/bm-server-biz/docs目录下的表更新sql文件,其他的都不需要,这时候可以利用git的“sparse checkout”方法(设置稀疏检出)来实现。 1、在项目目录下git 初始化 [rootxcc-…

开源软件:JumpServer、DataEase、MeterSphere

FIT2CLOUD 认识开源软件之前,先了解一下开发团队FIT2CLOUD。FIT2CLOUD(飞致云)是一家中国领先的开源软件公司,成立于2014年。公司专注于提供工业操作系统技术平台与解决方案,是中国工业互联网行业的领军企业&#xff…

矩阵处理—Zigzag矩阵打印

与其明天开始,不如现在行动! 文章目录 Zigzag矩阵打印1.1 题目描述1.2 解决思路1.3 代码实现 💎总结 Zigzag矩阵打印 1.1 题目描述 有一个n行m列的矩阵,要求按照Z字形打印出数据,如图: 1.2 解决思路 用一…

Weblogic T3协议反序列化漏洞

文章目录 1. Weblogic T3协议反序列化漏洞1.1 漏洞描述1.2 基本原理1.3 漏洞复现1.4 修复建议 1. Weblogic T3协议反序列化漏洞 1.1 漏洞描述 说明内容漏洞编号CVE-2018-2628漏洞名称Weblogic T3协议反序列化漏洞漏洞评级高危影响范围Weblogic 10.3.6.0Weblogic 12.1.3.0Webl…

基于JavaWeb+SSM+Vue居住证申报系统小程序的设计和实现

基于JavaWebSSMVue居住证申报系统小程序的设计和实现 源码获取入口KaiTi 报告Lun文目录前言主要技术系统设计功能截图订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 源码获取入口 KaiTi 报告 1.1题目背景 随着时代的发展,人口流动越来越频繁&#xff0…

生活、工作常用API免费接口

身份证识别OCR:传入身份证照片,识别照片文字信息并返回,包括姓名、身份证号码、性别、民族、出生年月日、地址、签发机关及有效期。二维码识别OCR:对图片中的二维码、条形码进行检测和识别,返回存储的文字内容。银行卡…

pycharm安装

1.先去官网下载pycharm 2.下载python3.8 3.修改pip镜像 4.如果有环境变量没加的加一下

Gazebo基本使用

参考文章 熟悉Gazebo界面 : ROS自学笔记八:Gazebo 搭建环境:Gazebo仿真环境搭建 搭建环境+加载机器人:gazebo仿真环境搭建配置小车运动仿真

全国农服进万家系列活动——中国农业生产托管万里行在河北玉田举行

12月8日,“全国农服进万家系列活动-中国农业生产托管万里行”在河北省玉田县圆满举行。来自全国各地农业农村领域的嘉宾齐聚一堂,交流农业社会化服务典型经验,共话农业社会化服务高质量发展大事。 原农业部总农艺师、中国合作经济学会会长孙中…

【恋上数据结构】前缀树 Tire 学习笔记

Tire 需求分析 如何判断一堆不重复的字符串是否以某个前缀开头? 用 Set\Map 存储字符串(不重复)遍历所有字符串进行判断缺点:时间复杂度 O(n) 有没有更优的数据结构实现前缀搜索? Tire(和 Tree 同音&a…

Rust测试字符串的移动,Move

代码创建了一个结构体,结构体有test1 字符串,还有指向字符串的指针。一共创建了两个。 然后我们使用swap 函数 交换两个结构体内存的内容。 最后如上图。相同的地址,变成了另外结构体的内容。注意看指针部分,还是指向原来的地址…

input、el-input输入框输入规则

一、input 只能输入框只能输入正整数&#xff0c;输入同时禁止了以0开始的数字输入&#xff0c;防止被转化为其他进制的数值。 <!-- 不能输入零时--> <input typetext οninput"valuevalue.replace(/^(0)|[^\d]/g,)"><!-- 能输入零时--> <inp…

luceda ipkiss教程 43:画渐变圆弧型波导

案例分享&#xff1a; from si_fab import all as pdk import ipkiss3.all as i3 from ipcore.properties.restrictions import RestrictTuple from ipkiss.geometry.shapes.modifiers import __ShapePathBase__ import numpy as np from math import atan2class ShapePathTa…

[java]学生管理系统

一、学生类 首先创建一个学生类&#xff0c;定义学号姓名年龄居住地 public class Student {private String id;private String name;private String age;private String address;//构造函数public Student(String id, String name, String age, String address) {this.id i…

54.grpc实现文件上传和下载

文章目录 一&#xff1a;简介1. 什么是grpc2. 为什么我们要用grpc 二&#xff1a;grpc的hello world1、 定义hello.proto文件2、生成xxx_grpc.pb.go文件3、生成xxx.pb.go结构体文件4、编写服务代码service.go5、编写客户端代码client.go 三、服务端流式传输&#xff1a;文件下载…

AIOps、微服务和云平台

数字景观正在从整体转向微服务、基于云的服务。企业和公司需要适应不断变化的技术格局并跟上变化。系统变得越来越复杂并且不容易管理。我将尝试解释一些较新的架构方法、趋势&#xff0c;并提供对 AIOps 的见解以及它如何帮助解决这个问题。 微服务 微服务架构正在成为最受欢…

什么是web组态?一文读懂web组态

随着工业4.0的到来&#xff0c;物联网、大数据、人工智能等技术的融合应用&#xff0c;使得工业领域正在经历一场深刻的变革。在这个过程中&#xff0c;web组态技术以其独特的优势&#xff0c;正在逐渐受到越来越多企业的关注和认可。那么&#xff0c;什么是web组态&#xff1f…

android-android源码目录

android源码目录 Android.bp art bionic bootable bootstrap.bash build build.sh compatibility cts dalvik developers development device external frameworks hardware IMAGE javaenv.sh kernel libcore libnativehelper Makefile mkcombinedroot mkimage_ab.sh mkimage.…

我的创作纪念日——一年

机缘 初心始于对技术的热爱和分享知识的渴望。最初&#xff0c;我在一次练习中遇到了一些问题&#xff0c;通过解决这些问题并将解决方案记录下来&#xff0c;我意识到分享经验对自己和他人都非常有价值。于是&#xff0c;我开始在博客和社交平台上记录日常学习过程、撰写技术…

uni-app 获取PAD激光测温方式 (uni-app安卓获取广播内容)

直接在onload执行下列代码 var main plus.android.runtimeMainActivity(); //获取activityvar context plus.android.importClass(android.content.Context); //上下文var receiver plus.android.implements(io.dcloud.feature.internal.reflect.BroadcastReceiver, {onRece…