orcale 存储过程内存计算支持列存储吗

您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
浅谈ORACLE中基于JAVA的存储查询优化.doc 8页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
浅谈ORACLE中基于JAVA的存储查询优化.doc
你可能关注的文档:
··········
··········
浅谈ORACLE中基于JAVA的存储查询优化
  摘 要:在本文中笔者结合多年实际工作经验,对基于JAVA的ORCALE数据库系统在应用方面的一些问题进行分析。主要介绍了基于JAVA的ORCALE数据系统的功能与措施,以及数据库优化过程中所采用JAVA技术与方法。同时分析在数据库设计过程中,以实体对象为对象的关系数据模型如何建立,以及其对数据库网络应用系统的重要性。作为应用系统的基础条件,起决定了应用系统的存储查询是否优化。在本文中,笔者分析了ORCALE基于JAVA的相关技术特点,对存储查询优化进行了简要探讨。
  【关键词】JAVA ORACLE 存储 查询 优化
  1 ORCALE中基于JAVA性能分析
  深入分析,数据库应用性能的优劣性的根本标准是其提供信息的质量、数量以及速度,并根据三者的数据所进行的一种成本效益分析。可以从三个方面进行重点分析,用户使用应用系统进行数据的处理能不能达到其所需要的服务,同时系统为用户提供的信息是否正确、精确、安全以及可靠,此外,应用系统的优良性,还可以通过可读性的强度来表示。其次,应用系统应当保证其处理信息的效率与适应能力,而效率问题可以以应用系统在信息处理任务时,对时间以及资源的消耗作为判断标准,而适应能力则主要是针对系统对整个环境变化时的适应性为判断标准。数据库应用系统的这些要求之间并非独立存在,在某种程度上来说,相互之间是有一定制约性的。可以从以下几个方面进行具体介绍,一是JAVA数据库的功能,其是一种常用的数据处理工具。在数据处理过程中,对ORCALE系统的功能影响较大;二是数据应用程序的提高,其中主要涉及的是应用程序中的算法和数据结构,同时保证数据结构访问的合理性,并且也将对应用系统的相关性能进行影响;三是提高硬件的优越性,以及保证网络支撑环境;四是在系统运行过程中,要对数据库的运行进行及时维护。以上因素都能够在一定程度上,对数据库的相关性能进行影响,有些能够通过人工对这些因素进行控制,有些则不能,需要在开发人员在了解JAVA的基础之上,对数据进行优化,从而达到配置的优越性。
  2 ORCALE中基于JAVA对象关系数据模型的建立与优化
  数据库的开发应当建立在一定需求分析基础上,在开发过程中,对功能的安排,以及数据流的控制,应当尽可能以客观情况进行介绍。在客观描述的基础上,对实体对象进行抽象分析,从而分析出不同实体对象之间的关系。这种关系通过一定的方式成为ORCLE支持的结构模型。因为基于JAVA的ORCLE数据库系统的主要特性便是一关系为基础建立起来,因此实体对象之间的关系模型,在整个数据库设计中,是非常重要的一个环节。当数据库建立以后,这种关系模型已经形成,但是在对该数据库逻辑结构设计的过程中还需要对关系数据模型进行随时检测,对这些关系数据模型的调整与优化,在很大程度上影响数据库系统在性能方面上的保持与提高。目前为止,任何版本的DMS支持的数据模型都可以采用逻辑记录存取方法,该方法目前位置是数据优化理论中的重要基础。在学界这种方法被简称为LRA方法。LRA方法以3个参数来对不同数据库性能进行比较,或者说比较中最为核心的一个标准。该标准是指采用这种方法,在单位时间能够存取多少记录,即这些记录的总数,从而根据数据的总数来确定存储的数据量,并且对低数据存储空间进行分配。
  3 ORCALE中基于JAVA对数据存储结构的调整
  当数据开发还处于物理设计阶段时,需要选择对象最为合适,最能够对存储空间起到优化作用的分配方式,此时则需要采用实现已经设定好了的逻辑数据模型,为了实现这一目的,应用开发人员应当在了解RDMS数据存数结构以及一些其他的存数方法的基础,对这些存储结构的方法和数据存取结构的优缺点有着充分的了解,并且分析存储介质以及应用化境特征。较好的结果是,保证存储空间的高利用率以及高效率,并且尽量减少数据存储机构 在运行时的维护成本。ORCALE所提高的两种基本存储结构,不仅能够使得顺序存储结构变长还能够使主码索引存储结构变长,顺序结构的变长方式主要是根据逻辑数据模型而实现,而主码索引存储结构的局促结构则主要是同自然连接的若干相关表完成,而这些相关表,需要时常通过自然连接操作实现。从检索速度上来看,单表检索速度属于比较快的一类。多表自然连接操作的速度也十分快,主要原因是磁盘内能够读入较多的有效数据,因此,在进行多表检索的过程中,具有相同记录的局促结构,将会实现物理空间上的相邻存储,这主要是聚簇结构的影响。这便影响多表检索的速度。但是这种方式也使得聚簇结构的空间大大消耗。而ORCALE所支持的数据模型中,还有一类同聚簇结构较为相象的结构类型,即哈希簇存储结构,这种存储结构的优点在于能够将一些在数据列上有共性的表,集合在一起。。并且以这些共同数据列的相同
正在加载中,请稍后...05-1502-1602-1602-1602-1602-1602-1602-1602-1602-16最新范文01-0101-0101-0101-0101-0101-0101-0101-0101-0101-0101-0101-0101-0101-0101-011.基本结构 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 & EXCEPTION& WHEN NO_DATA_FOUND THEN&&&& && 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& 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单步调试
简单实例,通过DBMS_OUTPUT来看结果
CREATE OR REPLACE PROCEDURE bb (lic_para IN VARCHAR2,out_para OUT VARCHAR2)AS&& temp&& VARCHAR2 (100);BEGIN&& SELECT lic_no&&&& INTO temp&&&& FROM t_vehicle_info&&& WHERE lic_no = lic_&&& out_para:=&&& DBMS_OUTPUT.put_line (out_para);END
下面是调用:
& -- Call the procedure
& bb(lic_para =& :lic_para,
&&&& out_para =& :out_para);
&&& 可以在命令行里敲sqlplus ”接着调试存储过程。但是最好用的是在pl/sql Developer工具里面用点存储过程里的TEST来调用,它能自动生成调用的语句并有栏目让你输入参数值,包括输入参数和输出参数,并把结果返回到输出参数里面,在结果栏可见,这点pl/sql Developer比TOAD要强,TOAD在存储过程上右键后点击EXECUTE Procedure也可以执行,只是结果在那看我不晓得,而在pl/sql Developer按F9可以调试,ctrl+N可以单步跟踪,的确爽。
阅读(...) 评论() &orcale 的入门知识(有文章上的有自创的)-数据库专栏,SQL Server-虚拟主机资讯|虚拟主机动态
产品服务快速通道
----------------
==域名注册==
英文域名注册
中文域名注册
==网站推广==
==虚拟主机==
----------------
双线路虚拟主机
基本型虚拟主机
商用型虚拟主机
论坛型虚拟主机
功能型虚拟主机
Vip合租虚拟主机
虚拟主机性能对比
虚拟主机免费试用
机房速度测试
----------------
==租用托管==
服务器租用
----------------
==企业邮局==
购买企业邮局
----------------
==付款方式==
----------------
==联系我们==
您当前位置:->-> ->
orcale 的入门知识(有文章上的有自创的)-数据库专栏,SQL Server
作者:网友供稿
  西部数码-全国虚拟主机10强!20余项管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!可在线rar解压,自动数据恢复设置虚拟目录等.免费赠送访问统计,企业邮局.Cn域名注册10元/年,480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金!
文章页数:&
第一部分 数据库基础 一、基本概念 1.什么是sql? sql即结构化查询语言,是用于关系数据库通迅的标准语言,通过sql用户可向数据库表达自已的需求。 2.什么是客户机/服务器技术? 在客户机/服务器中,主机叫作服务器,网络通常是局域网(lan)或是广域网(wan).服务器通常被个人计算机或是其他的服务器或个人计算机而不是终端访问.每一台pc机都叫做一个客户机,都有访问网络的功能,允许在客户机和服务器之间通信因此叫客户机/服务器技术. 二、数据处理的发展阶段 1、手工处理阶段: 50年代中期,计算机内存、外存容量都很小,外存只有磁带,没有磁盘,硬件性能很差;软件中也没有数据管理部分,因而主要限于科学计算;这一阶段主要是用手工进行数据处理。 2、文件系统阶段:数据和程序的分离导致了文件系统的诞生。 顺序与随机文件组织并用; 批量与实时处理并存; 物理和逻辑结构有了简单变换; 软件提供存取方法; 数据冗余较多,数据不能共享; 文件或数据属于一个用户; 数据独立性差,数据结构和程序合为一体; 无集中管理,无法用全局观点而只能面向局部应用进行数据结构设计。 3、数据库系统阶段: 数据库技术的目标就是克服文件系统的弊病,解决冗余和数据独立性问题,并通过一软件系统(dbms)来集中管理所有文件,从而实现数据共享,其本质是通过分层,第一层面向用户,第二层面向全局,第三层面向物理存贮,层和层这间通过两级变换,这样将用户应用文件与物理文件完全分离,分别实现了数据的逻辑和物理独立性。 模型:为把数据和程序完全分离,分为三种模型: 内模型或物理模型:面向计算机物理存贮; 概念模型:面向系统整体;(dbms) 外模型:面向用户。 模式:用ddl精确定义数据模型的程序; 内模式:定义内模型的模式; 概念模式:定义概念模型的模式; 外模式:定义外模型(面向用户)的模式。 数据模型:表示实体(entity)以及实体间联系(relationship)的模型;有四种形式: e-r模型:最直观的描述方式,实体集用长方形表示,属性用椭圆表示,联系用菱形表示; 层次模型:可表示1-m关系,有唯一根(和父)结点; 网状模型:可表示m-m关系; 关系模型:以表来表示数据间的联系,通过表格数据而不是通过指针链接来表示和实现两实体间的关系。 三、oracle简介 自1970年codd发表关系理论后,关系型数据库得到了飞速的发展,如informix、db2等; 起初oracle是一发展较完善的关系型数据库,已由单一的数据库发展到多种服务,多种产品的;oracle rdbms是oracle系统的核心,它由数据库管理的核心模块以及帮助用户和数据库管理员dba维护、监视和使用数据库的一些实用程序组成。rdbms的核心模块就是sql的实现模块,它是所有实用程序的基础。 问:在三种模式(内、概念、外模式)中oracle是对应于哪种模式; 在四种数据模型(e-r、层次、网状、关系型)中oracle相应于哪种? 四、sql命令简介 1、ddl数据定义语言.
2、 dml数据操纵语言. insert 向表中插入新数据行; update 更新表中现有的数据; delete 从表中删除几行数据; 3、 dql数据查询语言. select 从一张或多张表中返回数据; 4、 dcl数据控制语言. alter password 更改用户密码; grant 为用户赋予特权; revoke 收回用户特权; create synonym 创建同义词 5、 数据管理命令. start audit stop audit 6、 事务性控制命令. commit 将事务保存到数据库; rollback 撤消一个数据库事务; savepoint 创建在必要时可以撤消事务的保存点; set transaction 设置事务。 第二部分 建立数据库 一、基本概念 1、数据库和数据库对象? 数据库是数据的集合体; 数据库对象可以是数据库中定义的任何对象,用于存储和参照数据,表是关系数据库最简单的存储形式,还有视图、索引等。 2、什么是模式? 模式数据库对象的集合,并有一个与之相关连着的特定的用户名,一个模式可以包括一张表和没有数量限制的对象. 3、数据结构 定长字符串char 变长字符串varchar2 数字值number 小数点数值decimal 整型integer 浮点小数float 日期和时间date 文字串 string null型数据. 二、表及其基本操作 在关系数据库中,表是数据的主要存储对象,表包含了行和列,存放着实体及其联系,表在数据库中占有的物理空间可以是永久性的,也可是暂时的。 1、创建表的基本语法为: create table table_name (field1 datatype [ not null ] field2 datatype [ not null ] field3 datatype [ not null ]) storage (initial x 初始空间 next x 附加空间); 例: create table employee_tbl (emp_id char(9) not null , emp_name varchar(40) not null , emp_zip number(6) null , emp_phone number(10) null) storage ( initial 3k next 2k); 2、修改表的语法为: alter table table_name [modify][column column_name] [datatype not null | null)] [restrict | cascade] [drop] [constraint constraint_name] [add] [column ] 例: alter table employee_tbl modify (emp_phone number(11) null); 3、从现有表中创建一新表 create table new_table_name as select [* | column1 colum2] from table_name [where condition] 例: create table phone_tbl as select ( emp_id, emp_phone) from employee_ 4、删除表的语法为: drop table table_name 例: drop table phone_ 5、orcale补: describe 显示表的结构及所有表列的概要; 三、完整性约束. 在关系数据库中,完整性约束用于确保数据的准确性和一致性,是通过参照完整性实现的。 1、主键约束:primary key 在表中标识一列或多个列,来使一行数据保持唯一性,用于查询参考,表的联合; 例: alter table employee_tbl modify (emp_id char(9) not null primary key); 2、唯一性约束:unique 对应列不存在相同的数值; 例: alter table employee_tbl modify (emp_phone number(11) null unique); 3、外键约束: foreign key key_name_fk(key_name) feferences tbl_name(key_name) 例: create table employee_pay_tbl (emp_id char(9) not null , position varchar2(15) not null , pay_rate number(4,2) not null ) foreign key emp_id_fk(emp_id) references employee_tbl(emp_id)); 注:要在子表中插入值,必须在父表中key_name首先存在对应的值; 4、not null约束:不允许有null值; 注:改变表属性时,not null -&null可, 而null-&not null值时,要看是否有nul值; 5、使用check约束:用来检查数据有效性; 例: create table customer_tbl (cust_id char(9) not null , cust_name varchar2 not null , cust_city varchar2 not null , cust_zip number(5) null , cust_phone number(11) ), primary key (cust_id), constraint chk_emp_zip check( emp_zip=&#’); 四、规范化过程. 1、什么是规范化? 规范化是数据库中减少数据冗余的过程. 除了数据库中,名称,对象名称和形式都需要规范化. 2、将数据库规范化 在数据库规范的过程中,三个常用的范式为: 第一范式:将基本数据按主键分成称为表的逻辑单元; 第二范式:使用仅仅部分依赖于主键的数据输入到其他表中; 第三范式:从表中将不依赖于主键的数据除去; 例: company_database ( emp_id last_name first_name middle_name address city zip phone position position_desc date_hire pay_rate date_last_raise cust_id cust_name cust_address cust_city cust_zip cust_fax qty ord_num ord_date prod_id prod_desc cost ) 按第一范式的要求可分为三个表: employee_tbl ( emp_id last_name first_name middle_name address city zip phone position date_hire pay_rate date_last_raise) customer_tbl ( cust_id cust_name cust_address cust_city cust_zip cust_phone cust_fax qty ord_num ord_date ) products_tbl ( prod_id prod_desc cost ) 按第二范式的要求employee_tbl可分为两张表: employee_tbl ( emp_id last_name first_name middle_name address city zip phone ) employee_pay_tbl ( emp_id position position_desc date_hire pay_rate date_last_raise ) 根据第三范式employee_pay_tbl可分为两个表: employee_pay_tbl ( emp_id position date_hisre pay_rate date_last_raise ) position_tbl ( position position_desc ) 3、规范式的好处和弊端 大型的总体数据库组织, 减少数据冗余, 数据库中的数据一致性, 更加灵活的数据库设计, 更好的数据库安全处理; 其主要弊端是降低了数据库的可操作性,因而要进行适当的非规范化。 第三部分.操纵数据. 一、数据操纵综述. 数据操纵语言(dml)是sql的一部分,它允许数据库用户在关系型数据库中进行数据的改变. 在sql中有三种基本的dml命令 1、insert(插入) 2、update(更新) 3. delete (删除) 二、给表中填充数据. 1、 往表中插入新数据 insert into table_name values(‘values1’,’values2’) 例: insert into employee_tbl values ( ,‘武建军’,&#’,&#’) 2、往表中有限列中插入数据. insert into table_name (‘column1’,’column2’) values(‘values1’,’values2’) 例: insert into employee_tbl(‘emp_id’,’emp_name’) values ( ,‘大刘’); 3、插入另一张表中的数据 insert into table_name select [* | (‘column1’,’column2’)] from table_name [where conditions(s)]; 例: insert into customer_tbl select (‘emp_id’,’emp_name’,’emp_zip’,’emp_phone’) from employee_tbl where emp_zip=&#’; 4、插入null值. 基本语法为: insert into table_name (‘column1’, null,’column3’) 思考: 插入时,值列表中多值、少值行吗? null和‘null’是否一样? , ,和,‘’,行吗? 三、更新已存在的数据. 1、只更新单独一列的数据 update table_name set column_name = ‘value’ [where condition]; 2、在一行或多行记录中更新多个列 update table_name set column1 =‘value’, [column2 = ‘vlaue’]; 4.从表中删除数据 从表中删除一条单独的记录或是被选的多条记录 delete from table_name where [condition]; 第四部分.数据库事务管理. 一、事务控制命令 事务控制是对在关系数据库中可能发生的不同事务的管理能力. 用于事务控制的命令: 1、commit 命令 commit 命令是一条事务命令,用于保存数据库中由事务引起的改变.commit 命令保存自从上一条commit或rollback 命令以来的所有事务. 语法为:commit [word]; 2、rollback 命令 commit 命令是用于撤消那些还没有保存到数据库中由事务的事务控制命令.rollback 命令只能用于撤消上一条commit命令或rollback命令执行后的事务。 语法为: rollback [word]; 3、savepoint 命令 savepoint 命令保存点是在事务中,能够进行事务滚回的点,而不需要滚回整个事务 语法为: savepoint point_ rollback to point_ 二、事务控制和数据库的性能 糟糕的事务控制会破坏数据库的性能,甚至给数据库带来危害。数据库反复的低性能可能是因为在大量插入,更新或删除操作中缺乏事务控制;当执行大量事务工作时,应频繁使用commit和rollback命令来释放数据库空间。 第五部分 数据查询语言dql 一、基本的select语句 select [all | * | [distinct] column1,column2…] from table1 [,table2…] [where conditons ] [group by column1, column2,…… [having conditions ] [order by column1 ,colunm2…] 二、使用操作符给数据分类 1、 比较操作符(= ,&&, &, &) 例: select * from employee_tbl where emp_zip=&#’; 2、 逻辑操作符(is null , between , in , like , exists , unique , all ,any) is null:用于比较带有null值的值; between:用于在一个范围中取值; in :用于返回在一系列指定的值中的结果; like :取同指定值相似的值(%代表任意个字符,而_代表一个); exists :查询是否存在一行符合某条件的数据; unique :测试是否有重复数据; all :指数据集中的每一个值; any :指数据集中的任一个值; 例: select * from employee_tbl where emp_salary &all (select emp_salary from emp_salary where emp_city=’武汉’); 3、 连接符(and , or) 例: select * from employee_tbl where emp_zip=&#’ or emp_zip=&#’; 4、 数学运算符的组合 例: select emp_salary*12 from employee_ 三、统计查询结果数据 1、count:用于统计行数; 例: select count(emp_id) from employee_ 2、sum:用于返回一组数据行中某列值的总和; 例: select sum(emp_salary) from employee_ 3、avg:用于确定一组数据的平均值; 例: select avg(emp_salary) from employee_ 4、max:用于返回一组数据的最大值; 例: select max(emp_salary) from employee_ 5、min:用于返回一组数据的最小值; 例: select min(emp_salary) from employee_ 四、排序和分组 1、 分组:group by 例: select employee_name ,emp_city from employee_tbl group by emp_city,employee_ 注:如果在select子句中引用的是列名,列名一定也会用于group by的中; 不能像order by一样通过使用整数列名来进行排序,除非便用了union,并且列名都各自不同。 2、 排序:order by 例: select emp_city, count(*) from employee_tbl group by emp_city order by 2,1; 3、 having子句:跟在group by之后,order by 之前,设置条件; 例: select emp_city,avg(pay_rate),avg(emp_salary) from emp_pay_tbl where city &&‘武汉‘ group by emp_city having avg(emp_salary)&2000; 第六部分 实习题 1请问sql命令可分为哪六类,每一类都有哪些具体的命令? 2 请建立以下五个表格,并用desc命令检查它们的结构。 表employee_tbl结构 emp_id varchar2(9) not null, last_name varchar2(15) not null, first_name varchar2(15) not null, middle_name varchar2(15), address varchar2(30) not null, city varchar2(15) not null, state char(2) not null, zip number(5) not null, phone char(10), pager char(10), constraint emp_pk primary key(emp_id) 表employee_pay_tbl结构 emp_id varchar2(9) not null, position varchar2(15) not null, date_hire date, pay_rate number(4,2), date_last_raise date, salary number(8,2), bonus number(6,2), constraint emp_fk foreign key(emp_id) references employee_tbl(emp_id) 表customer_tbl结构 cust_id varchar2(10) not null primary key, cust_name varchar2(30) not null, cust_address varchar(20) not null, cust_city varchar2(15) not null, cust_state char(2) not null, cust_zip number(5) not null, cust_phone number(10), cust_fax number(10) 表orders_tbl结构 ord_num varchar2(10) not null primary key, cust_id varchar2(10) not null, prod_id varchar2(10) not null, qty number(6) not null, ord_date date 表products_tbl结构 prod_id varchar2(10) not null primary key, prod_desc varchar2(40) not null, cost number(6,2) not null
文章整理:西部数码--专业提供、服务
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
文章页数:&
??????????
??????????
版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
版权所有 西部数码(www.west.cn)
CopyRight (c)
west263.com all right reserved.
公司地址:四川省成都市金牛区一环路北一段99号环球广场24楼 邮编:610031
电话总机:028-08 38
售前咨询:总机转201 202 203 204 206 208
售后服务:总机转211 212 213 214
财务咨询:总机转224 223 传真:028- 财务QQ:
售前咨询QQ:2182518
售后服务QQ:

我要回帖

更多关于 orcale 执行存储过程 的文章

 

随机推荐