路由器端口转发做网站访问量,青岛免费模板建站,怎么看出网站有没有做404页面,网站seo哪里做的好《SQL命令#xff08;含例句#xff09;精心整理版#xff08;6#xff09;》 18 DB2查询语句18.1 查询数据库大小18.2 查看表占表空间大小18.3 查看正在执行的语句18.4 db2expln 查看执行计划18.5 db2advis 查看优化建议 19 空值19.1 NULL19.2 TRIM 18 DB2查询语句
18.1 … 《SQL命令含例句精心整理版6》 18 DB2查询语句18.1 查询数据库大小18.2 查看表占表空间大小18.3 查看正在执行的语句18.4 db2expln 查看执行计划18.5 db2advis 查看优化建议 19 空值19.1 NULL19.2 TRIM 18 DB2查询语句
18.1 查询数据库大小
//命令
$db2 call GET_DBSIZE_INFO(?,?,?,0)
//示例
$ db2 call GET_DBSIZE_INFO(?,?,?,0)Value of output parameters--------------------------Parameter Name : SNAPSHOTTIMESTAMPParameter Value : 2013-10-24-09.57.58.642597Parameter Name : DATABASESIZEParameter Value : 3756920832Parameter Name : DATABASECAPACITYParameter Value : 8237072382说明: 1-命令输出为执行时间红色字体为数据库大小蓝色字体为数据库容量大小。 2-输出值大小单位为Byte除以3次1024得到单位为GB 18.2 查看表占表空间大小
1、表大小 仅查看表占用不含大数据
select TABSCHEMA,TABNAME,OWNER,TYPE,CREATE_TIME,ALTER_TIME,STATS_TIME,NPAGES*16/1024/1024||G from syscat.tables order by FPAGES desc物理包含索引大小、lop大数据占用
slt_dir/databak
tab_namecat tables.txt
curdatedate %Y%m%d
counter0db2 connect to tcorp /dev/null: $slt_dir/size/${curdate}_size.txt
tab_namecat tables.txt
for tabname in $tab_namedotbschemaecho $tabname | awk -F. {print $1}tbnameecho $tabname | awk -F. {print $2}counterecho $counter 1 | bcecho $counter \c $slt_dir/size/${curdate}_size.txtdb2 SELECT TABNAME,SUM(DATA_OBJECT_P_SIZEINDEX_OBJECT_P_SIZELONG_OBJECT_P_SIZEXML_OBJECT_P_SIZE)/1024||M AS SIZE FROM TABLE(SYSPROC.ADMIN_GET_TAB_INFO($tbschema,$tbname)) AS T GROUP BY TABNAME | grep $tbname $slt_dir/size/${curdate}_size.txtdone18.3 查看正在执行的语句
# get db2 current active sql
# create by chenzl
dbnameCFAS
echo dbname: $dbname
appinfolog/db2databkup/appinfo.log
echo logfile: $appinfolog$appinfolog
db2pd -d $dbname -act listact.tmp
linenumwc listact.tmp|awk BEGIN{FS }{print $1}
actappnumexpr $linenum - 5
echo actappnum:$actappnum
tail -n $actappnum listact.tmpactapp.tmp
echo ******************date 20%y-%m-%d %H:%M:%S******************** $appinfologdelcounter$actappnumwhile [ $delcounter -gt 0 ]do#echo delcounter$delcounterhead -n 1 actapp.tmp dellogdataretapphandlecat dellogdataret|awk BEGIN{FS }{print $2}echo ------------------apphandle: $apphandle--------------------$appinfologdb2pd -d $dbname -apinfo $apphandle$appinfologdelcounterexpr $delcounter - 1tail -n $delcounter actapp.tmp dellogdatattcat dellogdatatt actapp.tmpdone
#display the sql
echo ----------the current active sql:-----------
more $appinfolog|grep Statement :
rm -f dellogdatatt
rm -f dellogdataret
#rm -f actapp.tmp18.4 db2expln 查看执行计划
1、查询语句的执行计划 db2expln -d dbname -i -g -q “sql语句” -o 文件名 2、示例语句
db2expln -d tycjdb -i -g -q SELECT B.BANKCODE, B.BANKNAME, S.SAFENAME, B.SAFECODE,SUM(E.RECNUMS) as RECNUMS,SUM(E.ERRNUMS) as ERRNUMS,CAST(SUM(E.ERRNUMS) * 100.00 / SUM(E.RECNUMS) AS DEC(12, 2)) AS RATE1 FROM tycj.VSYS_APICHKINFO E JOIN tycj.vsys_STAT_DLY_BANK B ON substr(E.ORGCODE, 7, 4) B.BANKCODE JOIN tycj.TBL_CODESAFE S ON B.SAFECODE S.SAFECODE WHERE 1 1 and E.DEALTIME 2019-10-01 00:00:00 and E.DEALTIME 2020-09-30 23:59:59 and B.BANKCODE in (0001,0002,0003) GROUP BY B.BANKCODE, B.BANKNAME, S.SAFENAME, B.SAFECODE order by B.BANKCODE -o 2020.txt3、示例语句2
db2expln -d tycjdb -q 语句 -g -t 4、执行计划查看方法 由下往上看有索引Index: 的表示已经使用上索引无需优化。TBSCAN 表示全表扫描需要加索引。e06表示10的6次方单位是毫秒ms所以纯数字级别的都不高。 18.5 db2advis 查看优化建议
1、查询db2优化建议
// 格式
db2advis -d tycjdb -t -s sql语句 文件名
// 示例db2advis -d tycjdb -n tycj -s sql语句 文件名
//说明-d 数据库名-n schema名-s 后面跟语句-o文件名 输出时缺少前几行用文件名输出比较完整2、示例1
db2advis -d tycjdb -t -s SELECT B.BANKCODE, B.BANKNAME, S.SAFENAME, B.SAFECODE,SUM(E.RECNUMS) as RECNUMS,SUM(E.ERRNUMS) as ERRNUMS,CAST(SUM(E.ERRNUMS) * 100.00 / SUM(E.RECNUMS) AS DEC(12, 2)) AS RATE1 FROM tycj.VSYS_APICHKINFO E JOIN tycj.vsys_STAT_DLY_BANK B ON substr(E.ORGCODE, 7, 4) B.BANKCODE JOIN tycj.TBL_CODESAFE S ON B.SAFECODE S.SAFECODE WHERE 1 1 and E.DEALTIME 2019-10-01 00:00:00 and E.DEALTIME 2020-09-30 23:59:59 and B.BANKCODE in (0001,0002,0003) GROUP BY B.BANKCODE, B.BANKNAME, S.SAFENAME, B.SAFECODE order by B.BANKCODE 2020.sql3、示例2
db2advis -d tycjdb -s 语句 4、执行优化建议方法 绿色框中为执行语句
19 空值
19.1 NULL
//命令
is not null19.2 TRIM
//命令
trim(b.branchname)
//示例
update SYS_ADMITORGS a set a.ORGNAME(select b.branchname from tbl_codebranch b where a.orgcodeb.BRANCHCODE and b.BRANCHNAME is not null and trim(b.branchname) ) where exists (select 1 from tbl_codebranch b where a.orgcodeb.BRANCHCODE and b.BRANCHNAME is not null and trim(b.branchname) )