悲观锁乐观锁死锁
悲观锁大多数情况下依靠数据库的锁机制实现,以保证操作最大程度的独占性。乐观锁相对悲观锁而言,乐观锁机制采取了更加宽松的加锁机制,大多是基于数据版本记录机制实现。读取出数据时,将此版本号一同读出,之后更新时,对此版本号加一。此时,将提交数据的版本数据与数据库表对应记录的当前版本信息进行比对,如...
AWR/ASH/ADDM 报告生成方法
---三种性能报告的生成:这三种报告包括:AWR/ASH/ADDM 报告--AWR:SQL>dbms_workload_repository.create_snapshot(); --手动生成一个快照sql> @?/dbms/admin/awrrpt.sql --生成awr报告的指令脚本----awr与ash的最主...
ROUND(x,y)与TRUNC(x,y)函数中y参数值为省略、空值与null的区别
----ROUND(x,y)与TRUNC(x,y)函数中y参数值为省略、空值与null的区别:sys@PROD>alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';Session altered. ---函数的结构:ROUND(x,y):以小数点后Y位(或Y日期格式)四舍五入取X的值。TRUNC(x,y):以小数点后Y位(或Y日期格式)截断取X的...
round函数与trunc函数的使用方法
之前的一些博文中已经提及过这两个函数的用法,但之前的值使用了数字类型进行的测试。在这篇博文里,算是这两个函数使用的补充吧。因为近段时间里常用到了这两个函数,其中省略了函数中的部分参数,但同样可以使用函数。以下是测试的过程:----round函数与trunc函数的使用方法:sys@PROD>alter session set nls_d...
logmnr挖掘归档日志文件
通过logmnrr挖掘归档日志文件,可以辅助恢复数据库,也从某种程度说起到审计的作用,因为日志文件记录了数据库中块变化的信息,但主要不是审计用途,审计还有专门的方法。 以下是用本机的数据库挖掘其他库的归档日志文件的实验过程:----挖掘归档日志文件:---创建存放被挖掘的归档日志文件的目录:[oracle@e...
服务端配置一个多端口号(如1521/1526)监听器
服务端的监听器有多种配置方法:1、默认的情况下是一个监听器一个端口,这个时候,不需要在tnsnames.ora文件里解析监听器信息;2、多个监听器多个端口(端口号可以相同),这时候,需要在tnsnames.ora文件里解析监听器信息;3、一个监听器多个端口号的监听器,这时候同样需要在tnsnames.ora文件里解析监听器信息。以...
性能查询并杀CPU高耗进程
以下是模拟消耗CPU较高的进程,并通过查询进程(通过操作系统top命令查询)进一步停止进程。---模拟例子:1:会话1:执行select * from all_objects;2:会话2:linux下执行top,查看pidtop:Cpu(s): 5.3%us, 2.6%sy, 0.0%ni, 91.4%id, 0.0%wa, 0.0%hi, 0.7%si, 0.0%stMem: &...
oracle统计信息--直方图的收集:
oracle还可以通直方图来收集统计信息,这个例子值收集一个表的直方图统计信息:以下是实验过程:---创建测试表:SQL> create table t as select * from dba_objects;Table created.---调用系统的 dbms_stats包收集统计信息:SQL> exec dbms_stats.gather_table_stats(user,'T');PL/SQL procedure succ...
通过SPM手动添加执行计划到baseLine
通过SPM方法手动将新的执行计划添加到baseLine里面,这相当就是把并非系统算出来的“最优”的执行计划放在优化器里,在往后的查询中,优化器自动调用该执行计划。以下是演示过程:---创建测试表:SQL> create table t3 (id int);Table created.---插入测试数据:SQL> insert into t3 select level from ...
使用10046事件跟踪分析执行计划
通过10046事件跟踪分析执行计划,便于性能优化。其中sql_trace有分三个不同方式的跟踪。1、全局模式的10046:这种跟踪需要在参数文件设置10046参数;event="10046 trace name context forever,level 12"2、会话模式的10046:这只能个跟踪DBA角色用户开启的会话;开启与关闭跟踪(12为最高级别的):...
使用SQL_TEACE的跟踪文件分析执行计划
通过sql_trace跟踪分析执行计划,便于性能优化。其中sql_trace有分三个不同方式的跟踪。1、全局模式的SQL_TRACE:这种跟踪需要在参数文件设置SQL_TRACE参数;sql_trace=true2、会话模式的SQL_TRACE:这只能个跟踪DBA角色用户开启的会话;开启与关闭跟踪:Alter session set sql_trace=true;Alter session set sql_trace...
vi编辑器相关命令
----Vi编辑器相关命令:---测试文件:[oracle@enmo admin]$ cat tnsnames.ora LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = enmo)(PORT = 1521)) &nbs...
管理分区表:拆分、添加与交换分区
这里说的拆分分区,只对maxvalue分区的分区表来说的,实质也是添加分区。以下是测试过程:----拆分分区 添加分区与交换分区:---拆分分区:(拆分分区的前提条件是有一个maxvalue分区)suxing@PROD>SET LINES 120suxing@PROD>COL TABLE_NAME FOR A15suxing@PROD>COL PARTITION_NAME FOR A15suxing...
分区表管理:合并分区
管理分区表,简单来说就是对分区表进行分区的查看,修改,添加索引等操作。有时候个别分区数据量少或者其他原因,需要对一些分区进行合并成一个分区,以下就是合并分区的演示过程:----合并分区:---查看分区:sys@PROD>select TABLE_OWNER,TABLE_NAME,PARTITION_NAME,TABLESPACE_NAME 2 &nb...
创建与管理分区表
以下是创建普通分区表与自动添加分区分区表的测试过程,并罗列了管理分区变的一些常用视图,创建分区表的分区依据:----分区的依据说明:--按天分区:--每天一个分区:INTERVAL (NUMTODSINTERVAL(1,'day')) --每个星期(7天)一个分区:INTERVAL (NUMTODSINTERVAL(7,'day'...
修改自动收集统计信息任务的执行时间
一般情况,oracle11G数据库自动收集统计信息任务的设置如下:1、Oracle11g 的默认设置;2、user_tab_modifications 跟踪记录表的修改;3、当分析对象的数据变化超过10% 时,Oracle 会重新分析;4、定时任务gather_stats_job 负责定时调度收集统计信息。5、在Oracle11g 中,默认自动收集统计信息的时间为...
使用 DBMS_STATS 包自动收集统计信息
这里讲述使用 DBMS_STATS收集统计信息,通过user_tab_modifications, all_tab_modifications与 dba_tab_modifications三个视图查看不同层次模式下的表对象变化的统计信息。----查看自动收集统计信息的:1》user_tab_modifications2》 all_tab_modifications3》 dba_tab_modificatio...
hint简单用法的举例
Hint作为一个指示,相当一个注释,来辅助优化,指示优化器,使用方法就是放在SQL语句第一个关键字的后面。8i之后,oracle优化是依据CBO模式。其中简单地说,访问表的方法有两种:全表扫描与索引扫面,表的连接方式有3种: 排序合并连接(Sort Merge Join),嵌套循环连接(Nested Loops Join),哈希连接(Hash Join...
创建同义词synonym
同义词相当于一个表对象的别名。如同创建视图一样并与视图的作用相当。同义词的作用之一就是保护数据源表的数据安全,通过别名避免了源表的暴露,通过同义词,就可以进行select,DML操作。还有就是,删除了同义词,不会连同删除源表,这也是确保源表数据的安全。以下是创建同义词并测试的过程。---创建同义词:-...
创建序列sequence
在oracle数据库中,不想MySQL数据库中可以使用一个关键词就可以使ID号自动滚动增加,而oracle则通过需要独立创建一个对象sequence序列来达到这个自动滚动变化的功能。以下是创建一个序列的测试过程:---创建序列:--创建测试表:suxing@PROD>create table seqtest( 2 id number(3),...