`
ITCheng
  • 浏览: 77266 次
  • 来自: 北京
社区版块
存档分类
最新评论

Oracle优化总结

 
阅读更多

1.分区
2.java中调用子程序

 

1.索引的创建及其使用,分区必须与表同时创建
--分别创建表空间
space1,space2,space3

 

1.1范围分区

--创建表及其范围分区
create table stu
(
    id number,
    name varchar2(10),
    birth date
)
partition by range(birth)
(
    partition p1 values less than (to_date('2007-10-1','yyyy-mm-dd')) tablespace space1,
    partition p2 values less than (to_date('2008-10-1','yyyy-mm-dd')) tablespace space2,
    partition p3 values less than (to_date('2009-10-1','yyyy-mm-dd')) tablespace space3
);

insert into students values(1,'ss',to_date('2007-10-1','yyyy-mm-dd'));
insert into students values(1,'ss',to_date('2008-10-1','yyyy-mm-dd'));
insert into students values(1,'ss',to_date('2009-10-1','yyyy-mm-dd'));
insert into students values(1,'ss',to_date('2007-11-1','yyyy-mm-dd'));
insert into students values(1,'ss',to_date('2010-12-1','yyyy-mm-dd'));

 

1.2列表分区

create table ad
(
    id number,
    ad varchar2(20)	
)
partition by list(ad)
(
    partition p1 values('上海') tablespace space1,
    partition p2 values('北京') tablespace space2
);

insert into ad values(1,'北京');
insert into ad values(2,'北京');
insert into ad values(3,'北京');
insert into ad values(4,'上海');
insert into ad values(5,'上海');
insert into ad values(6,'上海');

 

1.3散列分区

--创建表及其散列分区
create table num
(
       id number
)
partition by hash(id)
(
          partition p1 tablespace space1,
          partition p2 tablespace space2
)
;

insert into num values(1);
insert into num values(2);
insert into num values(3);
insert into num values(4);
insert into num values(5);
insert into num values(6);

 

1.4索引分区

--索引分区
--本地分区只能一个所以对应一个表空间
--全局索引分区可以1个索引对应多个表空间
create index index_id1 on num(id) local
(
       partition p1 tablespace space1,
       partition p2 tablespace space2
);

create index index_id on num(id)
global partition by range(id)
(
       partition p1 values less than(4),
       partition p2 values less than(maxvalue)
);

 
1.5使用分区

--增加分区
alter table student add partition p4 values less than(maxvalue) tablespace space4 ;
--删除一个分区
alter table student drop partition p2;
--查询分区信息
select * from user_tab_partitions;

 

2.java中调用函数与存储过程

package test;
import hib.HibernateSessionFactory;

import java.sql.CallableStatement;
import java.sql.SQLException;
import java.sql.Types;
import java.util.List;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.junit.Test;

import entity.Student;
public class HibTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		
		HibTest h=new HibTest();
		h.procTest();
		//h.funTest();
		//h.search();
	}
	@Test
	public void search(){
		Session session =HibernateSessionFactory.getSession();
		List<Student> list=session.createQuery("from  Student as st").list();
		System.out.println(list.size());
		for(Student st:list){
		  System.out.print(st.getStuname()+"   ");
		}
		session.close();
	}
	
	public void addStu(){
//		Session session =HibernateSessionFactory.getSession();
//		Transaction tr=session.beginTransaction();
//		Student stu=new Student();
//		stu.setStuname("zhangdan");
//		stu.setBirthday(new Date());
//		session.save(stu);
//		tr.commit();
//		
//		session.close();
	}
	/**
	 * oracle中的过程
	 * create or replace procedure mypro(num1 in out number,num2 in out number)
		as
  		n number;
		begin
  		n:=num1;
  		num1:=num2;
  		num2:=n;
		end;
	 *
	 */
	public void procTest(){
		Session session =HibernateSessionFactory.getSession();
		CallableStatement  cs=null;
		try {
			cs=session.connection().prepareCall("begin proc(?,?); end;");
			//输入参数
			cs.setInt(1, 10);
			cs.setInt(2, 20);
			//输出参数
			cs.registerOutParameter(1, Types.NUMERIC);
			cs.registerOutParameter(2, Types.NUMERIC);
			Transaction tr=session.beginTransaction();
			cs.execute();
			tr.commit();
		    int x=cs.getInt(1);
		    int y=cs.getInt(2);
		    System.out.println(x);
		    System.out.println(y);
			session.close();
		} catch (HibernateException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
	}
	/**
	 * oracle中的函数
	 *  create or replace function myfun(n1 number,n2 varchar2)
 		return varchar2 is
   		n varchar2(10);
 		begin
   			select stuname into n from student  where num=n1 and stuname=n2;
   		return n;
 		end;
	 *
	 */
	public void funTest(){
		Session session =HibernateSessionFactory.getSession();
		CallableStatement  cs=null;
		try {
			cs=session.connection().prepareCall("{? = call myfun(?,?)}");
			cs.registerOutParameter(1, Types.VARCHAR);
			cs.setInt(2,2);
			cs.setString(3, "刘德华");
			Transaction tr=session.beginTransaction();
			cs.execute();
			tr.commit();
			String result=cs.getString(1);
			System.out.println("========="+result);
			session.close();
		} catch (HibernateException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}		
	}
}

  

 

分享到:
评论

相关推荐

    ORACLE优化总结

    ### ORACLE优化总结 #### 一、问题的提出与背景 在软件开发初期,由于数据库中的数据量较少,开发人员往往难以察觉到SQL语句不同编写方式所带来的性能差异。然而,一旦应用程序投入实际使用,随着数据库规模的增长...

    oracle优化总结txt

    ### Oracle优化总结 在本文档中,我们将对提供的部分文本进行深入解读,并提炼出与Oracle数据库性能优化相关的关键知识点。这些知识点将涵盖不同层面的技术细节,包括但不限于系统架构选择、SQL执行效率提升、内存...

    oracle优化总结

    【Oracle优化总结】 在Oracle数据库管理系统中,SQL语句的优化是提高系统性能的关键环节。以下是对Oracle SQL优化的一些核心知识点的详细说明: 1. **选用适合的优化器** Oracle提供了三种优化器:基于规则(RULE...

    Oracle优化总结文档

    我以前做金融项目对金融项目优化的方案和总结希望能给大家带来帮助

    oracle优化方法总结

    本篇文章将深入探讨一些常用的Oracle优化方法,旨在帮助数据库管理员和开发人员提升数据库性能,减少延迟,提高资源利用率。 一、索引优化 索引是加快数据检索的关键工具。正确地创建和管理索引能显著提升查询速度...

    Oracle DB优化总结

    【Oracle DB优化总结】 在数据库管理系统中,Oracle Database(Oracle DB)因其稳定性和高性能而备受赞誉,但随着数据量的增长,优化数据库性能显得至关重要。本文将深入探讨Oracle DB的优化策略,包括优化器的选择...

    Oracle总结

    ### Oracle优化总结与实践 #### 一、Oracle优化概述 在数据库管理领域,Oracle数据库以其高性能、高可靠性和丰富的功能而著称。然而,随着业务规模的不断扩大和技术需求的日益提高,如何有效地优化Oracle数据库...

    Oracle SQL性能优化总结

    简单的整理了一些Oracle性能优化方面的知识。 供大家参考学习。

    Oracle性能优化总结[定义].pdf

    Oracle性能优化总结[定义].pdf

    oracle数据库性能优化.pdf

    Oracle数据库性能优化是确保系统高效运行的关键环节,尤其是在大数据量和高并发的环境中。Oracle数据库因其先进、完整和集成的特性,在市场中占据主导地位,因此深入理解和掌握Oracle的优化技术至关重要。 首先,...

    Oracle优化打包下载

    优化笔记 sql性能的调整-总结 SQL代码性能优化 Oracle语句优化53个规则详解 ORACLE9i优化设计与系统调整 oracle9i优化器介绍 oracle9i的查询优化 ……

    oracle性能优化总结文档

    Oracle性能优化是数据库管理的关键环节,旨在提升数据库处理速度,减少资源消耗,从而提高整体应用系统的性能。以下是对标题和描述中提及的几个关键知识点的详细说明: 1. **优化器的选择**:Oracle数据库提供了三...

    Oracle SQL性能优化技巧总结

    ### Oracle SQL性能优化技巧总结 #### 一、选择最有效率的表名顺序 在Oracle数据库中,SQL语句的执行顺序对查询性能有着显著的影响。对于基于规则的优化器而言,FROM子句中表的顺序至关重要。Oracle的解析器会按照...

    Oracle SQL性能优化技巧大总结

    ### Oracle SQL性能优化技巧大总结 #### 一、选择最有效率的表名顺序 **背景**:在基于规则的优化器(RBO)中,Oracle解析器处理FROM子句中的表名是从右向左的。为了提高查询效率,需要合理安排表的顺序。 **技巧...

    oracle 性能优化总结

    ### Oracle性能优化要点详解 #### 一、概述 Oracle数据库作为一种广泛使用的数据库管理系统,其性能优化对于确保应用程序的高效运行至关重要。本文档旨在提供一系列针对Oracle数据库性能优化的有效策略,适用于...

    Oracle数据库SQL优化总结

    Oracle数据库SQL优化是一个关键的技能,对于提升数据库性能和应用响应速度至关重要。以下是一些针对非DBA的Oracle SQL优化技巧: 1. **选择最有效的表名顺序**:在FROM子句中,应将记录最少的表放在最前面,基础表...

    大牛总结 Oracle性能优化

    Oracle性能优化是数据库管理员和开发人员关注的重要领域,它涉及到一系列技术、工具和策略,旨在提升Oracle数据库的运行效率,减少资源消耗,提高系统响应速度,以及改善用户体验。以下是对Oracle性能优化的详细阐述...

Global site tag (gtag.js) - Google Analytics