当前位置:首页 » 服务存储 » oracle存储结构
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

oracle存储结构

发布时间: 2022-02-22 15:50:26

1. Oracle存储结构正确的是()

B。

Oracle数据库逻辑存储结构是Oracle数据库创建后利用逻辑概念来描述数据库内部数据的组织和管理形式。包括表空间(tablespace)、段(segment)、区(extent)和块(block)四种。

一个表空间由多个段构成;一个段由多个区构成,一个区由多个块构成。数据库是由表空间构成的,数据存储在表空间中。一个表空间包含一个或多个数据文件,但一个数据文件只能属于一个表空间。

(1)oracle存储结构扩展阅读:

1、存储过程参数不带取值范围,in表示传入,out表示输出类型可以使用任意Oracle中的合法类型。

2、变量带取值范围,后面接分号

3、在判断语句前最好先用count(*)函数判断是否存在该条操作记录

4、用select 。。。into。。。给变量赋值

5、在代码中抛异常用 raise+异常名

2. oracle逻辑存储结构有哪些部分组成

Oracle数据库逻辑存储结构是Oracle数据库创建后利用逻辑概念来描述数据库内部数据的组织和管理形式。包括表空间(tablespace)、段(segment)、区(extent)和块(block)四种。一个表空间由多个段构成;一个段由多个区构成,一个区由多个块构成。数据库是由表空间构成的,数据存储在表空间中。一个表空间包含一个或多个数据文件,但一个数据文件只能属于一个表空间。
逻辑存储结构概念存储在数据字典中,用户可通过查询数据字典获取逻辑存储结构信息。

3. 简要说明oracle数据库体系的内存结构

内存结构 oracle内存结构大致具有四个区:软件代码区、系统全局区、程序全局区和排序区。 1、系统全局区。(SGA) 系统全局区为一组由oracle分配的共享数据结构,它是实例的主要部分,它含有数据维护、sql语句分析与重做缓存所必须的所有内存结构,系统全局区的数据是共享的,也就是说,多个进程可以在同一时间对SGA中的数据进行访问和修改。它包含以下内容: <1>、数据块缓冲区 该区存放最近使用过的数据块,使用LRU(最近最少使用算法)进行管理。 <2>、字典缓冲区 该区用于保存数据字典中的行,数据字典中存放oracle系统管理自身所需的所有信息。该区也使用LRU算法管理。 <3>、重做日志缓冲区 任何事务在记录到重做日志之前都先放到该区,数据库系统定期将该区内容写入到联机重做日志中。 <4>、SQL共享池 存放所有通过SQL语法分析、准备执行的SQL语句。 <5>、JAVA池 为JAVA命令提供语法分析。 <6>、多缓冲池 可以在SGA中创建多个缓冲池,能够用多个缓冲池把的数据集与其他的应用程序分开,以减少它们争夺数据块缓冲区相同资源的可 能性。 2、程序全局区(PGA) 包含单个服务器进程或单个后台进程的数据和控制信息,与几个进程共享的SGA 正相反PGA 是只被一个进程使用的区域,PGA 在创建进程时分配在终止进程时回收。 3、排序区 排序需要内存,这部分空间成为排序区,排序区存在于请求排序的用户进程的内存中,该空间的大小为适应排序数据量的大小,可增长,但受初始化参数SORT_AREA_SIZER所限制。 4、软件代码区 用于存储正在执行或可以执行的程序代码。 </FONT></SPAN>

4. 2. 简述oracle数据库的逻辑存储结构(麻烦知道的告诉下)

Oracle数据库逻辑存储结构是Oracle数据库创建后利用逻辑概念来描述数据库内部数据的组织和管理形式。包括表空间(tablespace)、段(segment)、区(extent)和块(block)四种。一个表空间由多个段构成;一个段由多个区构成,一个区由多个块构成。数据库是由表空间构成的,数据存储在表空间中。一个表空间包含一个或多个数据文件,但一个数据文件只能属于一个表空间。

逻辑存储结构概念存储在数据字典中,用户可通过查询数据字典获取逻辑存储结构信息。

5. oracle数据库的物理存储结构有那些,它们各自的作用

http://hi..com/blue_greed/blog/item/dcea21ca97bf7782c8176816.html
去这里看看~~
数据结构在计算机中的表示(映像)称为数据的物理(存储)结构。它包括数据元素的表示和关系的表示。
物理结构,即Oracle数据库使用的操作系统文件结构。对于数据库物理结构文件,不同的oracle版本,不同的操作系统平台上有不同的存储目录结构
数据库的物理结构文件按其作用可以分为三类:
数据文件
日志文件
控制文件
一、数据文件
数据文件用来存储数据库的数据,如表、索引等。读取数据时,系统首先从数据库文件中读取数据,并存储到SGA的数据缓冲区中。
二、重做日志文件
重做日志文件记录对数据库的所有修改信息。它是三类文件中最复杂的一类文件,也是保证数据库安全与数据库备份与恢复有直接关系的文件。
三、控制文件
控制文件是一个二进制文件,用来描述数据库的物理结构,一个数据库只需要一个控制文件,控制文件的内容包括:
数据库名及数据库唯一标识
数据文件和日志文件标识
数据库恢复所需的同步信息,即检查点号

6. oracle 存储过程报错

oracle 存储过程的基本语法

1.基本结构
CREATE OR REPLACE PROCEDURE 存储过程名字
(
参数1 IN NUMBER,
参数2 IN NUMBER
) IS
变量1 INTEGER :=0;
变量2 DATE;
BEGIN

END 存储过程名字

2.SELECT INTO STATEMENT
将select查询的结果存入到变量中,可以同时将多个列存储多个变量中,必须有一条
记录,否则抛出异常(如果没有记录抛出NO_DATA_FOUND)
例子:
BEGIN
SELECT col1,col2 into 变量1,变量2 FROM typestruct where xxx;
EXCEPTION
WHEN NO_DATA_FOUND THEN
xxxx;
END;
...

3.IF 判断
IF V_TEST=1 THEN
BEGIN
do something
END;
END IF;

4.while 循环
WHILE V_TEST=1 LOOP
BEGIN
XXXX
END;
END LOOP;

5.变量赋值
V_TEST := 123;

6.用for in 使用cursor
...
IS
CURSOR cur IS SELECT * FROM xxx;
BEGIN
FOR cur_result in cur LOOP
BEGIN
V_SUM :=cur_result.列名1+cur_result.列名2
END;
END LOOP;
END;

7.带参数的cursor
CURSOR C_USER(C_ID NUMBER) IS SELECT NAME FROM USER WHERE TYPEID=C_ID;
OPEN C_USER(变量值);
LOOP
FETCH C_USER INTO V_NAME;
EXIT FETCH C_USER%NOTFOUND;
do something
END LOOP;
CLOSE C_USER;

8.用pl/sql developer debug
连接数据库后建立一个Test WINDOW
在窗口输入调用SP的代码,F9开始debug,CTRL+N单步调试

7. Oracle数据库的逻辑结构

它由至少一个表空间和数据库模式对象组成。这里,模式是对象的集合,而模式对象是直接引用数据库数据的逻辑结构。模式对象包括这样一些结构:表、视图、序列、存储过程、同义词、索引、簇和数据库链等。逻辑存储结构包括表空间、段和范围,用于描述怎样使用数据库的物理空间。
总之,逻辑结构由逻辑存储结构(表空间,段,范围,块)和逻辑数据结构(表、视图、序列、存储过程、同义词、索引、簇和数据库链等)组成,而其中的模式对象(逻辑数据结构)和关系形成了数据库的关系设计。

段(Segment):
是表空间中一个指定类型的逻辑存储结构,它由一个或多个范围组成,段将占用并增长存储空间。
其中包括:
数据段:用来存放表数据;
索引段:用来存放表索引;
临时段:用来存放中间结果;
回滚段:用于出现异常时,恢复事务。
范围(Extent):是数据库存储空间分配的逻辑单位,一个范围由许多连续的数据块组成,范围是由段依次分配的,分配的第一个范围称为初始范围,以后分配的范围称为增量范围。
数据块(Block):
是数据库进行IO操作的最小单位,它与操作系统的块不是一个概念。oracle数据库不是以操作系统的块为单位来请求数据,而是以多个Oracle数据库块为单位。

8. Oracle的逻辑存储结构中,( )是最小的I/O单元

一个数据块,在ORACLE数据库中默认的数据块大小是8K

通常全表扫描用的是多块读,

默认的多块读一次I/O操作所读的

块数是32个数据块

所以楼主的答案是一个数据块!

祝你好运

9. Oracle存储过程及举例(几种参数情况的存储

create table TESTTABLE
(
id1 VARCHAR2(12),
name VARCHAR2(32)
)
select t.id1,t.name from TESTTABLE t
insert into TESTTABLE (ID1, NAME)
values ('1', 'zhangsan');

insert into TESTTABLE (ID1, NAME)
values ('2', 'lisi');

insert into TESTTABLE (ID1, NAME)
values ('3', 'wangwu');

insert into TESTTABLE (ID1, NAME)
values ('4', 'xiaoliu');

insert into TESTTABLE (ID1, NAME)
values ('5', 'laowu');
---创建存储过程
create or replace procere test_count
as
v_total number(1);
begin
select count(*) into v_total from TESTTABLE;
DBMS_OUTPUT.put_line('总人数:'||v_total);
end;
--准备
--线对scott解锁:alter user scott account unlock;
--应为存储过程是在scott用户下。还要给scott赋予密码
---alter user scott identified by tiger;
---去命令下执行
EXECUTE test_count;
----在ql/spl中的sql中执行
begin
-- Call the procere
test_count;
end;

create or replace procere TEST_LIST
AS
---是用游标
CURSOR test_cursor IS select t.id1,t.name from TESTTABLE t;
begin
for Test_record IN test_cursor loop---遍历游标,在打印出来
DBMS_OUTPUT.put_line(Test_record.id1||Test_record.name);
END LOOP;
test_count;--同时执行另外一个存储过程(TEST_LIST中包含存储过程test_count)
end;
-----执行存储过程TEST_LIST
begin
TEST_LIST;
END;
---存储过程的参数
---IN 定义一个输入参数变量,用于传递参数给存储过程
--OUT 定义一个输出参数变量,用于从存储过程获取数据
---IN OUT 定义一个输入、输出参数变量,兼有以上两者的功能
--这三种参数只能说明类型,不需要说明具体长度 比如 varchar2(12),defaul 可以不写,但是作为一个程序员最好还是写上。

---创建有参数的存储过程
create or replace procere test_param(p_id1 in VARCHAR2 default '0')
as v_name varchar2(32);
begin
select t.name into v_name from TESTTABLE t where t.id1=p_id1;
DBMS_OUTPUT.put_line('name:'||v_name);
end;
----执行存储过程
begin
test_param('1');
end;

default '0'

---创建有参数的存储过程
create or replace procere test_paramout(v_name OUT VARCHAR2 )
as
begin
select name into v_name from TESTTABLE where id1='1';
DBMS_OUTPUT.put_line('name:'||v_name);
end;
----执行存储过程
DECLARE
v_name VARCHAR2(32);
BEGIN
test_paramout(v_name);
DBMS_OUTPUT.PUT_LINE('name:'||v_name);
END;
-------IN OUT
---创建存储过程
create or replace procere test_paramINOUT(p_phonenumber in out varchar2)
as
begin
p_phonenumber:='0571-'||p_phonenumber;
end;

----
DECLARE
p_phonenumber VARCHAR2(32);
BEGIN
p_phonenumber:='26731092';
test_paramINOUT(p_phonenumber);
DBMS_OUTPUT.PUT_LINE('新的电话号码:'||p_phonenumber);
END;
-----sql命令下,查询当前用户的存储过程或函数的源代码,
-----可以通过对USER_SOURCE数据字典视图的查询得到。USER_SOURCE的结构如下:

SQL> DESCRIBE USER_SOURCE ;
Name Type Nullable Default Comments

---- -------------- -------- -------
-------------------------------------------------------------------------------------------------------------
NAME VARCHAR2(30) Y Name of the object

TYPE VARCHAR2(12) Y Type of the object: "TYPE", "TYPE BODY", "PROCEDURE", "FUNCTION",
"PACKAGE", "PACKAGE BODY" or "JAVA SOURCE"
LINE NUMBER Y Line number of this line of
source

TEXT VARCHAR2(4000) Y Source text

SQL>
---查询出存储过程的定义语句
select text from user_source WHERE NAME='TEST_COUNT';
----查询存储过程test_paramINOUT的参数
SQL> DESCRIBE test_paramINOUT;
Parameter Type Mode Default?
------------- -------- ------ --------
P_PHONENUMBER VARCHAR2 IN OUT
SQL>
---查看当前的存储过程的状态是否正确,
---VALID为正确,INVALID表示存储过程无效或需要重新编译
SELECT STATUS FROM USER_OBJECTS WHERE OBJECT_NAME='TEST_COUNT';
-----如果要检查存储过程或函数的依赖性,可以通过查询数据字典USER_DENPENDENCIES来确定,该表结构如下:
SQL> DESCRIBE USER_DEPENDENCIES;
Name Type Nullable Default Comments
-------------------- ------------- -------- ------- ----------------------------------------------------------
NAME VARCHAR2(30) Name of the object
TYPE VARCHAR2(17) Y Type of the object
REFERENCED_OWNER VARCHAR2(30) Y Owner of referenced object (remote owner if remote object)
REFERENCED_NAME VARCHAR2(64) Y Name of referenced object
REFERENCED_TYPE VARCHAR2(17) Y Type of referenced object
REFERENCED_LINK_NAME VARCHAR2(128) Y Name of dblink if this is a remote object
SCHEMAID NUMBER Y
DEPENDENCY_TYPE VARCHAR2(4) Y
SQL>
---查询存储过程TEST_COUNT的依赖关系
SELECT REFERENCED_NAME,REFERENCED_TYPE FROM USER_DEPENDENCIES WHERE NAME='TEST_COUNT';

10. 数据库的两种存储结构

逻辑结构、物理结构
数据库的存储结构也就是数据库存储数据的方式
逻辑存储结构主要用于描述在oracle内部的组织和管理数据的方式;而物理存储结构则用于描述在oracle外部,即操作系统中组织和管理数据的方式