PLSQL中使用绑定变量的语法
execute immediate [带绑定变量的目标sql] using [对应绑定变量的具体输入值];举例如下:declare vc_name varchar2(10);begin execute immediate 'select ename from emp where empno=:1' into vc_name using 7369; dbms_output.put_line(vc_...
ORACLE锁机制
数据库是一个多用户使用的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。 加锁是实现数据库并发控制的一个非常重要的技术。当事务在对某个数据对象进行操...
查询执行慢的SQL语句
select s.sql_text, s.sql_fulltext, s.sql_id, round(elapsed_time / 1000000 / (case &nb...
查询Oracle正在执行和执行过的SQL语句
--查询Oracle正在执行的sql语句及执行该语句的用户SELECT b.sid oracleID, b.username 登录Oracle用户名, b.serial#, spid 操作系统ID, ...
Oracle 检查表空间使用情况
select f.tablespace_name, a.total "total (M)", f.free "free (M)", round((f.free / a.total) * 100) "% Free"&n...
SYS$BACKGROUND,SYS$USERS 代表的含义
In addition to application services, the RDBMS also supports two internal services.SYS$BACKGROUND is used by the background processes only.SYS$USERS is the default service for user sessions that are not associated with application services.In our case Since w...
shared pool的物理结构和逻辑结构
从物理角度上看Oracle shared pool ,它是由多个内存块组成。这里的内存块相当于数据文件中的数据块,是最小的分配单位。这个最小分配单位称为chunk ,它里面的内存字节是连续的。但每个chunk 的大小是不固定的。 shared pool 的内存分配由heap (堆)来实现。heap 的个数由隐含参数”_kghdsidx_count “ 来决定。 ...
SQL*Plus Set参数详解
利用SQL*Plus维护系统变量(也称set变量)可为SQL*Plus交互建立一个特殊的环境,如:设置number数据的显示宽度,设置每页的行数,设置列的宽度等。可用set命令改变这些系统变量,也可用show命令列出它们。以下是全部的用法,使用set命令的语法如下: set 系统变量值 其中系统变量及其可选值如下:...
10046事件概述
Oracle的10046事件,可以跟踪应用程序所执行的SQL语句,并且得到其解析次数.执行次数,CPU使用时间等信息。这对我们分析、定位数据库性能问题是非常有用的。 10046 event是oracle用于系统性能分析时的一个最重要的事件。当激活这个事件后,将通知oracle kernel追踪会话的相关即时信息,并写入到相应tra...
oracle跟踪常用内部事件号
Oracle内部事件号,常被用来跟踪系统状态,怎样使用这些内部事件号,是需要事件和经验的。在此仅记录这些常用的内部事件号,为工作准备。1、10013:用于监视事务恢复2、10015:转储UNDO SEGMENT头部 event = "10015 trace name context forever"...
display_cursor_9i.sql
set serveroutput on size 1000000set linesize 150 pagesize 10000select hash_value,child_number,plan_hash_value,executions,buffer_gets,buffer_gets/decode(executions,0,1,executions) gets_per_exec,rows_processed,rows_processed/decode(executions,0,1,executions) rows_per_exec,disk_reads,disk_reads/de...
PRINTSQL
create or replace procedure PRINTSQL(i_n_id in number, i_vc_idtype in varchar2) is/*功能: 打印对应spid或sid所对应的sql以及其执行计划作者: 老熊,dbsnake创建日期:2010-11-12输入参数:i_n_id: 输...
某公司oracle 性能调优诊断案例
问题描述:这是帮助一个公司的诊断案例.应用是一个后台新闻发布系统.症状是,通过连接访问新闻页是极其缓慢通常需要十数秒才能返回.这种性能是用户不能忍受的.操作系统:SunOS 5.8数据库版本:8.1.71.检查并跟踪数据库进程诊断时是晚上,无用户访问在前台点击相关页面,同时进行进程跟踪查询v$...
oracle 查询计划中的基数cardinality概念(二)
Oracle 执行计划(2)-基数执行计划的cardinality列。基数是说从数据表,结果集或者索引返回多少行数据。基数=表行数据*选择率。所以讲基数重点是讲选择率,选择率的计算!版本10G 默认 表空间信息:TABLESPACE_NAMEUSERS...
oracle 查询计划中的基数cardinality概念(一)
CBO(基于代价的优化器)是RBO(基于规则的优化器)的替代品,从9i开始oracle就建议用户使用CBO来进行SQL的优化。CBO大概的优化原理很简单,他通过对象上的统计信息来计算各个执行计划的代价,然后选择代价较小的执行计划来运行。所以对于CBO来说对象(比如表,索引)上的统计信息就显得十分的重要,不仅要有统计...
Oracle 统计量NO_INVALIDATE参数配置(下)
本篇我们继续讨论NO_INVALIDATE参数。 从上篇(http://blog.itpub.net/17203031/viewspace-1067312/)讨论情况看,无论是取值true还是false,Oracle进行的行为都是缺乏考量的。如果选择true,表示旧的执行计划会持续的在shared pool中驻留,新的执行计划不会生成,如果系统SQL运行比较频繁、Age Out现象比较少,更好...
Oracle 统计量NO_INVALIDATE参数配置(上)
Oracle统计量对于CBO执行是至关重要的。RBO是建立在数据结构的基础上的,DDL结构、约束会将SQL语句分为不同的成本结构等级。而CBO是在数据结构的基础上,加入数据表细粒度信息,将成本结构细化为成本cost值。 相对于数据表的DDL结构,统计量反映了当下数据表数据分布情况,可变性更强。我们经常遇到这样的场景,数据...
使用oradebug跟踪哈希链接的过程
SQL> oradebug setmypid ;SQL> oradebug event 10104 trace name context forever,level 1 ;SQL> set autotrace traceonly ;--以下语句为实际执行的语句,不能使用explain plan forSQL> select ename,sal,comm,dname from scott.emp e ,...
刷新缓冲区的信息
SQL> alter system flush buffer_cache ;SQL> alter system flush shared_pool ;SQL> alter system flush global context ;
深入理解Oracle的并行操作
并行(Parallel)和OLAP系统 并行的实现机制是:首先,Oracle会创建一个进程用于协调并行服务进程之间的信息传递,这个协调进程将需要操作的数据集(比如表的数据块)分割成很多部分,称为并行处理单元,然后并行协调进程给每个并行进程分配一个数据单元。比如有四个并行服务进程,他们就会同时处理各自分配的单元,当一...