查看oracle版本
有2种方法查看oracle软件版本:1. v$version视图SQL> select * from v$version;BANNER----------------------------------------------------------------Oracle Database 10g Enterprise Edition Release 10.2.0...
statspack中相关性能指标的计算方法
Buffer Cache Hit Ratio100*( 1 - ( valdiff( stats$sysstat, 'physical reads' ) - valdiff( stats$sysstat, 'physical reads direct' ) - valdiff( stats$sysstat, 'physica...
获取cpu time和wait time变化趋势的2个脚本
1. 收集数据库所有非空闲等待事件的等待时间之和。set pages 9999;set linesize 120alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';select oldsn.snap_time b_time, &n...
创建主键约束时使用已有索引的好处
1. 在创建主键约束时,如果在主键列上没有索引,则会自动创建一个唯一索引:SQL> alter table test add constraint p_test primary key (empno);Table altered.SQL> select table_name,index_name,un...
统计信息管理-动态采样
某些情况下,需要进行动态采样,比如已有的统计信息过旧,不能反应真实的情况,或者某些表和索引缺乏统计信息等动态采样的特性是受OPTIMIZER_DYNAMIC_SAMPLING 参数控制,为了实现动态采样,该参数需要设置为2或更...
直方图测试
首先看test表上deptno列的数据分布情况:SQL> select count(*) from test; COUNT(*)---------- 1000000SQL> select distinct deptno from test; DEPTNO---------...
Monitoring DML operations
通过alter table TABLE_NAME monitoring 语句,可以监控对表的delete、update、insert以及truncate等操作。 当执行此语句后,任何对表的DML操作均被记录到视图sys.DBA_TAB_MODIFICA...
统计信息的管理(三)锁定统计信息
以下四个过程为统计信息加锁和解锁LOCK_SCHEMA_STATSLOCK_TABLE_STATSUNLOCK_SCHEMA_STATSUNLOCK_TABLE_STATS测试:SQL> alter session set nls_date_format='yyyymmdd hh24:mi:ss'; Session altered.&nbs...
统计信息的管理(二)导出导入统计信息
1。schema统计信息的导出DBMS_STATS.EXPORT_SCHEMA_STATS ( ownname VARCHAR2, stattab VARCHAR2, statid VARCHAR2 DEFAULT NULL, statown VARCHAR2 DEFAU...
统计信息的管理(一)恢复旧版本的统计信息
从10G开始,若采用dbms_stats进行schema或table的分析,则会自动保存统计信息于dba_tab_stats_history。默认保存31天。且可用DBMS_STATS.RESTORE….相关的过程来恢复以前的统计信息。SQL> select * from v$version;...
sort merge join
什么情况下适合sort merge join:The optimizer can choose a sort merge join over a hash join for joining large amounts of data if any of the following conditions are true:The join condition between two ...
delete操作为什么引起磁盘排序
一个表上有索引,当对这个表进行delete操作时,为什么会带来磁盘排序?难道对索引数据进行删除时还要排序吗?
索引扫描(四)-索引全扫描
SQL> select table_name,index_name,column_name,column_position from user_Ind_columns where table_name='EMPLOYEES'; TABLE_NAME &...
case 函数的使用
例子:统计employees表中2000以下,2000-4000,4000以上范围内各自的工资总额,按照常规写法,需要写3条sql,分别统计这三个范围内的工资总和。使用case语句,可以用一条sql完成,且相应的资源消耗也降低。常规写法...
索引扫描(三)索引范围扫描与索引降序范围扫描
.当按照要对数据进行排序时,如果排序列为索引列,则优化器会略去排序的步骤,因为索引列本身已经做了排序的工作。SQL> select * from employees order by employee_id; Execution Plan----------------------...
索引扫描(二)-索引跳跃扫描
1. 关于索引跳跃扫描 举个例子说明,表employees上有2列sex,employee_id,在(sex,employee_id)上创建复合索引,这两列上的值分布类似于:('F',98)('F',100)('F',102)('F',104)('M',101)('M',103)('...
索引扫描(一)-聚簇因子
假设一个表中有9行记录,分布在3个block上,按照其中列col1的分布情况,分为以下两种情况:Block 1 Block 2 Block 3 ------...
并行度对优化器的影响
当表的并行度被设置为大于1时,如果where条件为范围而不是=,优化器更倾向于使用全表扫描,而不是索引范围扫描。SQL> alter table employees parallel(degree 5); Table altered. SQL> select * from emp...
影响优化器的几个参数
Controlling the Behavior. of the Query OptimizerThis section lists some initialization parameters that can be used to control the behavior. of the query optimizer. These parameters can be used to enab...
使用SQL Tuning Advisor
1. 创建sql tuning任务SQL> DECLARE my_task_name VARCHAR2(30); my_sqltext CLOB;BEGIN my_sqltext :='SELECT /*+ ORDERED */ * ' &n...