学习《Oracle 9i10g编程艺术》的笔记 (三)
1.多版本:读一致查询 非阻塞查询
Oracle 采用了一种
多版本、读一致(read-consistent)的并发模型。再次说明,我们将在第7 章更详细地介绍有关的技术。
不过,实质上讲,Oracle 利用这种机制提供了以下特性:
读一致查询:对于一个时间点(point in time),查询会产生一致的结果。
非阻塞查询:查询不会被写入器阻塞,但在其他数据库中可能不是这样。
Oracle 数据库中有两个非常重要的概念。多版本(multi-versioning)一词实质上指Oracle 能够从
数据库同时物化多个版本的数据。如果你理解了多版本如何工作,就会知道能从数据库得到什么。在进一
步深入讨论Oracle 如何实现多版本之前,下面用我认为最简单的一个方法来演示Oracle 中的多版本:
( p_resource_name, p_start_time, p_end_time );
end schedule_resources;
ops$tkyte@ORA10G> create table t
2 as
3 select *
4 from all_users;
Table created.
ops$tkyte@ORA10G> variable x refcursor
ops$tkyte@ORA10G> begin
2 open :x for select * from t;
3 end;
4 /
PL/SQL procedure successfully completed.
ops$tkyte@ORA10G> delete from t;
28 rows deleted.
ops$tkyte@ORA10G> commit;
Commit complete.
ops$tkyte@ORA10G> print x
USERNAME USER_ID CREATED
------------------------------ -------------- ---------------
BIG_TABLE 411 14-NOV-04
OPS$TKYTE 410 14-NOV-04
DIY 69 26-SEP-04
...
OUTLN 11 21-JAN-04
SYSTEM 5 21-JAN-04
在前面的例子中,我创建了一个测试表T,并把ALL_USERS 表的一些数据加载到这个表中。然后在这
个表上打开一个游标。在此没有从该游标获取数据,只是打开游标而已。
注意要记住,Oracle 并不“回答”这个查询。打开游标时,Oracle 不复制任何数据,你可以想想看,
即使一个表有十亿条记录,是不是也能很快就打开游标?没错,游标会立即打开,它会边行进边
回答查询。换句话说,只是在你获取数据时它才从表中读数据。
在同一个会话中(或者也可以在另一个会话中;这同样能很好地工作),再从该表删除所有数据。甚
至用COMMIT 提交了删除所做的工作。记录行都没有了,但是真的没有了吗?实际上,还是可以通过游标获
取到数据。OPEN 命令返回的结果集在打开的那一刻(时间点)就已经确定。打开时,我们根本没有碰过表
中的任何数据块,但答案已经是铁板钉钉的了
相关文档:
1.流程如下
用户可以使用Oracle安装程序从Windows NT框中删除所需要的产品,但是这可能有点费劲。
若不想保留任何N T的Oracle产品,可以按以下指令删除所有的Oracle产品:
1) 首先,用控制面板上的 Services 应用程序停止所有的Oracle服务。
所有的Oracle服务都应有一个包含“O R C L”、“Oracle&rdqu ......
select to_char(sysdate + 1 / (24 * 60),'yyyy/mm/dd hh24:mi:ss') from dual
SQL> ;
1 select to_char(sysdate, 'hh:mi:ss')
2 &nbs ......
IN条件
用IN条件在指定的一组值中进行测试。IN条件也就是 成员条件。
在幻灯片的例子中显示所有经理号为100、101或201的雇员的employee numbers, last names, salaries和经理的employee numbers。
在IN条件中可以使用任何数据类型。下面的例子从EMPLOYEES表返回雇员信息行,这些雇员的名字包括在WHERE子句的名字列 ......
ASM
ASM可以条带化和镜像磁盘,因此可以在数据库备加载的情况下添加、删除磁盘、以及自动平衡IO。
ASM不是一个文件系统,所以无法从操作系统访问ASM存储的文件,对于使用ASM的数据库只能用RMAN进行备份和恢复。
ASM作为单独的ORACLE实例实施,只有ASM运行时数据库才能访问。
一、磁盘组
ASM提供了三中磁盘组类 ......
安装Oracle Database(10.0.2)后,如果修改机器名后,
会导致控制面板的服务中启动OracleTNSLisener服务立刻就停止。
使用命令行工具,提示如下:
(机器名原来为:ANSWER-1738E000,改为:ANSWER)
解决方法:
1>关掉控制面板中有关于 Oracle Database 的服务。
2>修改 C:\oracle\product\10.2.0\db_1\NE ......