博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
oracle 自增时输入绑定,oracle性能提高 批量绑定
阅读量:6622 次
发布时间:2019-06-25

本文共 2201 字,大约阅读时间需要 7 分钟。

oracle性能提高 批量绑定

author:skatetime:2010-05-04

在我们的系统里,大家在写pl/sql时,处理多条记录时,几乎都是通过游标来完成的,这样是非常影响性能的。我们可以用批量绑定可以大大的改善。

批量绑定是oracle9i增加的特性,是指执行单次sql操作能传递所有集合元素的数据。通过绑定绑定变量可以极大的提高数据处理速度,提高应用程序的速度。批处理可以用与select,update,delete,insert语句上进行批量数据的处理。

在我们写pl/sql的时候,oracle会为select和dml语句分配上下文区(这个步骤是非常耗资源的,oracle对于太频繁的切换,都换用其它方式代替,例如spin),游标就是上下文区的指针。所以在我们日常coding时,尽量少用cursor,虽然cursor使用很简单,但也带来很大的性能问题,我们现在系统里的游标就非常多。

批量绑定是使用bulk collect和forall语句来完成的。

bulk collect:用与取得批量数据,只能用户,select,fetch和dml返回字句

forall:适用于批量的dml

下面简单介绍下使用批量绑定和不使用批量绑定的性能对比的样例,一共两个例子:

测试表:

create table TESTA

(

ID   NUMBER(6) primary key not null ,

NAME VARCHAR2(10)

)

**********************************************************************************

例子1:

Forall:

使用批量绑定:

SQL> declare

2   type id_table_type is table of number(6) index by binary_integer;

3   type name_table_type is table of varchar2(10) index by binary_integer;

4

5   id_table id_table_type;

6   name_table name_table_type;

7   start_time  number(10);

8   end_time number(10);

9

10  begin

11

12  for i in 1..5000  loop

13     id_table(i):=i;

14     name_table(i):='name'||to_char(i);

15  end loop;

16

17  start_time:=dbms_utility.get_time;

18  for i in 1..id_table.count loop

19   insert into testa values(id_table(i),id_table(i))  ;

20  e

相关文档:

自增字段:

表atable(id,a) id需要自增 首先建立一个序列:

create sequence seq_atable minvalue 1 maxvalue 999999999999999999 start with 1 increment by 1 nocache

有二种方式使用自增字段:

使用序列+触发器实现自增,插入语句不需要管自增字段

如:create or replace trigger trg_atable before insert on ......

数据库实例结构 事务一致性(Transactional Consistency)和基于时间点的恢复(Point-in-time Recovery) 系统元数据

top数据库实例结构

当Oracle实例启动之后,所看到的就是在服务器内存上的一个个不同内存块加上产生的与这些内存交互的后台进程。Oracle文档将这些内存结构和进程收的很详细。

由Oracle实例所占用的内存块� ......

事故原因:

1.由于误操作用hp unix 命令 rm -f datafilename 删除表空间的数据文件

2.alter tablespace tablespacenaem drop datafile datafile ;

3.drop tablespace tablespacename including content and datafiles;

上述两个步骤我用了近三个小时都没有执行完,最后导致数据库宕机。下面把我当时启动数据的后台� ......

查看当前用户的缺省表空间

SQL>select username,default_tablespace from user_users;

查看当前用户的角色

SQL>select * from user_role_privs;

查看当前用户的系统� ......

1。web.config ----appSettings--

2.  c#代码中

using System.Data.OracleClient;

public DataTable  GetLimsTimeInSpace(string S_SAMPLE_NAME, string S_SAMPLING_P_N,Date ......

转载地址:http://dbcpo.baihongyu.com/

你可能感兴趣的文章
MFC更换窗口图标
查看>>
[三]JavaIO之IO体系类整体设计思路 流的概念以及四大基础分类
查看>>
Java 读取某个目录下所有文件、文件夹
查看>>
携程ELK
查看>>
朱晔和你聊Spring系列S1E2:SpringBoot并不神秘
查看>>
关于Java中的注释语句的对Java代码的影响
查看>>
2013年度第一期测试沙龙 PPT下载
查看>>
我的Java后端书架 (2016年暮春3.0版)
查看>>
两行代码搞定UITableView无数据无网络显示-b
查看>>
Microsoft Speech SDK开发包 使用
查看>>
Android应用开发基础篇(2)-----Notification(状态栏通知)
查看>>
10 款非常棒的CSS代码格式化工具推荐
查看>>
SQL Server 临时表的删除
查看>>
StackOverFlow关于JVM的文章
查看>>
程序8
查看>>
【原】WebRebuild深圳站的一点感悟
查看>>
23讲 URL
查看>>
Excel Open Xml中CellStyleXfs,cellStyle,cellXfs之间关系的总结
查看>>
QT Basic---Widgets<1>
查看>>
Android开发10.3:UI组件GridView网格视图
查看>>