<SQL>《SQL命令(含例句)精心整理版(6)》

news2024/10/7 8:23:56

《SQL命令(含例句)精心整理版(6)》

  • 18 DB2查询语句
    • 18.1 查询数据库大小
    • 18.2 查看表占表空间大小
    • 18.3 查看正在执行的语句
    • 18.4 db2expln 查看执行计划
    • 18.5 db2advis 查看优化建议
  • 19 空值
    • 19.1 NULL
    • 19.2 TRIM

18 DB2查询语句

18.1 查询数据库大小

//命令	
$db2 "call GET_DBSIZE_INFO(?,?,?,0)"
//示例	
$ db2 "call GET_DBSIZE_INFO(?,?,?,0)"
	 
	  Value of output parameters
	  --------------------------
	  Parameter Name  : SNAPSHOTTIMESTAMP
	  Parameter Value : 2013-10-24-09.57.58.642597
	 
	  Parameter Name  : DATABASESIZE
	Parameter Value : 3756920832
	 
	  Parameter Name  : DATABASECAPACITY
	Parameter 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_name=`cat tables.txt`
curdate=`date +%Y%m%d`
counter=0

db2 connect to tcorp > /dev/null

:> $slt_dir/size/${curdate}_size.txt
tab_name=`cat tables.txt`
for tabname in $tab_name
        do
                tbschema=`echo "$tabname" | awk -F"." '{print $1}'`
                tbname=`echo "$tabname" | awk -F"." '{print $2}'`
                counter=`echo "$counter + 1" | bc`
                echo "$counter \c" >> $slt_dir/size/${curdate}_size.txt
                db2 "SELECT TABNAME,SUM(DATA_OBJECT_P_SIZE+INDEX_OBJECT_P_SIZE+LONG_OBJECT_P_SIZE+XML_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.txt
        done

18.3 查看正在执行的语句

# get db2 current active sql
# create by chenzl
dbname=CFAS
echo "dbname: $dbname"
appinfolog=/db2databkup/appinfo.log
echo "logfile: $appinfolog"

>$appinfolog
db2pd -d $dbname -act >listact.tmp
linenum=`wc listact.tmp|awk 'BEGIN{FS=" "}{print $1}'`
actappnum=`expr $linenum - 5`
echo actappnum:$actappnum
tail -n $actappnum listact.tmp>actapp.tmp
echo  ******************`date "+20%y-%m-%d %H:%M:%S"`******************** >>$appinfolog
        delcounter=$actappnum
        while [ $delcounter -gt 0 ]
        do
                #echo "delcounter=$delcounter"
                head -n 1 actapp.tmp >dellogdataret
                apphandle=`cat dellogdataret|awk 'BEGIN{FS=" "}{print $2}'`
                echo "------------------apphandle: $apphandle--------------------">>$appinfolog
                db2pd -d $dbname -apinfo $apphandle>>$appinfolog
                delcounter=`expr $delcounter - 1`
                tail -n $delcounter actapp.tmp >dellogdatatt
                cat dellogdatatt >actapp.tmp
        done
#display the sql
echo "----------the current active sql:-----------"
more $appinfolog|grep "Statement :"
rm -f dellogdatatt
rm -f dellogdataret
#rm -f actapp.tmp

18.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.txt

3、示例语句2:

db2expln -d tycjdb -q " 语句 "  -g -t 

4、执行计划查看方法 :

由下往上看,有索引Index: 的表示已经使用上索引,无需优化。TBSCAN :表示全表扫描,需要加索引。e+06表示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.sql

3、示例2:

db2advis -d tycjdb -s " 语句 "

4、执行优化建议方法
绿色框中为执行语句
在这里插入图片描述

19 空值

19.1 NULL

//命令:
is not null

19.2 TRIM

//命令:
trim(b.branchname) <>''
//示例:
update SYS_ADMITORGS a set a.ORGNAME=(select b.branchname from tbl_codebranch b where a.orgcode=b.BRANCHCODE and b.BRANCHNAME is not null and trim(b.branchname) <>'') where exists (select 1 from tbl_codebranch b where a.orgcode=b.BRANCHCODE and b.BRANCHNAME is not null and trim(b.branchname) <>'')

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/574776.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

chatgpt赋能python:Python常用扩展包

Python常用扩展包 Python本身就已经是一门非常强大的编程语言了&#xff0c;但是为了适应不同的应用场景&#xff0c; Python社区开发了许多扩展包。这些包涵盖了从数据科学到Web开发的各个领域&#xff0c;让Python的应用范围更加广泛。 下面我们将介绍一些常用的Python扩展…

数据链路层:封装成帧

1.数据链路层&#xff1a;封装成帧 笔记来源&#xff1a; 湖科大教书匠&#xff1a;封装成帧 声明&#xff1a;该学习笔记来自湖科大教书匠&#xff0c;笔记仅做学习参考 封装成帧是指数据链路层给上层交付的协议数据单元添加帧头和帧尾使之成为帧 帧头和帧尾中包含重要的控制…

Vue Composition API之侦听器watch/watchEffect

目录 概述实例解析1.watch侦听器的用法基本使用深层侦听器即时回调监听器 2、watchEffect侦听器的用法3 停止侦听器 总结 概述 在日常的开发中&#xff0c;很多时候我们需要去对一些状态进行监听&#xff0c;比如当显示学生的成绩列表时&#xff0c;我们使用一个学生的学号stu…

【Python】循环语句 ④ ( for 循环 | for 循环基础语法 | 代码示例 - for 循环基础用法 | 代码示例2 - for 循环统计单词 )

文章目录 一、for 循环与 while 循环二、for 循环基础语法三、代码示例 - for 循环基础用法三、代码示例2 - for 循环统计单词 一、for 循环与 while 循环 for 循环 与 while 循环 可以 f实现 相同的 循环功能 , 二者有如下区别 : 循环条件不同 : while 循环 的 循环控制条件 …

C++学习笔记(四): 类、头文件、对象

一个类定义了一个类型&#xff0c;以及与其关联的一组操作。 类机制是C最重要的特性之一。实际上&#xff0c;C最初的一个设计焦点就是能定义使用上像内置类型一样自然的类类型&#xff08;class type&#xff09;。 #include <iostream>using namespace std;class Box …

撰写博客如何获得持续的关注和支持

完成一篇如何获得铁粉&#xff0c;或者相关的文章且质量分达到80分以上即可 最近的博客都是在AI主导下完成的&#xff0c;大数据和大模型的优势的确有不可取代的强大优势&#xff0c;这种优势超过了撰写8年博客加入CSDN18年所有经验和努力的总和。 是的&#xff0c;AI和大数据的…

IPv4 和 IPv6 的特点、区别以及在互联网中的应用

在当今互联网时代&#xff0c;IP 地址是连接和通信的基础。IPv4&#xff08;Internet Protocol version 4&#xff09;和 IPv6&#xff08;Internet Protocol version 6&#xff09;是两种常见的 IP 地址版本。IPv4 是最早广泛使用的 IP 地址协议&#xff0c;而 IPv6 则是 IPv4…

chatgpt赋能python:Python循环结束的方式

Python循环结束的方式 在Python编程中&#xff0c;循环是一个非常重要的概念。循环是在程序中重复执行一段代码的方法。当满足特定条件时&#xff0c;循环可以继续执行&#xff0c;否则循环将结束。循环包括while循环和for循环两种方式。 while循环结束的方式 while循环是Py…

chatgpt赋能python:Python彩色输出:让代码更加生动有趣

Python 彩色输出&#xff1a;让代码更加生动有趣 如果你是一名Python程序员&#xff0c;那么你一定知道代码的可读性有多么重要。合理的排版和注释代码可以使你的代码更易于理解&#xff0c;但有时候你需要一些额外的工具来使代码更加生动有趣。这时候&#xff0c;Python 的彩…

腾讯云CVM服务器端口怎么开通?以开80端口为例

腾讯云CVM服务器端口是通过配置安全组规则来开通的&#xff0c;阿腾云以开通80端口为例来详细说下腾讯云轻量应用服务器开启端口的方法&#xff0c;其他的端口的开通如8080、1433、443、3306、8888等端口也适用于此方法&#xff0c;腾讯云服务器开通端口教程如下&#xff1a; …

chatgpt赋能python:Python取数字:一种简单而强大的方法

Python取数字&#xff1a;一种简单而强大的方法 Python是一种高级编程语言&#xff0c;被广泛用于数据分析、人工智能、Web开发等领域。在这个强大的语言中&#xff0c;我们可以使用非常简单的方法来提取数字&#xff0c;无论是从文本文件、数据库中&#xff0c;还是从互联网上…

新的交互流程:Ambire dApp 目录为Web3 的流畅旅程保驾护航

Ambire 钱包现在将 dApps 列入白名单&#xff0c;以提供丝滑又安全的用户体验。 尊敬的 Ambire 家人们&#x1f64c;&#xff0c;你们好&#xff01; 我们很高兴能与大家正式分享我们的 dApp 目录和插件系统 &#x1f389;。 你们中的一些人可能已经在你们的 Ambire 账户中注意…

chatgpt赋能python:Python坐标图:简单易用的数据可视化工具

Python 坐标图&#xff1a;简单易用的数据可视化工具 作为一种通用工具&#xff0c;Python 不仅在数据科学、自然语言处理、机器学习和深度学习等领域应用广泛&#xff0c;还在数据可视化方面表现出色。Python 的数据可视化库丰富多样&#xff0c;其中最受欢迎的就是 Matplotl…

chatgpt赋能python:Python微信群:一起探讨Python大家庭

Python 微信群&#xff1a;一起探讨Python大家庭 Python 微信群是一个由 Python 爱好者组成的大家庭&#xff0c;他们在这个平台上分享、交流、学习Python知识。在这个微信群中&#xff0c;你可以认识来自各行各业的Python工程师&#xff0c;可以发问、分享自己的经验和学习进…

GcExcel v6.1 支持新的 ‘.sjs‘ 模板文件 ‘.xltx‘ 格式 Crack

GrapeCity Documents for Excel (GcExcel) v6.1 版本现已上线&#xff01;该版本支持新的 SpreadJS .sjs 文件格式和 Excel 模板文件 .xltx 格式。此外&#xff0c;GcExcel 支持更多的SpreadJS兼容性功能和对 GcDataViewer 的多项增强。看看下面的主要亮点。 导入/导出 Spread…

chatgpt赋能python:Python循环两次:多次复制代码的快捷方式

Python 循环两次&#xff1a;多次复制代码的快捷方式 如果你是一名Python工程师&#xff0c;你可能已经会用循环复制代码了。然而&#xff0c;你是否知道可以循环两次来一次性复制代码呢&#xff1f;在这篇文章里&#xff0c;我们将介绍循环两次的方法&#xff0c;以及如何在代…

【分布族谱】均匀分布和三角形分布的关系

文章目录 均匀分布和三角分布均匀分布相加对数均匀分布 均匀分布和三角分布 均匀分布是最容易理解的连续随机分布&#xff0c;实际上就是等概率的连续分布&#xff0c;其PDF为 f ( x ) 1 b − a , x ∈ ( a , b ) f(x)\frac{1}{b-a}, x\in (a,b) f(x)b−a1​,x∈(a,b) 其样本…

chatgpt赋能python:Python嵌入-提高网站性能的最佳实践

Python 嵌入 - 提高网站性能的最佳实践 作为一名有10年Python编程经验的工程师&#xff0c;我想向大家介绍一下Python嵌入的概念以及如何将它应用于提高网站的性能。 什么是 Python 嵌入&#xff1f; Python嵌入是将Python解释器嵌入到其他应用程序中的过程。当Python解释器…

LOTL网络攻击技术越来越受欢迎

根据 APJ Darktrace 企业安全总监对 ACSC 及其五眼联盟合作伙伴本周发布的声明的回应&#xff0c;“离地生活”攻击技术越来越受欢迎。 Living off the land (LOTL) 是一种无文件恶意软件或 LOLbins 网络攻击技术。 网络罪犯使用受害人系统中的本机合法工具来维持和推进攻击。…

chatgpt赋能python:Python字段截取入门指南

Python字段截取入门指南 在Python中&#xff0c;对于字符串和列表等容器类型的对象&#xff0c;经常需要对其中的字段或元素进行截取。本篇文章将为您介绍Python中常用的字段截取方法&#xff0c;并提供一些示例&#xff0c;让您快速上手。 字符串字段截取 从头开始截取 如…