db2 常用问题
- 格式:doc
- 大小:66.50 KB
- 文档页数:16
db2解决死锁的方法DB2是一种常见的关系型数据库管理系统,它被广泛应用于企业级应用程序中。
然而,随着应用程序的复杂性增加和并发访问的增加,死锁问题也变得越来越常见。
在本文中,我们将探讨一些使用DB2解决死锁问题的方法。
1. 死锁的定义和原因死锁是指两个或多个事务彼此等待对方持有的资源,从而导致所有事务无法继续执行的状态。
死锁通常发生在并发访问数据库时,其中一个事务正在使用某个资源,而另一个事务需要访问相同的资源。
死锁的发生原因可以归结为四个条件:互斥(资源只能被一个事务使用)、持有并等待(一个事务持有资源并等待另一个事务的资源)、不可剥夺(资源不能被其他事务抢占)、循环等待(多个事务形成循环等待资源)。
2. 使用锁机制避免死锁在DB2中,可以使用锁机制来避免死锁的发生。
锁是一种机制,用于协调并发事务对共享资源的访问。
DB2提供了两种类型的锁:共享锁和排他锁。
共享锁允许多个事务同时读取资源,但不允许写入资源;排他锁只允许一个事务同时读取或写入资源。
为了避免死锁,可以采取以下策略:- 在事务开始时,尽量将锁的范围缩小到最小,只锁定必要的资源。
- 在事务执行期间,尽量减少锁的持有时间,执行完操作后尽快释放锁。
- 避免循环等待,即事务在请求资源时按照统一的顺序进行,避免形成死锁的循环等待。
3. 设置适当的隔离级别DB2提供了多种隔离级别,用于控制事务之间的相互影响。
不同的隔离级别对并发访问的控制程度不同。
在选择隔离级别时,需要权衡事务的一致性和性能。
在避免死锁的角度考虑,可以选择较低的隔离级别,如读取已提交(Read Committed)。
较低的隔离级别可以减少锁的竞争,从而降低死锁的风险。
但同时,较低的隔离级别也可能导致数据不一致的问题,需要根据具体业务需求进行权衡。
4. 监控和诊断死锁DB2提供了一些工具和功能,用于监控和诊断死锁问题。
可以通过以下方式来实现:- 使用DB2的系统监控工具,如db2pd命令和db2top工具,可以实时查看数据库的锁和死锁情况。
关于DB2常见性能问题的解决参考最近一个项目在做性能测试时,在并发达到一定数后,DB2数据库资源占用很大,必须对数据库和应用进行优化。
该项目要求性能指标(CPU<70%,内存占用<70%,IO<60),按照网友介绍的经验,分别针对CPU、内存、IO进行问题排查和分析。
现将过程总结如下:一、CPU分析通过资源监视器查看一个或多个CPU 的使用率,确定确实存在CPU使用率一直居高不下的情况。
1、首先排除掉存在死循环的情况。
(并发下来后,CPU使用率会降下来)。
2、DB2占用CPU的主要行为有:语句编译、大量排序、DB2实用工具运行。
3、先查看是否有大量的语句编译:通过DB2的表函数MON_GET_WORKLOAD,可以查看到:select varchar(workload_name,30) as workload_name,sum(total_cpu_time),sum(total_compile_proc_time),sum(act_rqsts_total),um(total_compilations),sum(total_act_time), sum(pkg_cache_inserts), sum(pkg_cache_lookups) from TABLE(MON_GET_WORKLOAD('',-2)) as T group by workload_name如果compile_proc_time 高于5-10% 的total_cpu_time,并且pkg_cache_inserts/pkg_cache_lookups 高于4-5%,则数据库在语句编译上花费了太多的时间。
必须调大语句集中器STMT_CONC的大小。
采用逐步调大的方式来跟踪效果。
4、查看是否存在大量的SORT首先通过db2的快照,看是否存在大量的sort溢出✓Sort overflows/Total sorts * 100% 表示排序溢出百分比,通常情况下,该值应该小于3。
db2数据库面试题一、概述DB2数据库是IBM公司开发的一种关系型数据库管理系统。
在DB2数据库的面试过程中,常常会遇到各种各样的问题。
本文将为您总结一些常见的DB2数据库面试题,帮助您更好地准备面试,并提供详细的解答。
本文将从DB2数据库的基本知识、SQL查询、性能调优等方面展开讨论。
二、基本知识1. 什么是DB2数据库?DB2数据库是IBM开发的一种关系型数据库管理系统,它提供了完整的数据库管理和数据操作功能,并支持SQL查询语言。
2. DB2数据库的特点是什么?DB2数据库具有以下特点:- 跨平台性:DB2可以在不同的操作系统和平台上运行,如Windows、Unix、Linux等。
- 具备高可用性:DB2支持数据备份、恢复和高可用性机制,确保数据的安全性和可靠性。
- 扩展能力强:DB2可以支持大规模的数据和用户,并提供有效的扩展机制。
- 性能优越:DB2采用了先进的查询优化技术,能够提供高效的数据检索和处理能力。
- 安全性强:DB2提供了完善的权限管理和安全机制,保证数据的机密性和完整性。
3. DB2数据库的体系结构是什么样的?DB2数据库的体系结构包括以下几个层次:- 应用层:应用程序通过数据库连接器与DB2数据库进行通信。
- SQL层:处理SQL查询,包括查询优化、执行计划生成等。
- 缓冲池管理器(Buffer Pool Manager):管理数据缓存和页面置换。
- 存储管理器(Storage Manager):管理数据的存储和检索。
- 锁管理器(Lock Manager):管理并发访问和资源锁定。
- 日志管理器(Log Manager):管理事务日志的生成和恢复。
4. DB2数据库的对象包括哪些?DB2数据库的主要对象包括表(Table)、视图(View)、索引(Index)、触发器(Trigger)、存储过程(Stored Procedure)等。
三、SQL查询1. 如何创建一个表?在DB2数据库中,可以使用CREATE TABLE语句来创建一个表,语法如下:CREATE TABLE table_name (column1 datatype1 constraint,column2 datatype2 constraint,...);其中,table_name为表名,column1、column2为列名,datatype1、datatype2为列的数据类型,constraint为列的约束条件(如主键、外键等)。
【数据库】:关于DB2数据库错误提⽰说明SQLSTATE 消息本节列⽰ SQLSTATE 及其含义。
SQLSTATE 是按类代码进⾏分组的;对于⼦代码,请参阅相应的表。
表 2. SQLSTATE 类代码类代码含义要获得⼦代码,参阅...00 完全成功完成表 301 警告表 402 ⽆数据表 507 动态 SQL 错误表 608 连接异常表 709 触发操作异常表 80A 功能部件不受⽀持表 90D ⽬标类型规范⽆效表 100F ⽆效标记表 110K RESIGNAL 语句⽆效表 1220 找不到 CASE 语句的条件表 1321 基数违例表 1422 数据异常表 1523 约束违例表 1624 ⽆效游标状态表 1725 ⽆效事务状态表 1826 ⽆效 SQL 语句标识表 1928 ⽆效权限规范表 212D ⽆效事务终⽌表 222E ⽆效连接名表 2334 ⽆效游标名表 2436 游标灵敏度异常表 2538 外部函数异常表 2639 外部函数调⽤异常表 273B SAVEPOINT ⽆效表 2840 事务回滚表 2942 语法错误或存取规则违例表 3044 WITH CHECK OPTION 违例表 3146 Java DDL 表 3251 ⽆效应⽤程序状态表 3353 ⽆效操作数或不⼀致的规范表 3454 超出 SQL 限制,或超出产品限制表 3555 对象不处于先决条件状态表 3656 其它 SQL 或产品错误表 3757 资源不可⽤或操作员⼲预表 3858 系统错误表 39类代码 00 完全成功完成表 3. 类代码 00:完全成功完成SQLSTATE 值含义00000 操作执⾏成功,并且未产⽣任何类型的警告或异常情况。
类代码 01 警告表 4. 类代码 01:警告SQLSTATE 值含义01002 发⽣ DISCONNECT 错误。
01003 从列函数的⾃变量消去 NULL 值。
01004 字符串值在指定给具有较短长度的另⼀字符串数据类型时被截断。
DB2故障处理的思路及一般问题的解决办法本文将介绍DB2故障处理的思路及一般问题的解决办法,包括有错误码的问题解决以及按照问题的范围和性质进行分类。
我认为解决问题的关键在于分清问题的种类,并清楚每种问题的解决办法。
另外很多的数据库的问题都是由于错误的操作,错误的配置引起的,所以本文在解释怎么样处理问题时也会给出一些好的建议,来避免产生问题。
本文重点介绍实用的方法。
对问题的分类有很多种方法,在本文中我我采用了两种分类方案。
第一种方案是是否有错误码。
即发生错误时是否同时返回了错误码,错误码既包括执行命令的返回码,也包扩应用程序的返回码。
有返回码的错误解决方案是,在db2 CLP中运行db2 ? SQLXXXX,然后根据对该问题的解释采取相应的解决方案。
对没有错误码的问题,如数据库hang,CPU使用率过高等问题,解决问题的经验将非常重要,在本文中会有详细的说明。
根据错误码解决问题举例(在下文中,再出现需要用这种方法解决问题时将不再重复):如在连接数据库时发生错误错误码分为返回码(SQL0332N)和原因码(Reason Code "1"),针对不同的原因码有不同的解决方案运行db2 ? sql0332从输出种可以看到对于reason code 1的解释是所以可以通过设置代码页来解决这个问题就可以成功连接了。
第二种分类方案是按照问题的范围和性质进行分类。
分类如下:1.数据库实例问题2.数据库问题3.数据库性能问题4.应用开发与数据库有关的问题下面对每一类问题进行详细说明。
一、数据库实例的问题数据库实例问题可以分为两种情况1.实例无法启动,运行db2start后,直接返回错误码,如SQL1042C。
如果根据错误码信息无法解决,可以尝试如下方案:重新更新该实例,以root身份登录,Tip:常见的产生实例无法启动的原因数据库安装了新的补丁后没有运行db2iupdt数据库文件的权限被改成了777,数据库文件的权限是有要求的,所以不能将所有的文件都改成777的权限数据库实例文件被删除或损坏主机名与db2nodes.cfg里记录的不一致2.运行db2start时,hang在那里,既不报错,也无法启动实例这种情况一般是由于实例没有正常的停止造成的,一般运行下列命令可以解决:(将所有的与该实例有关的db2进程杀死kill -9 )然后重新启动实例。
大家在应用DB2的时候可能会遇到一些看似简单的问题,特别对新手来说,我在此简单的总结一下,发布给大家,希望对大家能有所帮助,同时也欢迎大家一起探讨,共同发展,共同进步!以下主要以DB2 7.X为基础的. 以下的字符为小写.本文对DB2高手来说是不用看的.1. DB2产品的级别有那些?企业版的 NTERPRISE EDITION工作组版 WORKGROUP EDITION企业扩展版 ENTERPRISE EXTENDED EDITION个人版的 PERSONAL EDITION卫星版的 SATELLITE EDITION微型版的 EVERYPLACE2. 可以连接到DB2数据库的产品有哪些?DB2客户端DB2 CONNECTDB2 DATAPROPAGATORDB2 NET.DATADB2 DATAJOINERDB2 RELATIONAL CONNECTWEBSPHERE应用服务器等3. DB2支持的通讯协议有哪些?TCP/IPNETBIOSAPPGIPX/SPXNAME PIPE等4. DB2客户端产品有哪些?DB2运行时间客户端 DB2 RUNTIME CLIENTDB2管理客户端 DB2 ADMINISTRATION CLIENTDB2应用程序开发客户端 DB2 APPLICATION DEVELOPMENT CLIENTDB2瘦客户端 DB2 THIN CLIENT5. 一个数据库是否可以安装在多个数据库服务器上?可以6. 从哪个版本后存储过程可以用SQL语句来创建?7.1版后7. DB2提供哪些关系扩展器?文本扩展器 TEXT EXTENDER图象扩展器 IMAGE EXTENDER音频扩展器 AUDIO EXTENDER视频扩展器 VIDEO EXTENDER空间数据扩展器 SPATIAL EXTENDERXML扩展器 XML EXTENDER网络搜索扩展器 NET.SEARCH EXTENDER8. WINDOWS和OS/2环境下的DB2安装目录结构?用SETUP.EXE来安装SQLLIB 安装的根目录,包括README文件SQLLIBADSM 包含ADSTAR分布式存储管理器文件SQLLIBBIN 包含DB2工具的可执行文件SQLLIBBND 包含DB2工具的绑定文件SQLLIBCC 包含运行控制中心所需的文件SQLLIBCFG 包含默认的系统配置文件SQLLIBCONV 包含代码页转换表文件SQLLIBDB2 默认的实例目录SQLLIBDB2DAS00 缺省的DB2管理服务器目录SQLLIBDOC 包含DB2联机手册SQLLIBFUNCTION 默认的用户自定义函数目录SQLLIBFUNCTIONUNFENCED 默认的非隔离用户自定义函授目录 SQLLIBHELP 联机帮助文件SQLLIBJAVA DB2所需的JAVA类库JAVA12 包含JDK1.2的支持程序SQLLIBMISC 包含HTML搜索服务器文件SQLLIBMSGPRIME 包含信息文件SQLLIBQP 包含QUERY PATROLLER的客户端文件SQLLIBSAMPLES 包含样例程序和样例脚本SQLLIBSPMLOG 包含DB2同步点管理器日志文件SQLLIBTHNSETUP 包含瘦客户端安装文件9. UNIX和LINUX环境下的DB2安装目录结构?用DB2SETUP.EXE来安装安装的根目录下还将创建以下目录:README 安装的根目录,包括README文件ADM 包含系统管理工具文件ADSM 包含ADSTAR分布式存储管理器文件BIN 包含DB2工具的二进制可执行文件BND 包含DB2工具的绑定文件CC 包含运行控制中心所需的文件CFG 包含默认的系统配置文件CONV 包含代码页转换表文件DOC 包含DB2联机手册FUNCTION 默认的用户自定义函数目录FUNCTIONUNFENCED 默认的非隔离用户自定义函授目录 INSTALL 包含安装程序INSTANCE 包含实例脚本JAVA DB2所需的JAVA类库LIB DB2库文件MAP 包含DB2 CONNECT使用的映射文件MISC 包含HTML搜索服务器文件SAMPLES 包含样例程序和样例脚本MSG$L 包含DB2信息文件10. AIX下用哪个命令来安装DB2?INSTALLP命令11. 同一操作系统下可以安装多个DB2 数据库?可以的12. 如何停止实例?DB2STOP13. 如何启动实例?DB2START14. 如何修改注册项的值?DB2SET可以修改如:设定当前实例的一个参数DB2SET PARAMETER=value设定一个全局级的参数DB2SET PARAMETER=value -G (小写)查看能在配置文件注册表中设置的所有变量的列表 DB2SET -LR (小写)15. 如何在CLP执行操作系统的命令?在命令前加" ! "作为前缀DB2=> !DIR C:16. 在CLP中命令过长怎么办?用 " " 作为续行符号17. 如何获得DB2的命令的语法相关信息?DB2? 显示所有DB2命令DB2? COMMAND 显示命令信息DB2? SQLnnnn 显示这个SQLCODE的解释信息DB2? DB2nnnn 显示这个DB2错误的解释信息18. 如何查看当前CLP的设置?DB2=>LIST COMAND OPTIONS19. 如何更新当前CLP会话的特定项设置?DB2 UPDATE COMMAND OPTIONS USING OPTIONS ...20. COMMAND WINDOWS可以通过哪个命令调用?DB2CMD命令21. 管理服务器的默认名为?UNIX下为DB2ASWINDOWS下为DB2DAS0022. 常用管理DB2服务器实例的命令?DB2ADMIN START 启动DB2管理服务器实例DB2ADMIN STOP 停止DB2管理服务器实例DASICRT UNIX下创建DB2管理服务器实例DASIDROP UNIX下删除DB2管理服务器实例DB2ADMIN CREATE WINDOWS OR OS/2下创建DB2管理服务器实例 DB2ADMIN DROP WINDOWS OR OS/2下删除DB2管理服务器实例DB2 GET ADMIN CFG 显示DB2管理服务器的配置参数DB2 UPDATE ADMIN CFG 修改DB2管理服务器的配置参数DB2 RESET ADMIN CFG 将DB2管理服务器的配置参数设为默认值23. DB2目录分为哪几种?系统数据库目录本地数据库目录节点目录DCS目录管理节点目录24. 如何查看系统数据库目录?LIST DB DIRECTORY25. 如何查看数据库服务器目录?LIST NODE DIRECTORY26. DB2实例的服务器的默认端口是?50000服务器名称为DB2CDB227. DB2 UDB服务器端的认证类型有?SERVERSERVER_ENCRYPTCLIENTDCEDCE_SERVER_ENCRYPTKERBEROSKRB_SERVER_ENCRYPT28. DB2客户端的认证类型有?SERVERSERVER_ENCRYPTDCSDCS_ENCRYPTCLIENTDCE29. DB2中有哪几种类型的权限?SYSADM 系统管理权限SYSCTRL 系统控制权限SYSMAINT 系统维护权限DBADM 数据库管理权限LOAD 对表进行LOAD操作的权限30. 不能通过GRANT授权的权限有哪种?SYSAMSYSCTRLSYSMAINT要更该上述权限必须修改数据库管理器配置参数31. 表的类型有哪些?永久表(基表)临时表(说明表)临时表(派生表)32. 如何知道一个用户有多少表?SELECT * FROM SYSIBM.SYSTABLES WHERE CREATOR=‘USER‘33. 如何知道用户下的函数?select * from ERFUNCTIONselect * from sysibm.SYSFUNCTIONS34. 如何知道用户下的VIEW 数?select * from sysibm.sysviews WHERE CREATOR=‘USER‘35. 如何知道当前DB2的版本?select * from sysibm.sysvERSIONS36. 如何知道用户下的TRIGGER 数?select * from sysibm.SYSTRIGGERS WHERE SCHEMA=‘USER‘37. 如何知道TABLESPACE的状况?select * from sysibm.SYSTABLESPACES38. 如何知道SEQUENCE的状况?select * from sysibm.SYSSEQUENCES39. 如何知道SCHEMA的状况?select * from sysibm.SYSSCHEMATA40. 如何知道INDEX的状况?select * from sysibm.SYSINDEXES41. 如何知道表的字段的状况?select * from sysibm.SYSCOLUMNS WHERE TBNAME=‘AAAA‘42. 如何知道DB2的数据类型?select * from sysibm.SYSDATATYPES43. 如何知道BUFFERPOOLS状况?select * from sysibm.SYSBUFFERPOOLS44. DB2表的字段的修改限制?只能修改VARCHAR2类型的并且只能增加不能减少.45. 如何查看表的结构?DESCRIBLE TABLE TABLE_NAMEORDESCRIBLE SELECT * FROM SCHEMA.TABLE_NAME46. 如何快速清除一个大表?ALTER TABLE TABLE_NAME ACTIVE NOT LOGGED INITALLY WITH EMPTY TABLE47. 如何查看数据库的包?select * from sysCAT.PACKAGES48. 如何查看数据库的存储过程?SELECT * FROM SYSCAT.PROCEDURES49. 如何查看表的约束?SELECT * FROM SYSCAT.CHECKS WHERE TABNAME=‘AAAA‘50. 如何查看表的引用完整约束?SELECT * FROM SYSCAT.REFERENCES WHERE TABNAME=‘AAAA‘51. 安裝DB2默認的实例名稱是?在WINDOWS或OS/2中默認的是DB2在LINUX或UNIX環境下默認的是DB2INST152. 安裝后的默認帳戶是?在WINDOWS或OS/2中默認的是DB2ADMIN在LINUX或UNIX環境下默認的是DB2AS53. 实例的類型有哪些?CLIENT(客戶)STANDALONE(獨立的)SATELLITE(衛星)EE DB2EEE54. 如何創建实例?DB2ICRT INSTNAME <...PARAMETERS>55. 如何列出系統上的所有可用实例?DB2ILIST56. 如何知道當前對話用的是哪個实例?GET INSTANCE57. 如何更新实例的配置?DB2IUPDT <INST NAME><PARAMETER OPTIONS...>58. 如何刪除实例?DB2IDROP INSTANCE_NAME具体步驟如下:停止实例上所有應用程序在所有打開的命令行上執行DB2 TERMINATE咝蠨B2STOP備份DB2INSTPROF注冊變量指出的实例目錄退出实例所有登陸者使用DB2IDROP也可以刪除ID59. 如何列出本地系統上有許可信息的所有產品?DB2LICM -L60. 如何增加一產品許可?DB2LICM -A FILENAME61. 如何刪除一個產品的許可?DB2LICM -R PRODUCT PASSWORD62. 如何更新已購買的許可數量?DB2LICM -U <PRODUCT PASSWORD> <NUMBER OF USERS>63. 如何強制只使用已經購買的數量?DB2LICM -E HARD64. 如何更新系統上所使用的許可政策類型?DB2LICM -P <PRODUCT PASSWORD> REGISTERED CONCURRENT65. 如何更新系統上的處理器的數量?DB2LICM -N <PRODUCT PASSWORD> <NUMBER OF PROCESSORS>66. 如何查詢許可文件記錄的版本信息?DB2LICM -V67. 如何查詢DB2LICM的幫助信息?DB2LICM -H68. 一個數据庫至少包括哪些表空間?一個目錄表空間一個或多個用戶表空間一個或多個臨時表空間69. 根据數据与存儲空間之間移動的控制方式不同,分哪兩种表空間?系統管理的空間(SMS)數据庫管理的空間(DMS)70. 如何列出系統數据庫目錄的內容?LIST DATABASE DIRECTORY71. CREATE DATABASE 是SQL命令嗎?不是, 是系統命令72. 如何查看數据庫ABC的配置文件的內容?GET DATABASE CONFIGURATION FOR ABC73. 如何將數据庫ABC的參數設置為默認數值?RESET DATABASE CONFIGURATION FOR ABC74. 如何修改數据庫ABC配置參數數值?UPDATE DATABASE CONFIGURATION FOR ABCUSING <PARAMETER NAME> <NEW value>75. 如何重新啟動數据庫?RESTART DATABASE DATABASE_NAME76. 如何激活數据庫?ACTIVATE DATABASE DATABASE_NAME77. 如何停止數据庫?DEACTIVATE DATABASE DATABASE_NAME78. 如何刪除數据庫?DROP DATABASE DATABASE_NAME79. 如何建立模式?CREATE SCHEMA SCHEMA_NAME80. 如何設置模式?SET SCHEMA=SCHEMA_NAME81. 表的類型有哪些?基本表結果表概要表類型表子類型子表聲明的臨時表系統臨時表82. 如何定義序列?CREATE SEQUENCE ORDERSEQ START WITH 1 INCREMENT BY 1 NOMAXvalue NOCYCLE CACHE 2483. 如何將表置于檢查挂起狀態?SET INTEGRITY TABLE_NAME OFF84. 如何獲得表的排斥鎖?LOCK TABLE TABLE_NAME IN EXCLUSIVE MODE85. 如何把表調整為沒有檢查數據的在線狀態?SET INTEGRITY FOR TABLE_NAME ALL IMMEDIATE UNCHECKED86. 如何解除表的鎖定?COMMIT87. 如何關閉表的日志?ALTER TABLE TABLE_NAME ACTIVE NOT LOGGED INIALLY88. 如何刪除表?DROP SCHEMA.TABLE_NAME89. 如何重命名表?RENAME TABLE_OLD TO TABLE_NEW90. 如何取當前時間?SELECT CURRENT TIMESTAMP FROM SYSIBM.SYSDUMMY191. 如何創建DB2的概要表?DB2的概要表功能類似于ORACLE的實体化視圖!語法為:CREATE SUMMARY TABLE TABLE_NAME AS (FULLSELECT) ...例如:定義一個可以刷新的概要表:CREATE SUMMARY TABLE TABLE_NAME AS (SELECT * FROM TABLE_NAME1 WHERE COL1=‘AAA‘)DATA INITIALLY DEFERRED REFRESH DEFERRED其中DATA INITIALLY DEFERRED規定不能將數据作為CREATE TABLE語句的一部分插入表中.REFRESH DEFERRED規定表中的數据可以在任何使用了REFRESH TABLE語句的時候獲得刷新!92. 如何刷新概要表?REFRESH TABLE SUM_TABLE其中SUM_TABLE為概要表.93. 如何修改概要表?ALTER TABLE SUM_TABLE ...94. 如何創建臨時表?語法:DECLARE GLOBAL TEMPORARY TABLE TABLE_NAMEAS (FULLSELECT) DEFINITION ONLYEXCLUDING IDENTITY COLUMN ATTRIBUTESON COMMIT DELETE ROWSNOT LOGGED第一行規定臨時表的名稱.第二行規定臨時表的列的定義.第三行規定不是從源結果表定義中復制的恒等列.第四行規定如果沒有打開WITH GOLD光標,將會刪除表的所有行.第五行規定不對表的改變進行記錄.例如:DECLARE GLOBAL TEMPORARY TABLE DEC_BSEMPMSAS (SELECT * FROM BSEMPMS) DEFINITION ONLYEXCLUDING IDENTITY COLUMN ATTRIBUTESON COMMIT DELETE ROWSNOT LOGGED95. 視圖的管理?如何創建視圖:CREATE VIEW VIEW_NAME AS SELECT * FROM TABLE_NAME WHERE ... 刪除視圖:DROP VIEW VIEW_NAME96. 如何知道視圖定義的內容?SELECT * FROM SYSCAT.VIEWS中的TEXT列中.97. 如何創建別名?CREATE ALIAS ALIAS_NAME FOR PRO_NAME后面的PRO_NAME可以是TABLE,VIEW,ALIAS,NICKNAME等.98. 如何創建序列?例如:CREATE SEQUENCE SEQUENCE_NAMESTART WITH START_NUMBERINCREMENT BY value1NOMAXvalueNOCYCLECACHE MAXIMUM NUMBER OF SEQUENCE valueS第一行規定序列的名稱.第二行規定序列的開始數值.第三行規定每次新增的幅度.第四行規定沒有最大數值限制.第五行規定最大數值限制.99. 如何更改序列?ALTER SEQUENCE SEQUENCE_NAME ...可以修改的參數START WITH 的 START_NUMBERINCREMENT 的 value1NOMAXvalue的數值NOCYCLE屬性MAXIMUM NUMBER OF SEQUENCE valueS 最大數值100. 如何刪除序列?DROP SEQUENCE SEQUENCE_NAME101. DB2支持導入(IMPORT)的文件格式有?有: DEL,ASC,IXF,WSF等102. DB2支持導出(EXPORT)的文件格式有?有: DEL,IXF,WSF等.不支持ASC格式.103. DB2支持載入(LOAD)的文件格式有?有: DEL,ASC,IXF等.不支持WSF格式.104. DB2支持DB2MOVE的文件格式有?有: IXF等.不支持ASC,DEL,WSF格式.105. DB2數据庫監控的兩個組成部分?快照監控(SNAPSHOT MONITOR)可返回特定時間點的數据庫活動的快照.事件監控(EVENT MONITOR)記錄事件發生的數据.106. 系統監控的數据元素類型?計數器(COUNTER)記錄活動發生的次數.測量(GAUGE)測量條目的當前值.水線(WATER MARK)從監控來元素達到的最大或最小數值.信息(INFORMATION)監控活動的參照類型細節.時間點(TIMESTAMP)活動發生的日期時間.時間(TIME)返回一個活動花費的時間.107. 如何知道監控堆所需的頁的數量?(NUMBER OF MONITORING APPLICATIONS+1)*(NUMBER OFDATABASES*(800+(NUMBER OF TABLESACCESSED*20)+((NUMBER OF APPLICATIONS CONNECTED+1)*(200+(NUMBER OF TABLESPACES*100)))))/4096其大小受參數MON_HEAD_SZ控制.108. 如何建立事件監控器?CREATE EVENT MONITOR TABLEMON FOR TABLES WRITE TO FILE ‘D:TEMP‘109. 如何激活事件監控器?SET EVENT MONITOR TABLEMON STATE 1110. 如何停止事件監控器?SET EVENT MONITOR TABLEMON STATE 0111. 如何查詢監控器的狀態?SELECT EVMONNAME,EVENT_MON_STATE(EVMONNAME) FROMSYSCAT.EVENTMONITORS112. 如何刪除事件監控器?DROP EVENT MONITOR TABLEMON113. UNIX和WINDOWS上創建管道事件監控器(PIPE意EVNT見MONITOR)的不同?第一步: 定義事件監控器UNIX:CONNECT TO SAMPLECREATE EVENT MONITOR STMB2 FOR STATEMENTS WRITE TO PIPE‘/TMP/EVPIPE1‘WINDOWS:CONNECT TO SAMPLECREATE EVENT MONITOR STMB2 FOR STATEMENTS WRITE TO PIPE‘.TMPEVPIPE1‘第二步: 建立命名管道UNIX:可以使用MKFIFO()函數或者MKFIFO命令.WINDOWS:可以使用CREATENAMEDPIPE()函數,管道名稱与CREATE EVENT MONITOR規定名稱相同.第三步: 打開命名管道UNIX:使用OPEN()函數.WINDOWS:使用CONNECT NAMEDPIPE()函數.也可以用DB2EVMON命令,如:DB2EVMON -DB SAMPLE -EVM STMB2第四步: 激活命名管道事件監控器除非自動激活命名管道事件監控器,否則SET EVENT MONITOR STMB2 STATE 1第五步: 從命名管道讀取數据UNIX:可以使用READ()函數.WINDOWS:可以使用READFILE()函數.第六步: 停止事件監控器SET EVENT MONITOR STMB2 STATE 0第七步: 關閉命名管道UNIX:可以使用CLOSE()函數.WINDOWS:可以使用DISCONNECTNAMEDPIPE()函數.第八步: 刪除命名管道UNIX:可以使用UNLINK()函數.WINDOWS:可以使用CLOSEHANDLE()函數.114. DB2的SQL語句的類別?DCL: 數据控制語言,提供對數据庫對象的訪問權限.DDL: 數据定義語言,創建,修改,刪除數据庫對象的.DML: 數据操縱語言,用來插入,更新,刪除數据的.115. DCL的權限有哪些?CONTROL權限: 如果用戶創建一個對象,則改用戶能完全訪問該對象. GRANT 語句將權限授予給用戶.REVOKE 語句撤銷一個用戶的權限.116. DDL有哪些?CREATEDECLAREALTERDROP等117. DML有哪些?INSERTSELECTUPDATEDELETE等118. DB2有沒有布爾類型?沒有119. 如何查詢DB2的內置函數?自帶文檔ADMINISTION-->SQL REFERENCE-->FUNCTIONS內120. 如何執行DB2的腳本文件?DB2 -VTF FILENAME121. DB2中象ORACLE的ROWNUM()是?ROW_NUMBER() OVER()122. DB2如何得到錯誤代碼的說明?DB2 ? SQLCODE123. DB2中的VARCHAR轉換為INTEGER的函數為?CAST()124. DB2中的INTEGER轉換為VARCHAR的函數為?CHAR()125. DB2中的VARCHAR轉換為DATE的函數為?DATE()126. DB2中的DATE轉換為VARCHAR的函數為?CHAR()127. DB2中的TRIGGER能否修改?不能,只能刪除重建128. WINDOWS下如何知道DB2的端口號?WINNTSYSTEM32DRIVERSETCSERVICES129. DB2如何執行存儲過程?可以 DB2 CALL PROCEDURE_NAME130. 如何進入DB2的DOS命令方式?DB2CMD131. 如何得到DB2的進程號?DB2 LIST APPLICATIONS132. 如何殺DB2的進程?FORCE APPLICATION(ID)133. A用戶安裝DB2后,如何用B用戶啟動DATABASE?在B用戶下的.PROFILE中加上./HOME/DB2INST/SQLLIB/DB2PROFILE134. DB2中類似ORACLE的快照是?SUMMARY TABLE。