当前位置: 首页 > news >正文

oracle常用sql

oracle常用sql

  • oracle常用sql
    • 查询当前会话id(sid),会话序列号(serial#),操作系统进程id(spid)
    • 查询数据库信息
    • 查询实例信息
    • 查询字符集
    • 查看回收站情况
    • 数据库系统PSU信息
    • 数据库大小
    • 查看表空间状况
      • 常规库表空间情况查询,非CDB
      • CBD表空间情况查询
    • 当前客户端信息
    • 资源使用情况
    • 查看所有参数
    • 数据库闪回空间使用情况
      • 数据库闪回空间总体使用情况
      • 数据库闪回空间详细使用情况
    • 临时表空间使用情况
    • 数据文件状况
    • 控制文件
    • ASM磁盘使用情况
    • ASM磁盘组使用情况
    • ASM磁盘组参数配置情况
    • 闪回参数查询
    • 归档参数查询
    • 归档路径查询
    • 近一个月归档日志情况
    • 近一月内产生的归档日志总大小
    • 近一月内每天产生的归档日志总大小
    • 日志组大小
    • SGA使用情况
    • SGA配置信息
    • SGA target advice
    • PGA Target advice
    • 文件IO信息
      • 文件IO读写分析
      • 文件IO时间分析
    • 逻辑读TOP10的SQL语句
    • 物理读TOP10的SQL语句
    • 执行时间TOP10的SQL语句
    • 执行次数TOP10的SQL语句
    • 解析次数TOP10的SQL语句
    • VERSION_COUNT TOP10的SQL语句
    • 内存TOP10的SQL语句
    • DISK_SORT严重的SQL
    • 从ASH视图查询SQL
      • 最耗CPU的SQL语句
      • 最耗I/O的SQL语句
      • 最消耗资源的SQL语句
    • 执行时间最长SQL
    • 数据库用户查询
    • 拥有DBA角色的用户
    • 拥有SYS角色的用户
    • 超过1000行无主键的表
    • 只取数据量最大的前50张表,行数大于1000
    • 查找大小超过10GB的表
    • 历史ACTIVE会话数(按照小时展示)
    • 常规库查看LOCK锁情况
    • 常规库查看谁锁住了谁
    • CDB库查看锁情况

oracle常用sql

查询当前会话id(sid),会话序列号(serial#),操作系统进程id(spid)

-- 查询当前会话id(sid),会话序列号(serial#),操作系统进程id(spid)
SELECT a.SID,b.SERIAL#,c.SPID
FROM   v$mystat  a,v$session b,v$process c
WHERE  a.SID = b.SID
and b.PADDR=c.ADDR
AND ROWNUM = 1;

查询数据库信息

-- 查询数据库信息
SELECTDBID,NAME,LOG_MODE,OPEN_MODE,PROTECTION_MODE,DATABASE_ROLE,FORCE_LOGGING,CURRENT_SCN,FLASHBACK_ON,DB_UNIQUE_NAME
FROM  V$DATABASE;

查询实例信息

-- 查询实例信息
SELECTINSTANCE_NUMBER,INSTANCE_NAME,HOST_NAME,VERSION,STATUS,THREAD#
FROM V$INSTANCE;

查询字符集

-- 查询字符集
SELECT value$ characterset FROM sys.props$ WHERE name='NLS_CHARACTERSET';
SELECT userenv('language') characterset FROM dual;

查看回收站情况

-- 查看回收站情况
SELECT '状态:' || a.VALUE || ',占用空间:' ||(SELECT round(SUM(a.space * (SELECT valueFROM v$parameterWHERE name = 'db_block_size')) / 1024 / 1024,2) || 'M,共' || count(1) || '个对象'FROM cdb_recyclebin a) recyclebin1FROM v$parameter aWHERE a.NAME = 'recyclebin';SELECT * FROM RECYCLEBIN;
SELECT * FROM DBA_RECYCLEBIN;
SELECT * FROM USER_RECYCLEBIN;
SELECT * FROM CDB_RECYCLEBIN;

数据库系统PSU信息

-- 数据库系统PSU信息
SELECT d.con_id,to_char(d.action_time, 'YYYY-MM-DD HH24:MI:SS') action_time,d.action,d.namespace,d.id,--d.bundle_series,d.commentsFROM CDB_REGISTRY_HISTORY dORDER BY d.con_id, d.action_time;

数据库大小

-- 数据库大小
-- ts_datafile_physical_size_G表示所有表空间的物理文件实际占用大小,即表空间大小(不包括temp表空间)
-- ts_tempfile_physical_size_G表示所有临时表空间的文件实际占用大小
-- ts_datafile_used_size_G表示所有表空间的使用大小,数据文件实际使用大小,RMAN非压缩备份大小(若使用压缩as compressed备份则至少可以减少一半空间)
select A.CON_ID,A.ts_datafile_physical_size_G,B.ts_tempfile_physical_size_G,C.ts_datafile_used_size_GFROM (select A.CON_ID,round(sum(bytes) / 1024 / 1024 / 1024, 2) ts_datafile_physical_size_Gfrom CDB_data_files AGROUP BY A.CON_ID) A,(select A.CON_ID,round(sum(bytes) / 1024 / 1024 / 1024, 2) ts_tempfile_physical_size_Gfrom CDB_temp_files AGROUP BY A.CON_ID) B,(select A.CON_ID,round(sum(bytes) / 1024 / 1024 / 1024, 2) ts_datafile_used_size_Gfrom CDB_segments AGROUP BY A.CON_ID) CWHERE A.CON_ID = B.CON_IDAND A.CON_ID = C.CON_IDORDER BY con_id;

查看表空间状况

常规库表空间情况查询,非CDB

WITH wt1 AS(SELECT ts.TABLESPACE_NAME,df.all_bytes,decode(df.TYPE,'D',nvl(fs.FREESIZ, 0),'T',df.all_bytes - nvl(fs.FREESIZ, 0)) FREESIZ,df.MAXSIZ,ts.BLOCK_SIZE,ts.LOGGING,ts.FORCE_LOGGING,ts.CONTENTS,ts.EXTENT_MANAGEMENT,ts.SEGMENT_SPACE_MANAGEMENT,ts.RETENTION,ts.DEF_TAB_COMPRESSION,ts.bigfile,df.ts_df_countFROM dba_tablespaces ts,(SELECT 'D' TYPE,TABLESPACE_NAME,COUNT(*) ts_df_count,SUM(BYTES) all_bytes,SUM(decode(MAXBYTES, 0, BYTES, MAXBYTES)) MAXSIZFROM dba_data_files dGROUP BY TABLESPACE_NAMEUNION ALLSELECT 'T',TABLESPACE_NAME,COUNT(*) ts_df_count,SUM(BYTES) all_bytes,SUM(decode(MAXBYTES, 0, BYTES, MAXBYTES))FROM dba_temp_files dGROUP BY TABLESPACE_NAME) df,(SELECT TABLESPACE_NAME, SUM(BYTES) FREESIZFROM dba_free_spaceGROUP BY TABLESPACE_NAMEUNION ALLSELECT tablespace_name, SUM(d.BLOCK_SIZE * a.BLOCKS) bytesFROM gv$sort_usage a, dba_tablespaces dWHERE a.tablespace = d.tablespace_nameGROUP BY tablespace_name) fsWHERE ts.TABLESPACE_NAME = df.TABLESPACE_NAMEAND ts.TABLESPACE_NAME = fs.TABLESPACE_NAME(+))
SELECT (SELECT A.TS#FROM V$TABLESPACE AWHERE A.NAME = UPPER(t.TABLESPACE_NAME)) TS#,t.TABLESPACE_NAME TS_Name,round(t.all_bytes / 1024 / 1024) ts_size_M,round(t.freesiz / 1024 / 1024) Free_Size_M,round((t.all_bytes - t.FREESIZ) / 1024 / 1024) Used_Size_M,round((t.all_bytes - t.FREESIZ) * 100 / t.all_bytes, 3) Used_per,round(MAXSIZ / 1024 / 1024 / 1024, 3) MAX_Size_g,round(decode(MAXSIZ, 0, to_number(NULL), (t.all_bytes - FREESIZ)) * 100 /MAXSIZ,1) USED_per_MAX,round(t.BLOCK_SIZE) BLOCK_SIZE,t.LOGGING,t.FORCE_LOGGING,t.CONTENTS,t.EXTENT_MANAGEMENT,t.SEGMENT_SPACE_MANAGEMENT,t.RETENTION,t.DEF_TAB_COMPRESSION,t.bigfile,t.ts_df_countFROM wt1 t;

CBD表空间情况查询

SELECT CON_ID,PDBNAME,TS#,TS_NAME,type,TS_SIZE_M,FREE_SIZE_M,USED_SIZE_M,USED_PER,MAX_SIZE_G,USED_PER_MAX,BLOCK_SIZE,LOGGING,TS_DF_COUNT
FROM   (WITH wt1 AS (SELECT ts.CON_ID,(SELECT np.NAMEFROM   V$CONTAINERS npWHERE  np.CON_ID = tS.con_id) PDBNAME,(SELECT A.TS#FROM   V$TABLESPACE AWHERE  A.NAME = UPPER(tS.TABLESPACE_NAME)AND    a.CON_ID = tS.con_id) TS#,ts.TABLESPACE_NAME,df.all_bytes,decode(df.TYPE,'D',nvl(fs.FREESIZ, 0),'T',df.all_bytes - nvl(fs.FREESIZ, 0)) FREESIZ,df.MAXSIZ,ts.BLOCK_SIZE,ts.LOGGING,ts.FORCE_LOGGING,ts.CONTENTS,ts.EXTENT_MANAGEMENT,ts.SEGMENT_SPACE_MANAGEMENT,ts.RETENTION,ts.DEF_TAB_COMPRESSION,df.ts_df_countFROM   cdb_tablespaces ts,(SELECT d.CON_ID,'D' TYPE,TABLESPACE_NAME,COUNT(*) ts_df_count,SUM(BYTES) all_bytes,SUM(decode(MAXBYTES, 0, BYTES, MAXBYTES)) MAXSIZFROM   cdb_data_files dGROUP  BY d.CON_ID,TABLESPACE_NAMEUNION ALLSELECT d.CON_ID,'T',TABLESPACE_NAME,COUNT(*) ts_df_count,SUM(BYTES) all_bytes,SUM(decode(MAXBYTES, 0, BYTES, MAXBYTES))FROM   cdb_temp_files dGROUP  BY d.CON_ID,TABLESPACE_NAME) df,(SELECT d.CON_ID,TABLESPACE_NAME,SUM(BYTES) FREESIZFROM   cdb_free_space dGROUP  BY d.CON_ID,TABLESPACE_NAMEUNION ALLSELECT d.CON_ID,tablespace_name,SUM(d.BLOCK_SIZE * a.BLOCKS) bytesFROM   gv$sort_usage   a,cdb_tablespaces dWHERE  a.tablespace = d.tablespace_nameAND    a.CON_ID = d.CON_IDGROUP  BY d.CON_ID,tablespace_name) fsWHERE  ts.TABLESPACE_NAME = df.TABLESPACE_NAMEAND    ts.CON_ID = df.CON_IDAND    ts.TABLESPACE_NAME = fs.TABLESPACE_NAME(+)AND    ts.CON_ID = fs.CON_ID(+))SELECT T.CON_ID,(CASEWHEN T.PDBNAME = LAG(T.PDBNAME, 1)OVER(PARTITION BY T.PDBNAME ORDER BY TS#) THENNULLELSET.PDBNAMEEND) PDBNAME,TS#,t.TABLESPACE_NAME TS_Name,t.CONTENTS type,round(t.all_bytes / 1024 / 1024) ts_size_M,round(t.freesiz / 1024 / 1024) Free_Size_M,round((t.all_bytes - t.FREESIZ) / 1024 / 1024) Used_Size_M,round((t.all_bytes - t.FREESIZ) * 100 / t.all_bytes, 3) Used_per,round(MAXSIZ / 1024 / 1024 / 1024, 3) MAX_Size_g,round(decode(MAXSIZ,0,to_number(NULL),(t.all_bytes - FREESIZ)) * 100 / MAXSIZ,3) USED_per_MAX,round(t.BLOCK_SIZE) BLOCK_SIZE,t.LOGGING,t.ts_df_countFROM  wt1 t);

当前客户端信息

SELECT sys_context('USERENV', 'ACTION') ACTION,sys_context('USERENV', 'AUTHENTICATED_IDENTITY') AUTHENTICATED_IDENTITY,sys_context('USERENV', 'AUTHENTICATION_TYPE') AUTHENTICATION_TYPE,sys_context('USERENV', 'AUTHENTICATION_METHOD') AUTHENTICATION_METHOD,sys_context('USERENV', 'CURRENT_EDITION_NAME') CURRENT_EDITION_NAME,sys_context('USERENV', 'CURRENT_SCHEMA') CURRENT_SCHEMA,sys_context('USERENV', 'CURRENT_USER') CURRENT_USER,sys_context('USERENV', 'DATABASE_ROLE') DATABASE_ROLE,sys_context('USERENV', 'DB_NAME') DB_NAME,sys_context('USERENV', 'DB_UNIQUE_NAME') DB_UNIQUE_NAME,sys_context('USERENV', 'HOST') HOST,sys_context('USERENV', 'IDENTIFICATION_TYPE') IDENTIFICATION_TYPE,sys_context('USERENV', 'INSTANCE') INSTANCE,sys_context('USERENV', 'INSTANCE_NAME') INSTANCE_NAME,sys_context('USERENV', 'IP_ADDRESS') IP_ADDRESS,sys_context('USERENV', 'ISDBA') ISDBA,sys_context('USERENV', 'LANG') LANG,sys_context('USERENV', 'LANGUAGE') LANGUAGE,sys_context('USERENV', 'MODULE') MODULE,sys_context('USERENV', 'NETWORK_PROTOCOL') NETWORK_PROTOCOL,sys_context('USERENV', 'NLS_CALENDAR') NLS_CALENDAR,sys_context('USERENV', 'NLS_CURRENCY') NLS_CURRENCY,sys_context('USERENV', 'NLS_DATE_FORMAT') NLS_DATE_FORMAT,sys_context('USERENV', 'NLS_DATE_LANGUAGE') NLS_DATE_LANGUAGE,sys_context('USERENV', 'NLS_SORT') NLS_SORT,sys_context('USERENV', 'NLS_TERRITORY') NLS_TERRITORY,sys_context('USERENV', 'OS_USER') OS_USER,sys_context('USERENV', 'SERVER_HOST') SERVER_HOST,sys_context('USERENV', 'SERVICE_NAME') SERVICE_NAME,sys_context('USERENV', 'SESSION_EDITION_ID') SESSION_EDITION_ID,sys_context('USERENV', 'SESSION_EDITION_NAME') SESSION_EDITION_NAME,sys_context('USERENV', 'SESSION_USER') SESSION_USER,sys_context('USERENV', 'SESSIONID') SESSIONID,sys_context('USERENV', 'SID') SID,sys_context('USERENV', 'TERMINAL') TERMINALFROM dual;

资源使用情况

SELECT a.con_id,a.inst_id as "实例id",a.resource_name as "资源名称",a.current_utilization as "当前值",a.max_utilization as "最大值",a.initial_allocation as "初始值",a.limit_value as "限制值"FROM gv$resource_limit aorder by a.con_id, a.inst_id, a

相关文章:

oracle常用sql

oracle常用sql oracle常用sql查询当前会话id(sid),会话序列号(serial#),操作系统进程id(spid)查询数据库信息查询实例信息查询字符集查看回收站情况数据库系统PSU信息数据库大小查看表空间状况常规库表空间情况查询,非CDBCBD表空间情况查询当前客户端信息资源使用情况…...

手游模拟器长时间运行后,游戏掉帧且不恢复

1)手游模拟器长时间运行后,游戏掉帧且不恢复 2)FrameBuffer Fetch无论哪种模式在确定支持的手机上显示全紫 3)协程中yield return CoFunction()和yield return StartCoroutine(CoFunction())的区别 这是第353篇UWA技术知识分享的推…...

linux下离线安装telnet

安装过程概要: (一)互联网端下载rpm包; (二)上传到服务器root目录下; (三)安装telnet服务和测试: 详细内容: (一)互联…...

Unity 发布WebGL平台,C#与JavaScript交互

发布H5平台,接入SDK,比如微信等,涉及到C#与JS的交互。 jslib(JavaScript Library)是Unity的一种机制,允许你在C#中通过JavaScript代码来执行一些操作。这是一种高级的技巧,主要用于一些特殊情况…...

利用 Forcing InnoDB Recovery 特性解决 MySQL 重启失败的问题

问题 由于异常断电或者系统异常重启时 MySQL 没有正常退出导致 MySQL 无法启动,启动时报错如下: [System] [Server] /usr/sbin/mysqld (mysqld 8.0.30) starting as process 2665 [System] [InnoDB] InnoDB initialization has started. [System] [Inn…...

windows修改键位F11变insert(改键盘映射)

这里是通过改变windows的注册表来实现的 1.按住winr打开运行,在运行中输入“regedit”,再点击“确定”按钮。如下图 2.找到注册表的目录 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout 3.在Keyboard Layout右击新建 -> 二进…...

安装gpu版本的paddle和paddleclas

安装gpu版本的paddle python -m pip install paddlepaddle-gpu2.3.2.post111 -f https://www.paddlepaddle.org.cn/whl/windows/mkl/avx/stable.html以上支持cuda11.1版本 其他需求可查阅文档在这里 安装paddleclas 1 在虚拟环境中安装所需的Python库: pip inst…...

61从零开始学Java之处理大数字相关的类有哪些?

作者:孙玉昌,昵称【一一哥】,另外【壹壹哥】也是我哦 千锋教育高级教研员、CSDN博客专家、万粉博主、阿里云专家博主、掘金优质作者 前言 我们知道,在现实世界里,实际上数字是有无穷个的,就比如0和1之间&a…...

vscode 搜索界面的files to include files to exclude 是什么功能?

在VSCode(Visual Studio Code)中,搜索功能是一个强大的工具,可以帮助你在项目中快速查找特定的文本、代码或其他内容。搜索界面的 “files to include” 和 “files to exclude” 提供了一种方式来定制你的搜索范围。 files to in…...

数据计算-第15届蓝桥杯第一次STEMA测评Scratch真题精选

[导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第154讲。 第15届蓝桥杯第1次STEMA测评已于2023年8月20日落下帷幕,编程题一共有6题,分别如下&a…...

谈谈前端和后端的选择

引言 在我的印象中,也是视线里,后端都是在一个黑屏的页面,左边一个文件类,右边在不停的写sql,一只手放在键盘上,一边写,一遍不停的关联进入,感觉很无趣,他们的分享不是什么java集成&…...

Vue3最佳实践 第六章 Pinia,Vuex与axios,VueUse 1(Pinia)

Pinia状态管理 在 Vue3 中项目中组件之间传递数据时,可以使用 Props 和 Emit,还可以使用 Provide/Inject 来代替 Props 和 Emit。Props 和 Emit 只能在具有父子关系的组件之间传递数据,所以层级越深,过程就越复杂。为了解决此类问…...

Java比较器之equals、comparable、comparator

文章目录 前言一、基本类型比较1.2.equals3.和equals的区别 二、对象的比较1.覆写基类的equals2.基于Comparable接口类的比较3.基于Comparator比较器比较4.三种方式对比 前言 在Java中,基本类型的对象可以直接比较,而自定义类型,默认是用equ…...

Virtio-user使用简介

一、简述​ DPDK支持几种方式让用户空间的报文重新进入内核协议栈(这种dpdk和kernel直接通信的路径叫做exception path),例如tap/tun设备使用,kni,Virtio-user。这里主要讲Virtio-user使用,Virtio-user是virtio PMD的虚拟设备&…...

点云从入门到精通技术详解100篇-基于深度学习的三维植物点云分割网络

目录 前言 研究现状及趋势 传统的植物表型分割方法 现行的植物表型分割方法...

C语言 Cortex-A7核 SPI 实验

1 实验目的 1、数码管显示相同的值0000 1111 2222 .... 9999 2、数码管不同的值1234 2 代码 include/spi.h #ifndef __SPI_H__ #define __SPI_H__ #includ…...

Spring工具类--ReflectionUtils的使用

原文网址:Spring工具类系列--ReflectionUtils的使用_IT利刃出鞘的博客-CSDN博客 简介 本文介绍Spring的ReflectionUtils的使用。 ReflectionUtils工具类的作用:便利地进行反射操作。 Spring还有一个工具类:ReflectUtils,它们在…...

zemax西德莫尔目镜

高性能的军用光学仪器 在两个双胶合透镜之间,增加了一块平凸透镜 半视场角增大到35度 入瞳直径4mm波长0.51、0.56、0.61半视场35焦距27.9mm 镜头参数: 成像效果:...

C++ 拷贝构造函数

介绍和示例 拷贝构造函数是一种特殊的构造函数,它在创建对象时,是使用同一类中之前创建的对象来初始化新创建的对象。拷贝构造函数通常用于: 通过使用另一个同类型的对象来初始化新创建的对象。 复制对象把它作为参数传递给函数。 复制对象…...

怎么使用 Flink 向 Apache Doris 表中写 Bitmap 类型的数据

Bitmap是一种经典的数据结构,用于高效地对大量的二进制数据进行压缩存储和快速查询。Doris支持bitmap数据类型,在Flink计算场景中,可以结合Flink doris Connector对bitmap数据做计算。 社区里很多小伙伴在是Doris Flink Connector的时候&…...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南

点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...

基于大模型的 UI 自动化系统

基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...

循环冗余码校验CRC码 算法步骤+详细实例计算

通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)&#xff0…...

HTML 列表、表格、表单

1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...

c++ 面试题(1)-----深度优先搜索(DFS)实现

操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...

Python爬虫(二):爬虫完整流程

爬虫完整流程详解(7大核心步骤实战技巧) 一、爬虫完整工作流程 以下是爬虫开发的完整流程,我将结合具体技术点和实战经验展开说明: 1. 目标分析与前期准备 网站技术分析: 使用浏览器开发者工具(F12&…...

SpringCloudGateway 自定义局部过滤器

场景: 将所有请求转化为同一路径请求(方便穿网配置)在请求头内标识原来路径,然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...

企业如何增强终端安全?

在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...

中医有效性探讨

文章目录 西医是如何发展到以生物化学为药理基础的现代医学?传统医学奠基期(远古 - 17 世纪)近代医学转型期(17 世纪 - 19 世纪末)​现代医学成熟期(20世纪至今) 中医的源远流长和一脉相承远古至…...

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题

分区配置 (ptab.json) img 属性介绍: img 属性指定分区存放的 image 名称,指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件,则以 proj_name:binary_name 格式指定文件名, proj_name 为工程 名&…...