当前位置: 首页 > 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的时候&…...

LeetCode 四数相加II 哈希

原题链接&#xff1a; 力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 题面&#xff1a; 给你四个整数数组 nums1、nums2、nums3 和 nums4 &#xff0c;数组长度都是 n &#xff0c;请你计算有多少个元组 (i, j, k, l) 能满足&#xff1a; 0 < i,…...

python(自4) xpath下载 lxml安装 lxml语法 使用方式

&#xff08;一&#xff09;安装 搜索xpath 讲解 XPath 教程 (w3school.com.cn) 一&#xff0c;下载地址 &#xff1a; https://chrome.zzzmh.cn/info/hgimnogjllphhhkhlmebbmlgjoejdpjl 二 &#xff0c;拖拽 &#xff08;二&#xff09;lxml安装 cmd 打开终端 cd pythond…...

05-Zookeeper典型使用场景实战

上一篇&#xff1a;04-Zookeeper集群详解 1. Zookeeper 分布式锁加锁原理 如上实现方式在并发问题比较严重的情况下&#xff0c;性能会下降的比较厉害&#xff0c;主要原因是&#xff0c;所有的连接都在对同一个节点进行监听&#xff0c;当服务器检测到删除事件时&#xff0c…...

stl格式-3D三角形

文章目录 什么是stl文件?格式首选stl的语法1.这是一个stl格式的文件:2.下面先举个例子(难度略微提示)补充:关于\<\<我试了一下:这个法线你随便写好像也没问题\>> 3.来个立方体4.最后再写一个由三个直角形组成的立方体 什么是stl文件? 首先说一下,这个stl不是cpp…...

基于微信小程序的高校暑期社会实践小程序设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言系统主要功能&#xff1a;具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计…...

ARM-day2

1、 .text .global _start_start:MOV r0, #0x1ADDS r1,r0, #0x1cmp r1, #100bl funstop:b stopfun:ADD r2,r1,r1.end2、思维导图...

macOS Sonoma 14 正式版(23A344)发布,附黑/白苹果镜像下载地址

系统介绍&#xff08;系统下载地址&#xff1a;http://www.imacosx.cn/115300.html&#xff09; 黑果魏叔9 月 27日消息&#xff0c;苹果今日向 Mac 电脑用户推送了 macOS Sonoma 14 正式版&#xff08;23A344&#xff09;。 macOS 14正式版系统发布&#xff1a;全新功能与改…...

HarmonyOS开发:封装一个便捷的Log工具类

前言 日志打印&#xff0c;没什么好说的&#xff0c;系统已给我们提供&#xff0c;且调用也是非常的简单&#xff0c;我们封装的目的&#xff0c;一是扩展&#xff0c;打印一些不常见的类型&#xff0c;比如格式化json&#xff0c;使得日志看起来比较好看&#xff0c;二是&…...

第十章_祖冲之_圆周率

倒数1又2/3章&#xff0c;keep_writting的一天&#xff1a; 第十章10.1.7 运行程序资源下载网站为何打不开呢&#xff1f;...

FVM管理Flutter 环境

开发中&#xff0c;会经常切换不同版本的 Flutter 环境。使用 FVM&#xff08;Flutter Version Manager &#xff09;来进行 Flutter 版本切换是一个很不错的选择。 下面从安装FVM、环境配置、切换Flutter这几个主要步骤总结下 FVM 的使用 一、安装 homebrew 网址&#xff1…...