ORACLE处理用户进程大剖析[阅读]】的更多相关文章

下面我们要讲ORACLE服务器进程如何处理用户进程的请求,当一个用户进程发出了一条SQL语名:   UPDATE TABBLEA SET SALARY=SALARY*2:   首先,服务器进程把这条语句的字符转换成ASCII等效数字码,接着这个ASCII码被传递给一个HASH函数,并返回一个HASH值,服务器进程将到SHARED POOL 的共享PL/SQL区去查找是否存在同样的HASH值,如果存在,服务器进程将使用这条语句已高速缓存在SHARED POOL中的已分析过的版本来执行,如果不存在,…
用户进程跟踪 分为 基于会话级别跟踪和 实例级别跟踪: 会话级别跟踪又包括 当前会话跟踪和 非当前会话跟踪 跟踪文件位置由user_dump_dest设定,大小由max_dump_file_size 决定 生成的跟踪文件名为<SID>_ora_<SPID>.trc 其中SID为实例名称,SPID为系统进程号 通过v$session中的SQL_TRACE,SQL_TRACE_WAITS,SQL_TRACE_BINDS展示了一个会话的跟踪状态 注:    在专用服务器模式中:仅仅需要标…
执行一个SQL语句 执行查询语句的过程: 用户进程执行一个查询语句如select * from emp where empno=7839 用户进程和服务器进程建立连接,把改用户进程的信息存储到PGA的UGA中 语句经过PGA处理后传递给实例instance 实例instance中的共享池处理这条语句 库缓冲区去判断语句如何分析--软分析(快)或硬分析(慢) 根据cbo得到执行计划,准备去执行语句.(CBO和RBO是ORACLE提供的两种优化器) 查询语句中的对象(emp表和行)存放在那个表空间,…
使用PLSQL-Developer工具可以快速便捷地完成Oracle数据库用户.表的备份恢复. Oracle数据库用户数据完整备份与恢复 1. 备份 1.1   PL/SQL->工具->导出用户对象,选项如图 常用的用户对象包括: TABLE,SEQUENCE,VIEW,PACKAGE,TYPE,FUNCTION,PROCEDURE,PACKAGE BODY,TREGGER 选择需要导入的用户对象,导出.sql文件,此步骤导出的是建表语句,包括存储过程.触发器.视图等 . 1.2  PL/SQ…
Oracle体系结构之进程 一.概述 Oracle中的每个进程都要执行一个特定的任务(或者一组任务),每个进程都会为自己分配内存(PGA)来完成它的任务.一个Oracle实例主要有以下3类进程: (1) 服务器进程(server process):服务器进程包括专用服务器和共享服务器,用来处理你提交所有SQL.当你向数据库提交一个SELECT * FROM EMP查询时,就会有一个ORACLE专用/共享服务器进程来解析这个查询,把它放到共享池中(或者最好能发现这个查询已经在共享池中).这个进程要…
================================ -- Oracle 基于用户管理恢复的处理 --================================ Oracle支持多种方式来管理数据文件的备份与恢复来保证数据库的可靠与完整.除了使用RMAN工具以及第三方备份与恢复工具之外,基于 用户管理的备份与恢复也是DBA经常使用的方式之一.本文首先介绍了恢复的相关概念,接下来详细讲述了在归档模式下使用基于用户管理恢 复的处理过程. 一.恢复的相关概念 介质恢复 首先使用备份还…
转载:http://francs3.blog.163.com/blog/static/4057672720109854858308/ Postgresql 8.3.3 今天应用反映数据库很慢,有些SQL执行一天都没执行完,检查数据库,发现大量会话在更新同一张表 tbl_tmp, 产生大量行锁申请等侍. --等于等侍状态的SQL (被堵住的SQL) anpstat=# select datname,procpid,query_start,current_query,waiting,client_a…
Oracle删除用户的提示无法删除当前已连接用户两种解决方法如下: 1.先锁定用户.然后查询进程号,最后删除对应的进程.在删除对应的用户 SQLalter user XXX account lock; SQLSELECT * FROM V$SESSION WHERE USERNAME='LGDB': Oracle删除用户的提示无法删除当前已连接用户两种解决方法如下: 1.先锁定用户.然后查询进程号,最后删除对应的进程.在删除对应的用户 SQL>alter user XXX account loc…
Oracle删除用户的提示无法删除当前已连接用户两种解决方法如下: 1.先锁定用户.然后查询进程号,最后删除对应的进程.在删除对应的用户 SQL>alter user XXX account lock; SQL>SELECT * FROM V$SESSION WHERE USERNAME='LGDB': SQL>alter system kill session 'xx,xx' SQL>drop user xx cascade 2.shutdown掉数据库,再重启 具体查询进程号,…
简便删除已经存在的oracle数据库用户UPAY3LINGXI_YS:1.Toad工具用oracle最大权限用户登录system2.查看正在使用UPAY3LINGXI_YS的进程select * from v$session where username='UPAY3LINGXI_YS'3.停掉所有使用UPAY3LINGXI_YS的进程4.删除表空间(drop)5.删除用户(drop)…