db2常用语句
2017-11-18 13:01
477 查看
导出ddl db2look-dCESHI1-e-odb.sql-idb2inst1-wCoqais011 db2look-dGFL-e-oE:\db.sql-idb2admin-w123 系统存储过程 QueryInfoinfo=newQueryInfo(); info.NamedQuery="SYSPROC.ADMIN_CMD"; info.Parameters.Add("PR_SQL","reorgtable"+tableName); Dao.ExecuteNonQuery(info); 备份 db2BACKUPDATABASEdbname 恢复 db2RESTOREDATABASEdbname a.服务端安装 b.客户端安装 1.建数据库 createdatabaseHRA_GF 2.建信道 catalogtcpipnodegfremote192.168.2.252server50000 3.1别名 catalogdatabaseHRA_GFashServeratnodegf 3.2数据库挂在信道上 catalogdatabaseHRA_GFatnodegf 3.3terminate刷新 3.4db2 4.连接数据库 connecttoHRA_GFuserdb2adminusingHhgf2017 5.删除节点 uncatalognodegf 6.获取序列下一个值 selectnextvalforBAS_MODULE_SEQfromsysibm.sysdummy1 7.创建函数结合序列值获取 7.1CREATEfunctionBAS_SEQ() RETURNSBIGINT LANGUAGESQL CONTAINSSQL NOEXTERNALACTION DETERMINISTIC BEGINATOMIC DeclarecdBIGINT;--时间 setcd=nextvalueforBAS_MODULE_SEQ; RETURNcd; END; 7.2 CREATEFUNCTIONGET_DISCOUNT_FACTOR ( v_compute_datedate, v_reference_datedate, v_index_price_factor_idbigint ) RETURNSBIGINT LANGUAGESQL NOTDETERMINISTIC READSSQLDATA STATICDISPATCH CALLEDONNULLINPUT EXTERNALACTION INHERITSPECIALREGISTERS BEGINATOMIC DeclareRESULTbigint; setRESULT=(selectcount(1) frommkt_zero_rate_data wherecompute_date=v_compute_date andreference_date=v_reference_date andindex_price_factor_id=v_index_price_factor_id); IFRESULT=0 then RETURN0; ELSE SETRESULT=( selectdiscount_factorfrommkt_zero_rate_data wherecompute_date=v_compute_date andreference_date=v_reference_date andindex_price_factor_id=v_index_price_factor_id); ENDIF; returnResult; END; CREATEFUNCTIONFN_GETFLOWURL(p_createUrlvarchar(255),p_nodeUrlvarchar(255),p_FormCodevarchar(255),p_FormTypevarchar(255)) RETURNSvarchar(255) LANGUAGESQL NOTDETERMINISTIC READSSQLDATA STATICDISPATCH CALLEDONNULLINPUT EXTERNALACTION INHERITSPECIALREGISTERS BEGINATOMIC declarev_posbigint; declarev_tmpbigint; declarev_urlvarchar(255); setv_tmp=(selectINSTR(p_nodeUrl,'.aspx')fromSYSIBM.SYSDUMMY1); ifv_tmp>0then setv_url=p_nodeUrl; else--CreateUrl+??Url=??Url---??CreateUrl??Node??????(?,&) setv_pos=(selectINSTR(p_createUrl,'Node=')fromSYSIBM.SYSDUMMY1); ifv_pos>0then setv_url=SUBSTR(p_createUrl,1,v_pos-2); else setv_url=p_createUrl; endif; ---CreateUrl+??Url??????(?,&) setv_pos=(selectINSTR(v_url,'?')fromSYSIBM.SYSDUMMY1); ifv_pos>0then setv_url=v_url||'&'||p_nodeUrl; else setv_url=v_url||'?'||p_nodeUrl; endif; endif; setv_url=v_url||'&'||'FormCode='||p_FormCode||'&'||'FormType='||p_FormType; returnv_url; end; 8.存储过程 CREATEPROCEDUREPR_INSERT(INpr_sqlVARCHAR(550)) LANGUAGESQL SPECIFICset_variables begin executeimmediatepr_sql; end; 9.参数化查询 varinfo=newQueryInfo(); info.CustomSQL="select*fromsys_userwhereuser_id=?"; info.Parameters.Add("user_id",1002); vardt=Dao.ExcuteDataSet(info).Tables[0]; 10.load loadfromc:\AA20170828154805.delofdelinsertintoaa cmd=cn.CreateCommand(); cmd.CommandType=CommandType.StoredProcedure; cmd.CommandText=@"loadfromc:\AA20170828154805.delofdelinsertintoaa"; intii=cmd.ExecuteNonQuery(); 11.非空约束 altertabletableNamealtercolumnNamesetnotnull; 12.添加主键 altertabletableNameaddconstraintprimarykey(主键id) 13.truncatetable命令 truncatetabletableNameimmediate; 14.reorgtabletableName 15.db2数据库没有足够大的临时表空间,新建一个足够大的表空间,解决问题 createBUFFERPOOLGFPOOLSIZE500PAGESIZE32K; CREATETEMPORARYTABLESPACETEMPPAGESIZE32KMANAGEDBYDATABASEUSING ( FILE'STEALTH2/TEMP02'128000 )EXTENTSIZE80bufferpoolGFPOOL; 16.db2分页语法 select*from (selectt.*,rownumber()over(orderbyidasc)asrowidfromsys_officet)a wherea.rowid>=1anda.rowid<=3; 17.不记录日志清空表 altertableTRAN_STRUCTUREactivatenotloggedinitiallywithemptytable; 18.查看表id和表空间 select*fromsyscat.tableswheretableid=3852 19.日志设置 updatedbcfgforceshi1usingLOGFILSIZ125000 20查看表空间的使用情况 a.创建表空间 CREATETEMPORARYTABLESPACETEMPPAGESIZE32KMANAGEDBYDATABASEUSING ( FILE'STEALTH2/TEMP02'128000 )EXTENTSIZE80bufferpoolGFPOOL; b.listtablespacecontainersfor1showdetail c.扩展表空间alterTABLESPACETEMPadd(file'/home/db2inst1/db2inst1/NODE0000/CESHI1/004'500m) 20.不记录事务日志 altertable TRAN_TRANSACTION --,RSK_BOOK_TRAN_SIMULATION,RSK_LEASE_TRAN_ADJUST,RSK_LEASE_TRANSACTOIN,RSK_TRANSACTION_LOG activatenotloggedinitially; 21.修改数据类型 altertableETL_VERIFY_CHECKaltercolumnIS_NOT_NULLsetdatatypeint; reorgtableETL_VERIFY_CHECK; 建库 --重启数据库 FORCEAPPLICATIONALL DB2STOP DB2START --创建数据库 CREATEDATABASEGFLUSINGCODESETUTF-8TERRITORYUSCOLLATEUSINGSYSTEMUSERTABLESPACEMANAGEDBYDATABASEUSING(FILE'd:\DB2\data\GFL\sdetbsp'51200) CONNECTTOGFL --创建缓冲池(使用32k的pagesize) createbufferpoolGFPOOLsize12800pagesize32K createbufferpoolGFPOOL1size12800pagesize32K --创建表空间并使用32k的pagesize和自定义的缓冲池 CREATEREGULARTABLESPACEregtbsPAGESIZE32KMANAGEDBYDATABASEUSING(FILE'D:\DB2\NODE0000\GFL\regtbs'2g)bufferpoolGFPOOL CREATEREGULARTABLESPACEidxtbsPAGESIZE32KMANAGEDBYDATABASEUSING(FILE'D:\DB2\NODE0000\GFL\idxtbs'1g)bufferpoolGFPOOL CREATELONGTABLESPACElobtbsPAGESIZE32KMANAGEDBYDATABASEUSING(FILE'D:\DB2\NODE0000\GFL\lobtbs'1g)bufferpoolGFPOOL1 CREATEUSERTEMPORARYTABLESPACEsdespacePAGESIZE32KMANAGEDBYSYSTEMUSING('D:\DB2\NODE0000\GFL\sdespace')bufferpoolGFPOOL1 表空间自增长 altertablespacelobtbsautoresizeyesincreasesize10240Kmaxsizenone; --授权表空间给用户 grantuseoftablespace --授权表空间 GRANTUSEOFTABLESPACEregtbsTOPUBLIC GRANTUSEOFTABLESPACElobtbsTOPUBLIC GRANTUSEOFTABLESPACEidxtbsTOPUBLIC GRANTUSEOFTABLESPACEsdespaceTOPUBLIC COMMENTONTABLESPACEsdespaceIS'' --优化数据库配置 updatedbcfgforGFLusingAPPLHEAPSZ2048 updatedbcfgforGFLusingAPP_CTL_HEAP_SZ2048 updatedbcfgforGFLusingLOGPRIMARY10 updatedbcfgforGFLusingLOGFILSIZ1000 --重启数据库 FORCEAPPLICATIONALL DB2STOPFORCE DB2START --授予sde用户DBADM权限 grantDBADMondatabasetouserdb2admin --重启数据库 FORCEAPPLICATIONALL DB2STOPFORCE DB2START 3.去重
longcount=0;
//删除的时候,保留最老的记录
vardelsql1=$@"deletefrom
(
select{repetColumns},row_number()over
(PARTITIONby
{repetColumns}order
by
{repetColumns}
)asrnfrom{importTable}where1=1{where}
)t1wheret1.rn>1";
//删除的时候,保留最新的记录
vardelsql2=$@"DELETEfrom
(
select{repetColumns},row_number()over
(PARTITIONby{repetColumns}
orderby{repetColumns}asc
)asrnfrom{importTable}
)t1wherern<
(
selectmax(rn)from
(
select{repetColumns},row_number()over
(PARTITIONby{repetColumns}
orderby{repetColumns}asc
)asrnfrom{importTable})t1
)
";
stringsql=style==DeleteStyle.KeepNew?delsql2:delsql1;
count=Dao.ExecuteNonQuery(newFramework.QueryInfo(){CustomSQL=sql});
returncount;