DB2基础知识三

 

<!--[if !supportLists]-->13.    <!--[endif]-->表关联(关联、外连接)

Union

――交集运算:INTERSECTINTERSECT ALL

SELECT * FROM AA_WEEK X WHERE X.CODE IN (1,2,3) -- 集合A

INTERSECT -- 集合B

SELECT * FROM AA_WEEK X WHERE X.CODE IN (2,3,4);

---------------------------------

2 'Tuesday' 'Tues'

3 'Wednesday' 'Wed'

说明:INTERSECTINTERSECT ALL是等效的。

    ――差集运算:EXCEPTEXCEPT ALL

SELECT * FROM AA_WEEK X WHERE X.CODE IN (1,2,3) -- 集合A

EXCEPT -- 集合B

SELECT * FROM AA_WEEK w WHERE w.CODE IN (2,3,4);

说明:EXCEPTEXCEPT ALL是等效的。

---------------------------------

1 'Monday' 'Mon'

       ――合集运算:UNIONUNION ALL

<!--[if !supportLists]-->n       <!--[endif]-->求合集:A+B(不消除重复行)

SELECT * FROM AA_WEEK X WHERE X.CODE IN (1,2,3) -- 集合A

UNION ALL -- 集合B

SELECT * FROM AA_WEEK X WHERE X.CODE IN (2,3,4);

<!--[if !supportLists]-->n       <!--[endif]-->求合集:A+B(消除重复行)

SELECT * FROM AA_WEEK X WHERE X.CODE IN (1,2,3) -- 集合A

UNION -- 集合B

SELECT * FROM AA_WEEK X WHERE X.CODE IN (2,3,4);

---------------------------------

       Join

<!--[if !supportLists]-->n       <!--[endif]-->内连接:inner join在两表共有的行才会输出,内连接没有左右之分。

              select * from t1 inner join t2 on t1.c3=t2.c1

<!--[if !supportLists]-->n      <!--[endif]-->左外连接:left outer join左连接保留前面表的所有记录,后表中没有的补null。

select * from t1 left outer join t2 on t1.c3=t2.c1

<!--[if !supportLists]-->n      <!--[endif]-->右外连接:right outer join右连接保留后表的所有记录,前表中没有的补null。在DB2的内部机制中,会把右外连接重写成左外连接.故我们在写sql语句时尽量使用左外连接。

select * from t1 right outer join t2 on t1.c3=t2.c1

<!--[if !supportLists]-->n      <!--[endif]-->全外连接:full outer join全外连接会输出两表的所有的数据,包括内连接和左外连接和右外连接的行。

select * from t1 full outer join t2 on t1.c3=t2.c1

<!--[if !supportLists]-->n      <!--[endif]-->总结:内连接,全有才有;左外连接,左有就有;右外连接,右有就有;全外连接,全都有。

<!--[if !supportLists]-->14.    <!--[endif]-->检查LOCKTIMEOUT 的值

The default value for LOCKTIMEOUT is -1, which means that there will be no lock timeouts - a situation that can be catastrophic for OLTP applications. Nevertheless, I all too frequently find many DB2 users with LOCKTIMEOUT = -1. Set LOCKTIMEOUT to a very short value, such as 10 or 15 seconds. Waiting on locks for extended periods of time can have an avalanche effect on locks.

First, check the value of LOCKTIMEOUT with this command:

db2 "get db cfg for DBNAME"

and look for the line containing this text:

Lock timeout (sec) (LOCKTIMEOUT) = -1

If the value is -1, consider changing it to 15 seconds by using the following command (be sure to consult with the application developers or your vendor first to make sure the application is prepared to handle lock timeouts):

db2 "update db cfg for DBNAME using LOCKTIMEOUT 15"

You should also monitor the number of lock waits, lock wait time, and amount of lock list memory in use. Issue the command:

db2 "get snapshot for database on DBNAME"

Look for the following lines:

Locks held currently= 0  

Lock waits= 0  

Time database waited on locks (ms)= 0  

Lock list memory in use (Bytes)= 576  

Deadlocks detected= 0  

Lock escalations= 0  

Exclusive lock escalations= 0  

Agents currently waiting on locks= 0  

Lock Timeouts= 0

If the Lock list memory in use (Bytes) exceeds 50 percent of the defined LOCKLIST size, then increase the number of 4K pages in the LOCKLIST database configuration.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DB2数据库是一个关系型数据库管理系统(RDBMS),最初由IBM开发并推出。它是一种可扩展的数据库解决方案,适用于各种规模的企业应用。 以下是一些DB2数据库的基础知识: 1. 数据模型:DB2数据库遵循关系型数据模型,使用表格(表)来组织数据。每个表由行和列组成,行表示记录,列表示属性。 2. SQL语言:DB2通过结构化查询语言(SQL)进行数据操作和查询。SQL语言提供了丰富的语法和功能,用于创建、修改、删除和查询数据库中的数据。 3. ACID属性:DB2数据库支持ACID属性,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。这些属性确保数据库操作的可靠性和一致性。 4. 多用户并发:DB2具有强大的并发控制机制,可以处理多个用户同时对数据库进行读写操作。它使用锁定机制和事务隔离级别来保证数据的完整性和一致性。 5. 数据完整性:DB2支持各种数据完整性约束,包括主键约束、唯一约束、外键约束等。这些约束用于保证数据的有效性和一致性。 6. 数据备份与恢复:DB2提供了备份和恢复机制,用于定期备份数据库并在需要时恢复数据。这是保证数据安全性和可靠性的重要手段。 7. 扩展性和高可用性:DB2支持水平和垂直扩展,可以根据需进行灵活的扩展。它还提供了高可用性选项,如数据复制和故障转移,确保系统的可用性和容错能力。 这些是DB2数据库的一些基础知识,希望能对你有所帮助。如有更多问题,请继续提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值