【SGA】【PGA】普适的Oracle内存分配策略
经常被问到,在安装Oracle时SGA与PGA占总内存多少比例合适的问题。这里给出我的一点点经验。假设主机的总物理内存是100G。如果要部署OLTP系统,可以如下的比例进行分配:20G -- 操作系统及其他预留64G -- Or...
【脚本】快速排除空闲等待事件得到敏感的非空闲等待事件
想必大家都知道Oracle的等待时间分为两种,一种我们称之为“空闲等待事件”,另外一种称之为“非空闲等待事件”。“空闲等待事件”——作为DBA可以不用过分的关注这类等待事件。“非空闲等待事件”——当DBA发现这一...
【ASH】使用ASH得到Oracle活动会话的历史信息
1.什么是ASHASH 英文全程是:Active Session History;中文名字可以叫做:活动会话历史信息记录。ASH是以V$SESSION视图为基础,每秒采样一次,目的是记录活动会话的等待事件。这样,就给我们这些DBA一种“找...
【SQL优化】SQL优化的10点注意事项
1.目前普遍采用的10g数据库已经采用CBO的优化方式,所以记得定期的对数据库核心业务用户进行全面或有选择的分析,防止出现执行计划出现异常。Oracle 10g以及以后的11g自动化一切的背后隐藏着很多神...
【实验】【analyze】分析特定用户的表和索引
1.使用analyze方法对特定用户的表和索引进行分析脚本如下ora10g@testdb183 /home/oracle$ cat analyze_schema.sqlset pagesize 6000set heading offspool analytab.sqlselect 'analyze table '||table_n...
【实验】【外键】小议外键约束对应用程序的影响
外键约束可以起到限定了一个列的取值范围的作用。通过这个实验,展示一下主外键参照关系中一些有趣的现象(约束与限制)。1.创建父表t_parent,并初始化父表数据1)创建父表,其中包含两列,第一列存放小名...
【读书笔记】【分区】“实战式”拜读《Oracle 9i&10g 编程艺术》——分区
鉴于目前在做的国际化项目中需要使用到分区技术,今天“实战式”拜读了Tom《Oracle 9i&10g 编程艺术》的第13章——分区,收获颇丰,澄清了很多概念。Tom的书写得很深刻。记录一下我的“共鸣点”,与诸君共享之。...
【概念】为什么有时全表扫描比通过索引扫描效率更高
伟大的Oracle SQL优化器可以判断出在某些情况下,使用全表扫描比使用索引扫描能更快的得到数据结果。有没有想过,她是怎么做到的呢?背后的原理是什么呢?举一个非常好理解的场景(scenario:通过索引读取表...
【实验】【索引压缩】索引压缩演示及优缺点总结
首先,我们结合index_stats得到的索引分析数据看一下,在不同索引列压缩情况下的效果。然后统一总结实验效果。1.创建测试用表t_compress_indexcreate table t_compress_index as select * from all_objects;2.不...
【实验】Select For Update行级锁定
Oracle的Select For Update语句可以实现在读取数据后马上锁定相关资源,防止被其他session修改数据的目的。也就是我们常常谈到的“悲观锁定”(现实应用开发中,使用悲观锁定的情况少之又少,也许是因为乐观锁定的实...
【视图】使用DBA_DDL_LOCKS视图获得DDL锁定信息
1.查询所有DDL lock的信息sys@ora10g> select * from dba_ddl_locks;SESS OWNER NAME TYPE &nbs...
【实验】【聚簇】聚簇(Cluster)和聚簇表(Cluster Table)的创建与总结
【实验优先】演示标准创建和删除过程1.创建聚簇sec@ora10g> create cluster cluster_test(id int);Cluster created.2.创建聚簇表sec@ora10g> create table tab_cluster1(id int primary key, name1 varchar2(30)...
【实验】【PARTITION】交换分区时分区表有主键目标表亦需有主键
违反规则实验及问题分析处理过程如下:1.创建一个含有主键的分区表tab_partition_rangecreate table tab_partition_range (id number primary key,name varchar2(50))partition by range(id)(partition t_range_...
【控制文件】镜像控制文件
1.关闭数据库sys@sec> shutdown immediate;2.使用系统的cp命令,拷贝生成一个新的控制文件cp CONTROL01.CTL CONTROL02.CTL3.修改初始化参数文件中的control_files参数,添加CONTROL05.CTL的相关信息*.control_fi...
【Shared Server Mode】“专有服务器模式”调整为“共享服务器模式”
本文给出将数据库运行状态由“专有服务器模式”调整为“共享服务器模式”的方法。专有服务器模式 ---> 共享服务器模式Dedicati...
【实验】【Shared Server Mode】取消共享服务器模式
【实验目标】共享服务器模式 ---> 专有服务器模式 Shared Server Mode ---> Dedicatied Server Mode【方法一】需要重新启动数据库...
【实验】【Shared Server Mode】专有服务器连接还是共享服务器连接确认方法
1.为比较干净的演示这个过程,先重启一下数据库sys@ora10g> startup force;ORACLE instance started.Total System Global Area 562036736 bytesFixed Size &n...
【实验】【Shared Server Mode】手工关闭某一个特定调度进程
1.列出系统中的调度进程sys@ora10g> col NETWORK for a50sys@ora10g> select NAME,NETWORK,STATUS from v$dispatcher;NAME NETWORK ...
【实验】【PARTITION】RANGE分区表重命名表分区(Rename Partition)
1.先看一下我这个分区表的分区情况sec@ora10g> select table_name,partition_name,high_value,tablespace_name from user_tab_partitions where table_name='T_PARTITION_RANGE' order by partition_position;TA...
【实验】【PARTITION】RANGE分区表移动表分区(Move Partition)
1.移动分区表的作用大体有两个1)与move表一样,可以降低行迁移2)修改分区的表空间2.需要注意的问题:1)对于分区内存在大量数据的时候在移动的过程中会带来大量的IO,这里注意一下2)注意索引是否失效的问题3....