DB2——DB2临时表的创建

DB2支持session临时表. 该表只能存在于某一session或某一交易上下文中,对其他用户不可见. DB2 V8增加了对临时表的索引的支持, 这对于提升查询速度比较有意义;

下面举例子来说明session临时表的使用:

1. 在创建session临时表前, 您必须创建临时表空间

create user temporary tablespace test

pagesize 4 k managed by system

using (‘[curdir]\temp‘);

2. 定义session临时表,该定义拷贝transactions的表结构, on commit preserve rows用来指定即使该交易提交了, t1临时表里的数据仍然存在,

只有当session终止后,t1表才会消失.

如果不加上  on commit preserve rows 当insert临时表提交之后临时表里的数据会自动删除掉。

declare global temporary table t1

like transactions

on commit preserve rows not logged in test;

3. 把transaction表的记录插入t1临时表中.

insert into session.t1

select * from transactions

4.从t1表中选择记录, 请注意这条语句的执行速度.

select * from session.T1

where store=‘Rockwood‘;

5. 在t1表上创建索引, db2 v8允许在临时表上创建索引,可以提升对临时表的查询速度.

create index session.t1index on session.t1(store);

6. 您再执行同样的select语句, 可以看出查询速度有所提高.

select * from session.T1

where store=‘Rockwood‘;

7.在db2 9中 不必自己创建临时表空间了,创建临时表时会自动创建一个用户临时表空间SYSTOOLSTMPSPACE。

原文地址:https://www.cnblogs.com/wy20110919/p/9071377.html

时间: 2024-10-14 22:12:02

DB2——DB2临时表的创建的相关文章

Oracle两种临时表的创建与使用详解

ORACLE数据库除了可以保存永久表外,还可以建立临时表temporary tables.这些临时表用来保存一个会话SESSION的数据,或者保存在一个事务中需要的数据.当会话退出或者用户提交commit和回滚rollback事务的时候,临时表的数据自动清空,但是临时表的结构以及元数据还存储在用户的数据字典中. 分类: 1.会话级临时表 会话级临时表是指临时表中的数据只在会话生命周期之中存在,当用户退出会话结束的时候,Oracle自动清除临时表中数据. 格式: Create Global Tem

sql中用临时表 或 创建视图那个效率比较快!

经常访问的话当然是创建视图好 临时表是用一次建立一次 肯定要慢些的 1,存在方式: 临时存在于 服务器内存中 视图 无存在形式 2, 生命周期: 临时表 Sql服务关闭就消失 视图 你不删它就不会消失 3,用途 临时表 经常作为 中间转接层 视图 作为物理表的窗口 4,效率 临时表因为在缓存中,所以执行效率比较高视图 效率一般,但是节省I/O操作,节约资源 5,在存储过程使用时: 临时表,效率很高{可能是数据量少,再加上临时表是在缓存中,所以执行效率高} 视图 一般 sql中用临时表 或 创建视

DB2——DB2的字典视图

SYSIBM: 基本系统编目,不建议直接访问SYSCAT: 默认授权给Public组.只读编目视图,一般通过这个来获取编目信息SYSSTAT: 可更新编目视图,会影响优化器的优化策略SYSFUN: 用户定义函数SYSPROC: 存放一组系统的存储过程 工作中一般用到SYSCAT这个视图,内置参数有 联邦对象 syscat编目视图 描述 包装器 syscat.wrappers syscat.wrapoptions 这两个视图显示被注册的包装器和它们特定的选项 servers syscat.serv

1Z0-051-DDL-1表和临时表的创建和使用

一.创建简单表 1.1  使用列规范创建表 语法: CREATETABLE [schema.]tablename [ORGANIZATION HEAP] (columndatatype [default expression] [,columndatatype [default expression]] ); 注:DEFAULT 字句可能很有用,但它功能很有限. 分析以下案例: CREATETABLE SCOTT.EMP (EMPNONUMBER(4), ENAMEVARCHAR2(10), H

创建数据库普通临时表和创建数据库全局变量表和俩者的区别

用户临时表: create table #xx ( ID int, IDValues int ) 系统临时表: create table ##xx ( ID int, IDValues int ) 区别:用户临时表只对创建这个表的用户的Session可见,对其他进程是不可见的.当创建它的进程消失时这个临时表就自动删除. 全局临时表对整个SQL Server实例都可见,但是所有访问它的Session都消失的时候,它也自动删除.

SQL学习笔记——临时表不同创建方式的区别

问题:在存储过程中使用临时表时,不Create临时表就会报错. 分析了下,总结了临时表创建方式的区别. 创建临时表有两种方法: 方法一 create  table  #临时表名 ( 字段1 约束条件,      字段2 约束条件,      -- ) create  table  ##临时表名 ( 字段1 约束条件,      字段2 约束条件,      -- ) 方法二 select  *  into  #临时表名  from 你的表;   select  *  into  ##临时表名  

SQL_临时表的创建

create table #temp_stu --创建局部临时表 ( stuNum nvarchar(20), Name nvarchar(20) ) create table ##temp_stu -- 创建全局临时表 ( stuNum nvarchar(20), Name nvarchar(20) ) ps:#[tableName]表示创建局部临时表,其他会话无法访问数据与表结构 ##[tableName]表示创建全局临时表,其他会话可以访问数据与表结构 SQLServer会话完成之后,会自

用一个例子说明oracle临时表,创建过程,

--创建临时表,规定好格式,是必须的,不同于sqlserver那么随意: Create Global Temporary Table record4 ( yljgdm VARCHAR2(22) not null, jzlsh VARCHAR2(50) not null, kh VARCHAR2(32), klx VARCHAR2(16), hzxm VARCHAR2(32), jzlx VARCHAR2(3), zzysgh VARCHAR2(16), zzysxm VARCHAR2(32),

DB2——db2日期和时间常用汇总

1.db2可以通过SYSIBM.SYSDUMMY1.SYSIBM.DUAL获取寄存器中的值,也可以通过VALUES关键字获取寄存器中的值. SELECT 'HELLO DB2' FROM SYSIBM.SYSDUMMY1;--HELLO DB2 SELECT 'HELLO DB2' FROM SYSIBM.DUAL;--HELLO DB2 VALUES 'HELLO DB2';--HELLO DB2 2.CURRENT DATE获取当前日期:CURRENT TIME获取当前时间:CURRENT