易截截图软件、单文件、免安装、纯绿色、仅160KB
热门标签: c c# c++ asp asp.net linux php jsp java vb Python Ruby mysql sql access Sqlite sqlserver delphi javascript Oracle ajax wap mssql html css flash flex dreamweaver xml
 最新文章 : Oracle

Oracle中的解析

每当一个语句被执行的时候,Oracle要遵循一套方法来检查语句的语法、其中引用对象的有效性以及用户的权限。除此之外,Oracle还会检查是否已经执行了相同的语句,目的是减少处理负担。所有这些都在几分之一秒甚至更短的时间内完成,发出语句的用户毫不知晓。这个过程被称为解析。
解析的类型
所有的语句,DDL或者DML在执行的时候都要被解析。关键是这个解析是软解析(语句已经被解析并且在内存中可用)还是硬解析(所有的解析步骤都要被执行)。软解析将会显著的提升系统性能,而硬解析则会严重影响系统性能。减少硬解析会提升资源的利用和优化SQL代码。
解析过程
Oracle在内部会遵循下面的步骤从而产生SQL语句的输出。
语法检查:检查语句的语法。
语义检查:检查语句中引用的对象的有效性以及发出语句的用户的权限。这是一个数据字典检查。
为语句在内存中分配私有的SQL区域。
产生语句的已解析形式并且分配共享SQL区域,这涉及到为语句找到最优的执行路径。
在第四点中,Oracle会首先检查内存中是否存在已解析的相同的语句,一旦发现,已解析形式将会被选择并立即执行(软解析)。如果没有发现,产生语句的解析形式并且存放到共享SQL区域(SGA中共享池的一部分 ......

ORACLE 锁机制

ORACLE 锁机制
数据库是一个多用户使用的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。
加锁是实现数据库并发控制的一个非常重要的技术。当事务在对某个数据对象进行操作前,先向系统发出请求,对其加锁。加锁后事务就对该数据对象有了一定的控制,在该事务释放锁之前,其他的事务不能对此数据对象进行更新操作。
在数据库中有两种基本的锁类型:排它锁(Exclusive Locks,即X锁)和共享锁(Share Locks,即S锁)。当数据对象被加上排它锁时,其他的事务不能对它读取和修改。加了共享锁的数据对象可以被其他事务读取,但不能修改。数据库利用这两种基本的锁类型来对数据库的事务进行并发控制。
Oracle数据库的锁类型
根据保护的对象不同,Oracle数据库锁可以分为以下几大类:DML锁(data locks,数据锁),用于保护数据的完整性;DDL锁(dictionary locks,字典锁),用于保护数据库对象的结构,如表、索引等的结构定义;内部锁和闩(internal locks and latches),保护 数据库的内部结构。
DML锁的目的在于保证并发情况下的数据完整性, ......

oracle中over()开窗函数的理解

over()开窗函数和聚合函数的不同之处是对于每个组返回多行,而聚合函数对于每个组只返回一行。
开窗函数指定了分析函数工作的数据窗口大小,这个数据窗口大小可能会随着行的变化而变化,举例如下:
over(order by salary) 按照salary排序进行累计,order by是个默认的开窗函数
over(partition by deptno)按照部门分区
over(order by salary range between 50 preceding and 150 following)
每行对应的数据窗口是之前行幅度值不超过50,之后行幅度值不超过150
over(order by salary rows between 50 preceding and 150 following)
每行对应的数据窗口是之前50行,之后150行
over(order by salary rows between unbounded preceding and unbounded following)
每行对应的数据窗口是从第一行到最后一行,等效:
over(order by salary range between unbounded preceding and unbounded following) ......

Oracle 常用的V$ 视图脚本


刚才tianlesoftware同学发给我了一个他空间的链接,不错,都是些常用信息的查询方法。记一下,方便将来学习。
=========================================================
1. 基本的数据库信息
版本信息:
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE    10.2.0.1.0      Production
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
数据库信息:
SQL> select name, created, log_mode from v$database;
NAME      CREATED        LOG_MODE
--------- -------------- ------------
TEST      13-9月 -09     ARCHIVELOG
2. 自动工作量仓库(AWR) 的基本信息
自动工作量仓库(AWR)在默认情况下,仓库用小时填充,保留期是7天。
AWR使用多少空间
SQL>Selec ......

Oracle Temp 临时表空间

Temporary tablespace是oracle里临时表空间,临时表空间主要用途是在数据库进行排序运算、管理索引、访问视图等操作时提供临时的运算空间,当运算完成之后系统会自动清理。当oracle里需要用到sort的时候,PGA中sort_area_size大小不够时,将会把数据放入临时表空间里进行排序,同时如果有异常情况的话,也会被放入临时表空间,正常来说,在完成Select语句、create index等一些使用TEMP表空间的排序操作后,Oracle是会自动释放掉临时段的。但有些有侯我们则会遇到临时段没有被释放,TEMP表空间几乎满的状况,甚至是我们重启了数据库仍没有解决问题。
排序是很耗资源的,Temp表空间满了,关键是优化你的语句,尽量使排序减少才是上策.
Temp表空间满时的处理方法:
  一、修改参数(仅适用于8i及8i以下版本)
  修改一下TEMP表空间的storage参数,让Smon进程观注一下临时段,从而达到清理和TEMP表空间的目的。
  SQL>alter tablespace temp increase 1;
  SQL>alter tablespace temp increase 0;
  二:kill session
  1、 使用如下语句a查看一下认谁在用临时段
            SELECT se.username, se.S ......

oracle 系统参数优化

这篇文章摘自玄机逸士为某上市公司ERP系统调优项目总结报告,希望对大家有所帮助。
在32位的操作系统上,Oracle系统理论上可以使用的内存上限是4G,即2^32字节,任何多出的部分,Oracle均不会使用;在64位的操作系统上,Oracle系统可以使用的内存理论上是2^64字节,在可以预见的未来的应用,这几乎和没有上限限制是一样的。因此在购买小型机服务器硬件设备时(一般都会自带操作系统)要考虑到使用的是多少位的操作系统,否则即使内存配得再多,也不会给性能带来提高。在使用32位的操作系统时,如果该服务器设备专门用作数据库服务器(即不在其上安装其它诸如应用服务器等软件)时,配置6G的内存应该是比较恰当的,除4G被Oracle使用外,2G内存用来运行操作系统本身的进程。
 注意1:如果是UNIX或Linux32位操作系统,还要设置操作系统级的参数shmmax。SGA的空间可以大于shmmax,具体情况请参考Oracle安装手册以及操作系统手册;
 注意2: 本小节(下面)中所列的操作可能需要一定的权限,在实际工作中,如果发现相关权限的问题,请及时给相关用户授权或以一个权限更大的用户的身份进行操作。
       Oracle总体内存结构如下图所示: ......
总记录数:3994; 总页数:666; 每页6 条; 首页 上一页 [602] [603] [604] [605] 606 [607] [608] [609] [610] [611]  下一页 尾页
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号