oracle基础

一. 参数、视图等

1. 警报日志位置: show parameters background_dump_dest alert.log 日志

 

2. 跟踪日志文件: user_dump_dest

 

3. SGA 大小: show parameters sga_max_size; 或 sga_target

sga 各部分: show sga

PGA(程序合局区,服务器进程使用的包含数据和信息的内存,非共享): 由 *_area_size 参数控制。

pga_aggregate_target:控制总共可用的pga

纯数据库服务器,oracle占用内存的大小大概为80%,pga设置为oracle占用内存的20%,也就是:总内存*80%*20%

 

4.各种视图 v$process: 进程视图

 

select * from v$session;  会话

select * from v$sgastat;  sga视图,还有 v$pgastat

v$sysstat

 

5.查找sql语句引起cpu高的问题的过程:

top查找哪个进程引起的

ps -ef|grep pid 查到是否本地还是远程用户  (local=no表示远程用户)

根据pid捕获有问题的语句:

 

select /*+ ORDERED */ sql_text

from v$sqltext a

where (a.hash_value,a.ADDRESS)in 

         (select decode(sql_hash_value,0, prev_hash_value,sql_hash_value),

                 decode(sql_hash_value,0,prev_sql_addr,sql_address)

          from v$session b

          where b.PADDR = (select addr from v$process c where c.spid='&pid'))

order by piece ASC;

(不太好用,要找更好的)

 

6.连接

左外连接:包括左边所有  A left join B on A.id=B.id

右外连接,类似

内连接即自然连接,inner join

一般不用加号,有较多限制

 

7. redo, undo

redo log记录执行的操作,使用改变向量(change vector)来记录,只记录操作代码、数据块地址等,记录量比实际执行语句少很多,能连续、顺序、快速地写出。

用户在 commit事务时,表示此时间点之前的 redo 写入了重做日志文件中而已,足以保证 提交成功的数据不会丢失。这

是 no-force-at-commit策略,也就是提交时不强制写。

由于ORACLE认为你一旦做数据更新,那么就意味着你要COMMIT(其他数据库不全是这种设计理念,比如DB2),所以在你更新数据的时候就做了大量的工作,在commit时所做工作并不多:产生SCN,写redo到磁盘,释放lock等。因此大事务和小事务commit时所花的时间差不多。

 

undo

读不阻塞写,写不阻塞读。

undo是为了回滚事务(rollback),也就是需要保存修改前数据的值,以便能够恢复到之前的状态。回滚的过程也会产生redo。

对于插入操作,回滚段记录的是 rowid。 update,记录的是被更新字段的旧值。delete记录的是整行的数据,因此delete的回滚是需要很长时间。

查看undo表空间大小:

select file_name,bytes/1024/1024 from dba_data_files where tablespace_name like 'UNDOTBS1';

 

查看回滚段的大小和状态

select usn,xacts,status,rssize/1024/1024 as "size(MB)",hwmsize/1024/1024/1024,shrinks from v$rollstat order by rssize;

 

 

归档日志:

1. 开启: alter database archivelog;

关闭: alter database noarchivelog;

必须在mount 模式下执行,startup mount

需重启数据库

2.查看: archive log list;

3. 删除:

rman target/

delete archivelog all completed before 'sysdate-2';  -- 删除2天之前的归档日志

delete archivelog from time 'sysdate-2';  -- 删除从两天前到现在的归档日志

 

 

等待事件、性能

所有等待事件:v$event_name

1.  v$session,  v$session_wait  v$sqltext

可以通过v$session_wait获取等待事件,得到等待时间最长的事件的 sid,在 v$session 根据 sid 查到 sql_hash_value, 根据 hash_value 在 v$sqltext 中查看相关语句。

2.  v$session_wait_history 可以查看之前活动session 的最近十个等待事件。

3. ASH : ash 是每一秒钟对 v$session 表进行采样得到的信息,但只记录活动的会话。使用的内存大小可以通过 v$sgastat 查询出来。内存写满了会覆盖前面的。

4. AWR :采样工作由MMON后台进程进行,默认每60分钟把所有重要的统计信息和负载信息执行一次快照。ASH 信息是AWR信息的一部分。把ASH 10%左右的信息写到AWR负载库中。相关表以 WRH$ 开头,存储在 SYSAUX表空间。

5. v$system_event

可以查看各类事件的自数据库运行以来的总的等待时间。

关注 event, time_waited, wait_class 等字段。如果 wait_class是idle,是空闲等待,不需要看。

如 db file scattered read 事件一般表示全表扫描,等待时间很长的话,可能就是没有建索引了。

db file sequential read 事件: 一般表示读取索引或通过索引读取数据块,等待时间很长的话,表示索引有问题,或者多表链接顺序没有正确的使用驱动表,

direct path read/write: 直接路径读、写。是指绕过SGA,直接读写PGA。一般指磁盘排序IO操作、直接路径加载。要确定是否有过度排序的语句,或者增大临时文件使用的空间,如增大 pga_aggregate_target

 

 

6. v$session_longops: 查看花费时间长的事件

v$sql_plan:查看执行计费,可以通过 operation 、options字段查询匹配哪些sql语句(需关联到sql_text表)进行了全表、全索引的扫描。

 

 

性能诊断

1. 执行计划

set autotrace off | on | on explain | on statistics | traceonly

或者

explain plan for select * from dual;

@?/rdbms/admin/utlxplp;

有效地降低sql的逻辑读(consistent gets)是sql优化的基本 原则之一。

 

2. sql_trace

对sql进行跟踪,设置参数 timed_statistics 为 true; max_dump_file_size要足够大。

alter session set sql_trace=true;  (不能sysdba登录,会提示权限不够)

将会生成跟踪文件,用 tkprof 格式化跟踪文件,进行查看。

 

对特定的 session 进行 sql_trace:

获取session 的 sid 和 serial ,  select sid,serial#,username from $session;

exec dbms_system.set_sql_trace_in_session(sid, serial, true);

运行一段时间后关闭: exec dbms_system.set_sql_trace_in_session(sid, serial, false);

 

3. 10046事件 

有4个级别:level 1 相当于sql_trace,  level 4 相当于level 1 + 绑定值

level 8 相当于level 1 + 等待事件跟踪,  level 12 相当于 level 4 + level 8

全局设置:在参数文件中增加: event="10046 trace name context forever,level 12"

session: alter session set events '10046 trace name context forever";

或:alter session set events '10046 trace name context forever,level 8';

关闭:alter session set events '10046 trace name context off';

设定其它会话: 需要用到 sid, serial#, username(同2)

exec dbms_system.set_ev(sid, serial, 10046, level, username);

关闭: dbms_system.set_ev(sid, serial, 10046, 0, username);

经测试:10046事件实际打印的执行计划的信息没有sql_trace 详细

 

 

物化视图

视图的查询结果是执行视图定义的查询语句动态得到的。

而物化视图则使用中间表存储了视图定义时查询语句的结果,查询物化视图时就不需要再动态关联各个表执行查询了。

物化视图是典型的空间换时间。

什么时候使用物化视图:定义视图的查询语句较为复杂;where语句较为严格,查询结果的数据量比原来少很多;原表数据更新频率不高或物化视图不需与原表同步实时更新数据。这时使用物化视图可大大提高查询性能。

内容概要:本文介绍了ENVI Deep Learning V1.0的操作教程,重点讲解了如何利用ENVI软件进行深度学习模型的训练与应用,以实现遥感图像中特定目标(如集装箱)的自动提取。教程涵盖了从数据准备、标签图像创建、模型初始化与训练,到执行分类及结果优化的完整流程,并介绍了精度评价与通过ENVI Modeler实现一键化建模的方法。系统基于TensorFlow框架,采用ENVINet5(U-Net变体)架构,支持通过点、线、面ROI或分类图生成标签数据,适用于多/高光谱影像的单一类别特征提取。; 适合人群:具备遥感图像处理基础,熟悉ENVI软件操作,从事地理信息、测绘、环境监测等相关领域的技术人员或研究人员,尤其是希望将深度学习技术应用于遥感目标识别的初学者与实践者。; 使用场景及目标:①在遥感影像中自动识别和提取特定地物目标(如车辆、建筑、道路、集装箱等);②掌握ENVI环境下深度学习模型的训练流程与关键参数设置(如Patch Size、Epochs、Class Weight等);③通过模型调优与结果反馈提升分类精度,实现高效自动化信息提取。; 阅读建议:建议结合实际遥感项目边学边练,重点关注标签数据制作、模型参数配置与结果后处理环节,充分利用ENVI Modeler进行自动化建模与参数优化,同时注意软硬件环境(特别是NVIDIA GPU)的配置要求以保障训练效率。
内容概要:本文系统阐述了企业新闻发稿在生成式引擎优化(GEO)时代下的全渠道策略与效果评估体系,涵盖当前企业传播面临的预算、资源、内容与效果评估四大挑战,并深入分析2025年新闻发稿行业五大趋势,包括AI驱动的智能化转型、精准化传播、首发内容价值提升、内容资产化及数据可视化。文章重点解析央媒、地方官媒、综合门户和自媒体四类媒体资源的特性、传播优势与发稿策略,提出基于内容适配性、时间节奏、话题设计的策略制定方法,并构建涵盖品牌价值、销售转化与GEO优化的多维评估框架。此外,结合“传声港”工具实操指南,提供AI智能投放、效果监测、自媒体管理与舆情应对的全流程解决方案,并针对科技、消费、B2B、区域品牌四大行业推出定制化发稿方案。; 适合人群:企业市场/公关负责人、品牌传播管理者、数字营销从业者及中小企业决策者,具备一定媒体传播经验并希望提升发稿效率与ROI的专业人士。; 使用场景及目标:①制定科学的新闻发稿策略,实现从“流量思维”向“价值思维”转型;②构建央媒定调、门户扩散、自媒体互动的立体化传播矩阵;③利用AI工具实现精准投放与GEO优化,提升品牌在AI搜索中的权威性与可见性;④通过数据驱动评估体系量化品牌影响力与销售转化效果。; 阅读建议:建议结合文中提供的实操清单、案例分析与工具指南进行系统学习,重点关注媒体适配性策略与GEO评估指标,在实际发稿中分阶段试点“AI+全渠道”组合策略,并定期复盘优化,以实现品牌传播的长期复利效应。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值