\system32\drivers\etc\services文件是对机器名到IP地址的解析。
\system32\drivers\etc\hosts文件是对端口名到端口号的解析。
以上两条上非DB2的,但在DB2中使用到。
db2admin start 起动DB2管理
DB2里对一个命令的HELP是:
>db2 ? 该命令
db2 连接到远程数据库
第一步建一个结点:
>db2 catalog tcpip node 结点名 remote 数据库服务器IP地址 server 端口(50000)
第二步建一个到库的联结别名:
>db2 catalog db 库名 as 别名 at node 结点名
第三步建立联结:
>db2 connect to 别名 user 用户名 using 用户密码
断开联结:
db2 connect reset
db2里需要用到一个系统环境变量:db2codepage, 缺省值是1386,此值非常重要,客户端于数据库端的db2codepage不一样时客户端就无法连上数据库端。
DB2里一个表的全名是:schema.表名,缺什情况下不同的用户看到的表是不一样的,
在程序的sql语句里必需用表的全名(切记)。
查看有哪些程序在使用该数据库:
>db2 list application
其结果中有一个字段application-handle在杀死该引用中用到
杀死一个程序对该数据库的使用:
>db2 force application {all | (application-handle)}
在库被使用时db2stop不能执行
DB2命令后所带参数:
-t 以;作为一句结束
-f 指向一个文件(即执行一个文件中的语句,在command窗口里有些命令无法执行,可先用notepad建一个文件然后执行它)
-v (我不知道是什么)
注释:-v用于显示当前所执行的sql命令。
一个windows nt 里的一般用户可以连到库,但无一般SQL语句的执行权,授权给一个用户:
>db2 grant sql语句(例如:select) on 表名 to user 用户名
取消该用户的权:
>db2 revoke sql语句 on 表名 from 用户名
DB2日志有两种:循环日志和永久型日志
循环日志:有3个文件循环写,所以会产生以前的操作记录被覆盖。好处:日志文件大小不变,备份方便,但不可以在线备份。
永久日志:其日志文件不断增涨,但操作记录不会被覆盖,可以在线备份。
如何备份:
>db2 backup db 数据库名 to 设备名(如:c:\);
恢复:
>db2 restore db 数据库名 from 设备名
(回滚rollforward我不太清楚)
注释:rollforword 是前滚的意思,向前到某一个时间,以保持数据的一致性,用于在线备份后的恢复,恢复是从log日志中开始到日志中的某一个时间,即可。只有在数据一致性得到保证的情况下,才能继续对数据库操作。
连接到数据库时报回滚错误
用下面的命令:
db2 rollforward db fmisadd to end of logs and complete
导出导入数据库:
--export
db2move hadb export -u userid -p password;
--import
db2move hadb import -u userid -p password;
导出库中表的数据:
>export to 文件名.ixf of ixf select * from 表名
>import from 文件名.ixf of ixf create into 表名
导出库的数据格式还有两种del(文件格式)和wsf,但ixf格式信息最全,包含表结构信息,可恢复出已删去的表。
sql的inner/left/right/full join,这些概念在<<数据库概论>>中有说明,left以左表为主,right以右表为主,full左右表记录都会在查寻结果中。
例如:>select aa,bb from db1 left join db2 on db1.id=db2.id
合并查寻:把两个或几个查寻结果合并到一个字段(条件是字段必须兼容)
格式:select ...... union select ....;
使用临时表:
with tmptable (字段1,...) as (select....) --建一个临时表
select 字段1,.... from tmptable,另一个表 where.... --使用该临时表于另一个表交叉查寻。
**order by 必需出现在结果集,在临时表中不能用。
截取字符串
substr(字段名,开始位置,字符个数)
判断是否是空
字段名 is null
例子:
到什么时候活了10000天:
select distinct date('1980-01-01')+10000 day from a
一共活了多少天:
select distinct days(current date)-days(date('1980-01-01')) from a
类型转换:用cast ,例:
select distinct cast(current date as char(10))||'aa' from a
case的使用:
select case when length(rtrim(学历))=0 then '未知学历' else xl end,rs from a
例:查寻一个公司的年龄分布:
with tmptable as (select case when year(current day)-csrq<20 then '小于20岁' when year(current day)-csrq<25 then '20-24岁' when year(current day)-csrq<30 then '25-29岁'
when year(current day)-csrq<35 then '30-34岁'
when year(current day)-csrq<40 then '35-39岁'
when year(current day)-csrq<45 then '40-44岁'
when year(current day)-csrq<50 then '45-49岁' else '大于50岁' end
as x from a)
select x,count(*) from tmptable group by x;
一个数据库中有些系统建的表是用来保存该库各种信息的,如:syscat.tables
例:查有多少个userid的表:
select count(*) from syscat.tables where type='T' and tabschema='uerid'
例:产生一个备分库中所有表的文本:
select 'export to '|| tabname || '.ixf of ixf select * from userid.' ||tabname||';' from syscat.tables where type='T' and tabschema='userid';
性能调整:
影响到DB2性能的有:
能够利用服务器的性能:1.并行性 2.减少通信
建立Index
<,>,= 第一类搜索谓词,
<>,like 第二类搜索谓词,
需要用函数 第三类搜索谓词,
select * from a
*尽量要哪个字段写哪个字段。
blocking的概念 客户端请求一次,数据库返回n个记录。
复合型SQL(我不太清楚)
注释:是指他所讲的联结union,建立临时表等复杂的sql语句。
DB2会对SQL语句优化,系统对表的信息知道的越多,优化越好,所以要做runstats
runstats命令把表的信息告诉系统,一般当数据量增加一倍时用该命令一次。
REORG命令是数据库整理,类似于磁盘碎片整理。
得到该instance的各种参数:(dbm cfg是整个DB2的参数,db cfg是对某个数据库的参数)
>db2 get dbm cfg
>db2 get db cfg for 数据库名
修改参数:
>db2 update dbm cfg using 参数 你要的数
>db2 update db cfg for 数据库名 using 参数 你要的数
当第一个用户连结到该数据库时会申请一个内存缓冲,默认是250页每页4k即1M。
Buffer pool size<4K> [BUFFPAGE]=250
修改该值:
>db2 update db cfg for test using buffpage 你要的数
但它的有效还取决于syscat.bufferpools中的npages是否为-1,为-1时它才有效,否则以syscat.bufferpols中的npage为准。
可用下面的命令看:
>select * from syscat.bufferpools
一般此值的设置应为系统内存的40%左右,太大时会使系统因动用虚拟内存从而太吃力。
sql语句的优化级别:一般取2或5(最高为9)
Default query optinization class <DFT_QUENYOPT>=5
该值越大优化越好,但优化所化时间也越长。
并行性设置:
Degree=-1 并行性全由操作系统完成。
当操作系统有并行处理时,Degree=-1
*****CUP与硬盘的个数一般为1:4到1:6;
用户最大连结数:
<MAXAPPLS>=40
BUFFPAGE与MAXPPLS的关系:BUFFPAGE>2*MXAPPLS
分享到:
相关推荐
### DB2 学习笔记详解 ...DB2的学习和掌握,不仅需要对上述命令和操作有深刻理解,还需要结合实际项目经验,不断实践和优化,才能真正发挥其强大功能。希望这份学习笔记能够帮助你在DB2的道路上更进一步。
超级友情大放送啊! DB2_SQL应用调优-解释工具db2expln的使用及实例分析 DB2_笔记大全_IBM Db2_日常实用操作积累-部分 db2expln_监控DB2活动 db2常用命令大全 DB2函数大全 DB2索引的设计与优化--批注
- `DB2常用SQL技巧及函数.txt` 和 `DB2常用标量函数.txt` 则专门针对SQL使用技巧和常用的标量函数进行了总结,有助于提升日常数据库操作的效率。 通过这些学习资料,你可以系统地学习和掌握DB2的基础知识、SQL语法...
Runstats命令的常用语法包括: - 收集表和索引的所有统计信息,包括数据分布:`RUNSTATS ON TABLE <表模式>.<表名> ON ALL COLUMNS WITH DISTRIBUTION AND DETAILED INDEXES ALL` - 只收集索引统计信息,不包括数据...
- **操作**:使用`DB2 ADD DATABASE`命令完成编目。 ##### 4. 使用Control Center操纵DB2对象 - **功能**:通过Control Center可以轻松地创建、修改和删除数据库对象,如表、视图和索引等。 #### 五、处理DB2数据 ...
您可能感兴趣的文章:数据库触发器DB2和SqlServer有哪些区别DB2死锁的解决过程全记录CentOS下DB2数据库安装过程详解db2数据库常用操作命令大全DB2新手使用的一些小笔记:新建实例、数据库路径不存在、客户端连接 .db2...
### MySQL核心技术学习笔记 #### 一、为什么要学习数据库 学习数据库的重要性主要体现在以下几个方面: 1. **持久化数据到本地**:数据库能够将应用程序产生的数据持久化存储在磁盘上,即使系统重启也不会丢失...
**文件操作命令** - **start/@**:运行SQL脚本 - **edit**:编辑SQL脚本 - **spool**:将屏幕输出保存到文件 **交互式命令** - **&**:变量替换,用户输入值 - **edit**:再次编辑SQL脚本 - **spool off**...
4. `SELECT`查询语句:用于从数据库中检索数据,是最常用的SQL命令之一。 三、Oracle数据库系统 Oracle是Oracle公司开发的一种数据库管理系统(DBMS),与其他知名DBMS如微软的SQL Server、IBM的DB2、MySQL和Sybase...
JDBC学习笔记 JDBC(Java DataBase Connectivity)是一种Java程序语言访问数据库的标准接口。它使得Java程序可以连接到各种不同的数据库管理系统,例如Oracle、SQL Server、MySQL、DB2、Sybase等。 JDBC的概念 ...
2. 常用数据库介绍:常见的数据库包括MySQL、Oracle、SQL Server和DB2等。Oracle数据库以性能和稳定性著称,但价格较高,因此在对稳定性要求极高的金融领域得到广泛应用。MySQL则以其免费、开源的特性在互联网公司中...
- **SQL的通用性**:不同的数据库系统(如MySQL、Oracle、DB2等)虽然可能支持的SQL语法略有不同,但基本的SQL命令都是相通的,这使得SQL成为一种非常通用的语言。 #### 三、MySQL的安装与配置 - **安装MySQL**: ...
这篇学习笔记将深入探讨MySQL的基础知识,包括数据类型、操作命令、存储过程和触发器等核心概念。 首先,让我们来看看MySQL的一些基本特点。与其他数据库系统如Oracle、SQL Server和DB2相比,MySQL以其开源免费和高...
接着深入探讨了关系型数据库的设计原则和操作方法,并重点讲解了MySQL中的常用操作。最后,针对数据库性能优化和部署管理提供了实用指南,帮助读者更好地理解和掌握MySQL的使用技巧。通过学习这些知识点,初学者可以...
3. **MySQL常用命令** - 登录MySQL服务器:`mysql -h 主机地址 -P 端口号 -u 用户名 -p`,输入密码后即可登录。 - 查看MySQL版本:可以使用`mysql --version`或`mysql -V`命令。 4. **MySQL数据库设计** - 数据...
【MySQL笔记1】这篇笔记主要介绍了MySQL的基础知识,包括数据库的概念、MySQL的安装以及一些常用命令的使用。MySQL是广泛使用的开源关系型数据库,尤其在互联网行业中占据主导地位。这里我们将探讨以下几个方面: 1...
#### 七、其他常用命令 - **创建数据库**: ```sql CREATE DATABASE database_name; ``` - **启动数据库服务**: ```bash startup open; ``` - **设置显示宽度**: ```sql SET LINESIZE 100; ``` - **插入...
### MySQL核心概念与操作 #### 1. 数据库 (DB), 数据库管理系统 (DBMS)...以上内容涵盖了MySQL数据库的基础概念、常用操作以及SQL语言的关键部分。通过这些知识点的学习,可以帮助初学者更好地理解和使用MySQL数据库。
#### 七、SQL*Plus常用命令与脚本处理 - 使用`START`命令执行SQL脚本文件。 - 使用`EDIT`命令编辑SQL脚本文件。 - 使用`SPOOL`命令将SQL查询结果重定向到文件中。 #### 八、Oracle用户管理与权限分配 - 创建用户:`...