刚才上网搜checkpoint cnt,看到EYGLE写的一篇文章,写得不错,存起来方便以后学习。
=========================================================================
通过试验说明checkpoint cnt 和checkpoint scn的关系
1.在不同条件下转储控制文件
SQL> alter session set events 'immediate trace name CONTROLF level 10';
Session altered.
SQL> alter tablespace system begin backup;
Tablespace altered.
SQL> alter session set events 'immediate trace name CONTROLF level 10';
Session altered.
SQL> alter system checkpoint;
System altered.
SQL> alter session set events 'immediate trace name CONTROLF level 10'
2 /
Session altered.
SQL> alter tablespace system end backup;
Tablespace altered.
SQL> alter session set events 'immediate trace name CONTROLF level 10';
Session altered.
notes:
alter session set events 'immediate trace name CONTROLF level 10';
用于转储控制文件.
2.获得以下跟踪文件信息(仅研究system表空间记录,请注意红色部分):
a.正常情况下转储 ......
刚才在EYGLE的博客中看到一篇帖子,讲的是DELETE的操作流程,很简短,同时也精辟。
===================================================================================
Oracle中,一个Delete操作的流程
删除(DELETE)
1.Oracle读Block到Buffer Cache(如果该Block在Buffer中不存在)
2.在redo log buffer中记录delete操作的细节
3.在相应回滚段段头的事务表中创建一个undo条目
4.把将要删除的记录创建前镜像,存放到Undo Block中
5.在Buffer Cache中的相应数据块上删除记录,并且标记相应的数据块为Dirty
提交(COMMIT)
1.Oracle产生一个SCN
2.在回滚段事务表中标记该事务状态为commited
3.LGWR Flush Log Buffer到日志文件
3.如果此时数据块仍然在Buffer Cache中,那么SCN将被记录到Block Header上,这被称为快速提交(fast commit)
4.如果dirty block已经被写回到磁盘,那么下一个访问这个block的进程将会自回滚段中获取该事务的状态,确认该事务被提交。然后这个进程获得提交SCN并写回到Block Header上。这被称为延迟块清除(delayed block cleanout)。 ......
http://www.souzz.net/html/database/ORACLE/38170.html
本文通过图表和实例的阐述在Oracle数据库创建新表时Storage的参数具体含义。 图表阐述 可用于:表空间、回滚段、表、索引、分区、快照、快照日志 建议PCTINCREASE参数设置为0,可使碎片最小化,使每一个Extent都相同(等于NEXT值) 一旦建立了某个对象,它的INITIAL和M
本文通过图表和实例的阐述在Oracle数据库创建新表时Storage的参数具体含义。
图表阐述
可用于:表空间、回滚段、表、索引、分区、快照、快照日志
建议PCTINCREASE参数设置为0,可使碎片最小化,使每一个Extent都相同(等于NEXT值)
一旦建立了某个对象,它的INITIAL和MINEXTENTS参数不能修改(Oracle 816中可修改MINEXTENTS参数)
对于NEXT和PCTINCREASE的任何修改都只影响后来分配的那些Extent
在分配一个新Extent时,系统直接按NEXT的值分配一个Extent,
然后用公式:前一NEXT值*(1+PCTINCREASE/100) 计算出下一个应该分配的Extent的大小,
并把计算结果保存到相关数据字典的NEXT_EXTENT列上,做为下一个应该分配的Extent的大小。
CREATE TABLE test(a number)
STORAGE(
INITIAL 100K
NEXT 100K
MINEXTENTS 2
MAXE ......
* 如果某个约束只作用于单独的字段,即可以在字段级定义约束,也可以在表级定义约束,但如果某个约束作用于多个字段,
必须在表级定义约束
* 在定义约束时可以通过CONSTRAINT关键字为约束命名,如果没有指定,ORACLE将自动为约束建立默认的名称
定义primary key约束(单个字段)
create table employees (empno number(5) primary key,...)
指定约束名
create table employees (empno number(5) constraint emp_pk primary key,...)
定义primary key约束(多个字段,在表级定义约束)
create table employees
(empno number(5),
deptno number(3) not null,
constraint emp_pk primary key(empno,deptno)
using index tablespace indx
storage (initial 64K
next 64K
)
)
ORACLE自动会为具有PRIMARY KEY约束的字段(主码字段)建立一个唯一索引和一个NOT NULL约束,定义PRIMARY KEY约束时可以为它的索引
指定存储位置和存储参数
alter table employees add primary key (empno)
alter table employees add constraint emp_pk ......
以前做了些ajax,是在.net2.0加上ajax toolkit开发的。现在要作为一个现有网站的子站点。目前的3.5系统自带3.5版本的ajax,也就是System.Web.Extensions 3.5。这个在ajax toolkit 1.0中也是同样的assembly名字,以至web.config文件会报错,说找到2个同样的assembly。又不可能去修改老站里面的文件,怎么办呢?我们既希望保留原程序,又不能动主站的web.config。我找到一个很简单的办法如下。
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="3.5.0.0" newVersion="1.0.61025.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
......
一、 新建一个Ajax_Start的网站
二、 在网站中添加一个web服务(ws_start.asmx)
在vs2008中,添加一个web服务生成了两个文件,一个是asmx文件,一个是在App_code里的cs文件;我觉得这样并不好,主要是不方便管理,至少现在在我看来是这样,所以下面我们要来改造一下它
三、 改造vs2008中生成的web服务
1) 首先将App_code里ws_start.cs中的代码全部copy出来,然后放入到ws_start.asmx文件中去
2) 删除App_code里的ws_start.cs文件
3) 将ws_start.asmx中的最上面的WebService里的CodeBehind属性删除,因为我们已经在前一步删除了CodeBehind里关联的文件
4) 因为vs2008生成的web服务的cs文件没有命名空间,所以必须为它加上一个命名空间:namespace Ajax_Start
5) 修改WebService里的c ......