db2建立临时表空间linux_db2创建临时表空间 - CSDN
  • db2 系统临时表空间

    2014-05-26 14:28:17
    如果结果集中的行大小接近于现有系统临时表空间的最大行长度限制,那么可能需要创建具有更大页大小的系统临时表空间。 开始之前 确保具有 SYSCTRL 或 SYSADM 权限来在必要时创建系统临时表空间。 ...

    确保系统临时表空间的页大小符合要求

    更大记录标识符(RID)的使用增加了来自查询或定位更新的结果集的行大小。如果结果集中的行大小接近于现有系统临时表空间的最大行长度限制,那么可能需要创建具有更大页大小的系统临时表空间。

    开始之前

    确保具有 SYSCTRL 或 SYSADM 权限来在必要时创建系统临时表空间。

    过程

    要确保系统临时表空间的最大页大小对于查询或定位更新足够大。

    1. 确定来自查询或定位更新的结果集的最大行大小。使用曾用来创建表的 DDL 语句来监控查询或者计算最大行大小。
    2. 通过发出以下查询,确定每个系统临时表空间的页大小,同时对于创建了查询或更新中引用的表,确定表空间的页大小:
      db2 "SELECT CHAR(TBSP_NAME,20) TBSP_NAME, TBSP_CONTENT_TYPE, TBSP_PAGE_SIZE 
           FROM SYSIBMADM.SNAPTBSP"
      
      TBSP_NAME            TBSP_CONTENT_TYPE TBSP_PAGE_SIZE
      -------------------- ----------------- --------------------
      SYSCATSPACE          ANY                               8192
      TEMPSPACE1           SYSTEMP                           8192
      USERSPACE1           LARGE                             8192
      IBMDB2SAMPLEREL      LARGE                             8192
      SYSTOOLSPACE         LARGE                             8192
      SYSTOOLSTMPSPACE     USRTEMP                           8192
      
        6 record(s) selected.
      可以通过在输出中查找其 TBSP_CONTENT_TYPE 列的值为 SYSTEMP 的表空间来标识系统临时表空间。
      如果要从版本 8.1 进行升级,请使用以下命令:
         db2 LIST TABLESPACES SHOW DETAIL
    3. 检查结果集中的最大行大小是否适合系统临时表空间的页大小:
         maximum_row_size > maximum_row_length - 8 字节(单一分区中
                                                          的结构开销)
         maximum_row_size > maximum_row_length - 16 字节(DPF 中的结构开销)
      其中 maximum_row_size 是结果集的最大行大小,maximum_row_length 是基于所有系统临时表空间的最大页大小所允许的最大长度。查看数据库管理器特定于页大小的限制,以根据表空间页大小确定最大行长度。

      如果最大行大小小于计算的值,那么查询将以它们在 DB2® UDB V8 中的运行方式运行,且您不必继续执行此任务。

    4. 创建一个系统临时表空间,其大小应至少比创建了表的表空间页大小大一个页大小(如果还没有这样的大小的系统临时表)。例如,在 Windows 操作系统上,如果在一个具有 8 KB 页大小的表空间中创建了表,那么使用 16 KB 页大小创建其他系统临时表空间:
         db2 CREATE SYSTEM TEMPORARY TABLESPACE tmp_tbsp
               PAGESIZE 16K
               MANAGED BY SYSTEM
               USING ('d:\tmp_tbsp','e:\tmp_tbsp')
      如果表空间页大小是 32 KB,那么可以减少在查询中选择的信息或者分开这些查询以适合系统临时表空间页。例如,如果选择了表的所有列,那么可以改为仅选择真正需要的列或者选择某些列的一个子串来避免超出页大小限制。
    以上摘自:http://pic.dhe.ibm.com/infocenter/db2luw/v9r7/index.jsp?topic=%2Fcom.ibm.db2.luw.qb.upgrade.doc%2Fdoc%2Ft0022383.html&lang%3Dzh_CN

    --

    系统数据、用户数据和临时数据的表空间

    每个数据库都必须要有最小的一组表空间,这些表空间用于存储系统数据、用户数据和临时数据。

    一个数据库至少必须包含三个表空间:
    • 目录表空间
    • 一个或多个用户表空间
    • 一个或多个临时表空间

    目录表空间

    目录表空间包含数据库的所有系统目录表。此表空间称为 SYSCATSPACE,它不能被删除。

    用户表空间

    用户表空间包含用户定义的表。缺省情况下,将创建一个用户表空间 USERSPACE1。

    如果创建表时未对其指定表空间,那么数据库管理器将自动进行选择。有关更多信息,请参阅 CREATE TABLE 语句的 IN tablespace-name 子句的文档。

    表空间的页大小确定了表中的最大行长度或列数。CREATE TABLE 语句的文档说明了页大小与最大行大小和列数之间的关系。在 V9.1 之前,缺省页大小为 4 KB。在 V9.1 及其后续版本中,缺省页大小可以是其他受支持的值中的一个。缺省页大小是在创建新的数据库时声明的。声明了缺省页大小之后,仍然可以使用具有一种页大小的表空间作为表,而使用具有另一种页大小的另一个表空间来存储长型数据或 LOB 数据。如果列数或行大小超过表空间页大小的限制,那么返回一个错误(SQLSTATE 42997)。

    临时表空间

    临时表空间包含临时表。临时表空间可以是系统临时表空间用户临时 表空间

    系统临时表空间存放数据库管理器在执行诸如排序或连接之类的操作时所需的临时数据。这些类型的操作需要额外的空间来处理结果集。数据库必须有至少一个系统临时表空间;在缺省情况下,创建数据库时会创建一个名为 TEMPSPACE1 的系统临时表空间。

    处理查询时,数据库管理器可能需要访问页大小足以处理与查询相关的数据的系统临时表空间。例如,如果查询返回的数据包含长度为 8KB 的行,并且没有页大小至少为 8KB 的系统临时表空间,那么该查询将失败。您可能需要创建具有更大页大小的系统临时表空间。通过定义页大小等于用户表空间的最大页大小的临时表空间,可以帮助您避免这些类型的问题。

    用户临时表空间存放使用 DECLARE GLOBAL TEMPORARY TABLE 或 CREATE GLOBAL TEMPORARY TABLE 语句创建的表的临时数据。缺省情况下,创建数据库时不会创建这些表空间。它们还存放已创建临时表的实例化版本。为了能够定义已声明临时表或已创建临时表,至少一个用户临时表空间应该是使用相应 USE 特权创建的。USE 特权是使用 GRANT 语句授予的。

    如果数据库使用多个临时表空间,并且需要新的临时对象,那么优化器将为此对象选择相应的页大小。然后将把该对象分配到具有相应页大小的临时表空间中。如果存在多个具有该页大小的临时表空间,那么将以循环方式来选择表空间,即,先选择具有该页大小的表空间,然后为将要分配的下一个对象选择下一个表空间并依此类推,直到用尽所有合适的表空间后回到第一个表空间。但是,在大多数情况下,建议您不要创建多个具有相同页大小的临时表空间。

    SQL1585N不存在具有足够页大小的系统临时表空间。 

    解释: 

    可能发生了下列其中一种情况: 

    1.    系统临时表的行长度超过了数据库中最大系统临时表空间中可接受的限 
        制。 

    2.    系统临时表中所需的列数超过了数据库中最大系统临时表空间中可接受 
        的限制。 

    系统临时表空间限制取决于其页大小。这些值是: 


      最大         最大   临时 
      记录         列数   表空间的 
      长度                页大小 
      -----------  ----  ------------ 
      1957  字节   244   2K 
      4005  字节   500   4K 
      8101  字节   1012  8K 
      16293 字节   1012  16K 
      32677 字节   1012  32K 


    The view being compiled is based on other view which contain a function that has the return parameter VARCHAR(32672). 

    SQLLIB\BIN> db2 list tablespaces show detail表空间标识                        = 1名称                              = TEMPSPACE1类型                              = 系统管理空间内容                              = 系统临时数据......页大小(以字节计)                = 4096......I tried to reduce the return parameter length down to 4005 in the function, but the error continues to happen as compiling the view. Finally it works for VARCHAR(3600) as maximum. 

    Please see following test case. 


    The function.CREATE FUNCTION zytst.fun1RETURNS VARCHAR(32672)LANGUAGE SQLDETERMINISTICNO EXTERNAL ACTIONREADS SQL DATARETURN 'abc'@ 
    The inner view. 
    CREATE VIEW zytst.v1 ASVALUES zytst.fun1() AS c1@ 
    The view occurring error. 
    CREATE VIEW zytst.v2 ASSELECT c1 AS c1 FROM zytst.v1@ 
    The function fun1 and the view v1 could be compiled successfully in the DB whose system temporary tablespace only has 4KB pagesize in bufferpool. But the v2 could Not be compiled in the same DB. 
    解决方法参考: 
    http://blog.sinzy.net/richard/entry/6679 

    DB2默认的页大小是4K,这样的表的字段太长,接近8K.一条记录不能跨页存储. 
    所以我们需要创建一个页长为8K的表空间. 
    首先,创建8K的缓冲池: 

    create bufferpool ibmdefault8k IMMEDIATE  SIZE 5000 PAGESIZE 8 K ; 

    再创建一个系统临时表空间才能让DB2 shut up. 

    CREATE TEMPORARY TABLESPACE mysystmp1 
      IN DATABASE PARTITION GROUP IBMTEMPGROUP 
      PAGESIZE 8K 
      MANAGED BY SYSTEM 
      USING 
      ('D:\DB2\mysapce' 
      ) 
      EXTENTSIZE 32 
      PREFETCHSIZE 16 
      BUFFERPOOL IBMDEFAULT8K 
      OVERHEAD 24.10 
      TRANSFERRATE 0.90 
      DROPPED TABLE RECOVERY OFF; 

    然后,使用该缓冲池创建一个表空间 

    CREATE TABLESPACE mytbs 
      IN DATABASE PARTITION GROUP IBMDEFAULTGROUP 
      PAGESIZE 8K 
      MANAGED BY SYSTEM 
      USING 
      ('D:\DB2\mytables' 
      ) 
      EXTENTSIZE 32 
      PREFETCHSIZE 16 
      BUFFERPOOL IBMDEFAULT8K  
      OVERHEAD 24.10 
      TRANSFERRATE 0.90 
      DROPPED TABLE RECOVERY OFF; 
    GRANT USE OF TABLESPACE mytbs TO PUBLIC; 
    展开全文
  • DB2临时表空间的作用

    2019-07-06 02:08:35
    系统临时表空间用来存储各种数据操作(排序、重组表、创建索引、连接表)中所需的内部临时数据,虽然可以创建任意多个系统临时表空间,但建议用户只使用大多数表所使用的页大小创建一个,默认系统临时表空间名为TEMP...

    临时表空间分为系统临时表空间用户临时表空间


    系统临时表空间用来存储各种数据操作(排序、重组表、创建索引、连接表)中所需的内部临时数据,虽然可以创建任意多个系统临时表空间,但建议用户只使用大多数表所使用的页大小创建一个,默认系统临时表空间名为TEMPSPACE1。

    用户临时表空间用来存储已说明全局临时表(已说明全局临时表存储的是应用程序临时数据)。用户临时表空间不是在数据库创建时默认创建的。 

    转载于:https://www.cnblogs.com/heml/p/3483674.html

    展开全文
  • ---创建临时表空间: /* Formatted on 2009/11/20 16:03 (Formatter Plus v4.8.7) */ CREATE TEMPORARY TABLESPACE temp001 TEMPFILE '/opt/oracle/oradata/orcl/temp001.dbf' SIZE 200m AUTOEXTEND ON NEXT ...

    ---创建临时表空间:

    /* Formatted on 2009/11/20 16:03 (Formatter Plus v4.8.7) */
    CREATE TEMPORARY TABLESPACE temp001
    TEMPFILE '/opt/oracle/oradata/orcl/temp001.dbf'
    SIZE 200m
    AUTOEXTEND ON
    NEXT 32m MAXSIZE 2048m
    EXTENT MANAGEMENT LOCAL;


    --删除临时表空间:
    DROP TABLESPACE temp001 INCLUDING CONTENTS AND DATAFILES;

    ---注释:
    1) DATAFILE: 表空间数据文件存放路径
    2) SIZE: 起初设置为200M
    3) UNIFORM: 指定区尺寸为128k,如不指定,区尺寸默认为64k
    4) 空间名称temp001 与 数据文件名称 temp001.dbf 不要求相同,可随意命名
    5) AUTOEXTEND ON/OFF 表示启动/停止自动扩展表空间
    6) ALTER DATABASE DATAFILE '/opt/oracle/oradata/orcl/temp001.dbf' RESIZE 500m; //手动修改

    数据文件大小为500M

    设置默认临时表空间

    主要思想是,oracle必须存在一个默认的临时表空间,先建立一个临时表空间temp1,并将其默认,然后删除掉temp临时表空间,再建立temp临时表空间,指定temp为默认临时表空间,最后将temp1临时表空间删除掉。

    /* Formatted on 2009/11/24 19:48 (Formatter Plus v4.8.7) */
    CREATE TEMPORARY TABLESPACE temp TEMPFILE '/opt/oracle/oradata/orcl/temp.dbf' SIZE 1024 m

    AUTOEXTEND ON NEXT 10 m MAXSIZE UNLIMITED;

    /* Formatted on 2009/11/24 20:09 (Formatter Plus v4.8.7) */
    ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp


    /* Formatted on 2009/11/24 19:50 (Formatter Plus v4.8.7) */
    ALTER DATABASE TEMPFILE '/opt/oracle/oradata/orcl/temp.dbf' RESIZE 1024 m;

    DROP TABLESPACE temp1 INCLUDING CONTENTS AND DATAFILES;


    COMMIT;

    展开全文
  • 今天在测试库中创建大表索引后临时表空间自动扩展到了10G,我采用了重建临时表空间的方式处理了一下,记录如下: 1.创建中转临时表空间 create temporary tablespace temp1 tempfile '/oracle/oradata/secooler/...
    今天在测试库中创建大表索引后临时表空间自动扩展到了10G,我采用了重建临时表空间的方式处理了一下,记录如下:

    1.创建中转临时表空间

    create temporary tablespace temp1 tempfile '/oracle/oradata/secooler/temp02.dbf' size 512m reuse autoextend on next 1m maxsize unlimited;

    2.改变缺省临时表空间为刚刚创建的新临时表空间temp1
    alter database default temporary tablespace temp1;

    3.删除原临时表空间
    drop tablespace temp including contents and datafiles;

    4.重建临时表空间
    create temporary tablespace temp tempfile '/oracle/oradata/secooler/temp01.dbf' size 512m reuse autoextend on next 1m maxsize unlimited;

    5.重置缺省临时表空间为新建的temp表空间
    alter database default temporary tablespace temp;

    6.删除中转用临时表空间
    drop tablespace temp1 including contents and datafiles;

    OK,搞定!

    BTW:
    另外还有一种修改临时表空间大小的方法,详见《【实验】RESIZE方法解决临时表空间过大问题》
    http://space.itpub.net/?uid-519536-action-viewspace-itemid-610138
    展开全文
  • DB2数据库中的表空间(tablespace) 是一个逻辑层,一些数据库对象(比如表、视图和索引)驻留在这里。一个数据库可以有多个表空间。在首次创建数据库时,DB2 会自动地创建一组表空间。  在 Control Cent...
  • db2表空间不足及处理

    2020-07-30 23:30:51
    DB2数据库,创建视图后,查询创建的视图如果报-1585则表明临时表空间不足,需要根据资源内容解决此问题。
  • db2 创建数据库及表空间语句 1、首先在windows安装完DB2以后,打开DB2的命令行,然后依次执行下面代码.(下面有一句话脚本会提示你一个类似异常的信息,不予以理会,继续执行下面别的代码) db2 “CREATE DB TestDB ...
  • 1.先创两个表空间,注意表空间的属性. SYS>create tablespace perfstat1 datafile '/u01/app/oracle/stat/perfstat1.dbf ' size 500m extent management local uniform size 256k; SYS...
  • DB2如何调整表空间大小刚刚接到客户那边打的电话,程序一直报错,所有的业务都做不了,拷贝了一份应用服务器(weblogic)的日志,日志里显示:WARN : 2009-06-18 16:24:32,421: JDBCExceptionReporter[line:77}: SQL ...
  • db2创建表空间

    2016-05-13 15:11:33
    CREATE LARGE TABLESPACE CURR_DATA_TBS01   IN DATABASE PARTITION GROUPIBMDEFAULTGROUP  PAGESIZE 32K  MANAGED BY DATABASE ... USING ( Device '/dev/ryqrcb_01' 6553600) ... EXTENTSIZE 32
  • 临时表空间满了

    2019-07-12 13:52:49
    2、描述:由于数据库用户使用的是oralce默认的临时表空间,不知何种原因,temp临时表空间被沾满了,导致sql查询非常的缓慢 3、日志:Caused by: java.sql.SQLException: ORA-01652: unable to extend temp segment ...
  • DB2临时表空间分为系统临时表空间和用户临时表空间。系统临时表空间主要用于磁盘排序,用户临时表空间用于创建、声明临时表使用。 在系统临时表空间创建常规表会报错: [DWE3:/home/maint1...
  • db2 表空间扩容

    2019-06-24 05:36:49
    DB2表空间扩容 1 - Detect what tablespace has size issues db2 list tablespaces show detail 2 - Check the percentage of use from the tablespace db2 list tablespace containers for <...
  • DB2表空间扩容

    2019-04-22 15:34:08
    1 - Detect what tablespace has size issues ...db2 list tablespaces show detail 2 - Check the percentage of use from the tablespace db2 list tablespace containers for <tablespace_id> show deta...
  • 本文举例说明修改DB2自动存储表空间storage group的办法,如果您对storage group还不了解,请先参考链接。 原本storage group有path1和path2,目标增加一条路径path3,并删掉path2,测试如下: $ db2 "CREATE ...
  • db2 表空间 缓冲池

    2014-03-30 15:40:24
    表空间和缓冲池的设计和调优会对 DB2 服务器的性能产生深远的影响,因此我们将着重讨论这些活动。 在我们的示例中,我们将使用 DB2 V8.1 企业服务器版。大多数示例也适用于低级版本。我们会让您知道
  • 如有一张员工信息,数据库中是安装记录建立的时间来保存的。如果用户查询时,使用Order BY排序语句指定按员工编号来排序,那么排序后产生的所有记录就是临时数据。对于这些临时数据,Oracle数据库是如何处理的呢? ...
  • DB2 V9版本中表空间的管理方式有系统管理表空间(SMS),数据库管理表空间(DMS)和自动存储管理,下面就以表空间的管理方式来介绍DB2表空间  系统管理空间概述  在SMS(系统管理空间)表空间中,操作系统的文件...
  • DB2表空间操作详解

    2018-10-31 00:34:52
    DB2表空间的存储方式有两种,SMS(System Managed Space)和DMS(Database Managed Space)。  SMS直接利用操作系统的文件系统来管理数据。表空间中的数据按照系统中所有容器上进行数据块划分。表空间中的所有的表...
  • 引用: http://www-128.ibm.com/developerworks/cn/db2/library/techarticles/dm-0311yip/index.html 内容: 简介 使用临时表DB2 Development Center 中使用临时表 最后注意 参考资料 关于作者 对本文的评价 订阅...
1 2 3 4 5 ... 20
收藏数 3,030
精华内容 1,212
关键字:

db2建立临时表空间linux