`
hain
  • 浏览: 448879 次
  • 来自: ...
社区版块
存档分类
最新评论

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

阅读更多
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;

分享到:
评论
1 楼 ll_3581 2010-04-23  
这个问题你是怎么解决的,我也出现了同样的问题

相关推荐

    DB2系统临时表空间过大引发的性能问题-contracted.doc

    这是某银行 DB2 系统发生的一次真实案例,SQL 语句执行时间变长,最后发现“罪魁祸首”竟是 DB2 系统临时表空间过大。本文将介绍这个性能问题的分析处理过程,如何逐步定位问题根本原因,并提供了解决方法。这其中...

    NC6.5 数据库参考脚本及临时表空间配置.pdf

    NC6.5 数据库参考脚本及临时表空间配置,SQLServer参考脚本 Oracle参考脚本 DB2参考脚本

    DB2常用命令,命令集

    临时表空间页面大小与其他表空间页面大小的设置,临时表空间与缓冲池的设置。 example:db2icrt db2 -s ese -p d:\db2 -u Administrator 注意:在UNIX 上产生实例时需要产生一个和实例名称相同的用户名,和fencedid...

    NC6.1 数据库参考脚本及临时表要求

    目录 SQL Server参考脚本 Oracle参考脚本 DB2参考脚本 数据库临时表空间要求 SQLServer参考脚本 下面脚本是用户使用SQLServer数据库时,建立数据库的演示脚本,参考使用,注意调整参数。

    db2数据库入门教程(官方中文版)

    2.2 DB2 Express-C所不具备的功能...................................................................................23 2.2.1数据库分区......................................................................

    数据库设计准则及方法论.docx

    对于执行随机行读写操作的OLTP(联机事务处理)应用程序,通常最好使用较小的页大小,这样不需要的行浪费的缓冲池空间就会较少。对于一次访问大量连续的OLAP(联机分析处理)应用程序,页大小大一些比较好,这样就能减少...

    SQL语法大全

    sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式" (3) 删除数据记录: sql="delete from 数据表 where 条件表达式" sql="delete from 数据表" (将数据表所有记录删除) (4) 添加...

    调优SQL过程

    火龙果软件工程技术中心 本文内容包括:动机普通SQL过程使用临时表条件处理程序调优存在谓词CALL回避PVM中的SQLPL调优结束语致谢下载参考资料您想学习调优SQLPL的一些技巧吗?如果是这样的话,本文将描述一些调优IBM...

    db2数据库入门官方教程(中文版)

    2.2 DB2 Express-C所不具备的功能...................................................................................23 2.2.1数据库分区......................................................................

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    交换空间大小:3.25GB 硬盘空间:10GB  安装 1. 安装程序成功下载,将会得到如下2个文件: 解压文件将得到database文件夹,文件组织如下: 点击setup.exe执行安装程序,开始安装。 2. 点击安装程序将会出现...

    asp.net知识库

    可按任意字段排序的分页存储过程(不用临时表的方法,不看全文会后悔) 常用sql存储过程集锦 存储过程中实现类似split功能(charindex) 通过查询系统表得到纵向的表结构 将数据库表中的数据生成Insert脚本的存储过程!!! ...

    ormlitejar包

    临时支持(Provisional support)DB2、Oracle、ODBC和Netezza。如果不支持你的数据库,联系作者。 处理“编译”重复查询任务的SQL语句。 通过对象类型的属性支持“外”对象,数据库中只存储外对象的id。 基本...

    RMAN测试演练即讲解

    1、 临时表空间 create temporary tablespace apollo_temp tempfile ‘/opt/app/oracle/oradata/orcl_apollo/Apollo_temp.dbf’ size 200m autoextend on next 50m maxsize 2048m extent management local; 2、 ...

    精通Qt4编程(第二版)源代码

    作为重量级桌面系统KDE多年的坚实基础,Qt应该是经受了足够的考验。当我们准备编写自己的应用软件时,却发现图书市场上没有一本关于Qt 4的书籍,仅有的只是一些关于Qt 3的资料。由于Qt 3到Qt 4的变化很大,甚至源...

    精通qt4编程(源代码)

    作为重量级桌面系统KDE多年的坚实基础,Qt应该是经受了足够的考验。当我们准备编写自己的应用软件时,却发现图书市场上没有一本关于Qt 4的书籍,仅有的只是一些关于Qt 3的资料。由于Qt 3到Qt 4的变化很大,甚至源...

    NTKO文档在线编辑控件4.0.1.2

    24 在下载和上载Office文档时不会产生临时文件 使用流数据作为Office文档的数据源,控件本身不会产生临时文件。 25 能够禁止用户从文档拷贝数据 IsNoCopy属性可以禁止用户从Office文档中拷贝数据。 26 支持简洁...

Global site tag (gtag.js) - Google Analytics