免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4969 | 回复: 8
打印 上一主题 下一主题

tblspace具体作用是什么? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-03-21 12:45 |只看该作者 |倒序浏览
这几天再读informix的官方文档
实在还是不理解 Tblspace的作用所在

文档上是这样的写的
Database server administrators sometimes need to track disk use by a
particular table. A tblspace contains all the disk space allocated to a given
table or table fragment (if the table is fragmented). A separate tblspace
contains the disk space allocated for the associated index.

A tblspace, for example, does not correspond to any particular part of a
chunk or even to any particular chunk. The indexes and data that make up a
tblspace might be scattered throughout your chunks. The tblspace, however,
represents a convenient accounting entity for space across chunks devoted to
a particular table. (See “Tables” on page 9-36.)

IBM那个informix考试指南上则写得更简单

磁盘组件 - tblspace

tblspace 是为特定的表分配的所有页的逻辑集合。否则,如果表储存在多个 dbspace 时,表的片段被分散在 dbspace 中。

tblspace 表示的空间不一定是相邻的;页可以分布在一个块中,或者某个表的页可以分布在不同的块中。

我不知提这个概念有多大意义
因为据我现在的知识,根本是没有命令控制哪个表放在哪个表空间的
能控制的只有extend

换言之,即使现在提出了tblspace这个概念,但是没有办法操作,不等于没有提吗?
而且官方文档确实有些语焉不详

如果按照我的理解
应当是
table-->tblspace-->dbspace
但是从create table的语法中似乎看不到这一点
CREATE TABLE表名
( COL1 INTEGER NOT NULL,
  COL2 CHAR(2) CHECK ( COL2 IN (“??”,“??” )),  
  COL3 DATE DEFAULT TODAY,
  COL4 SMALLINT  UNIQUE,
---  字段名 类型 )
FRAGMENT BY ROUND ROBIN (BY EXPRESSION) IN DB1,DB2
EXTENT SIZE 1000 NEXT SIZE 600
WITH NO LOG (LOG;BUFFERED LOG;LOG MODE ANSI )
LOCK MODE ROW(PAGE);

从这个语法上来看,database应当是提前选择的
但是一个database应当有多个dbspace吧?

论坛徽章:
0
2 [报告]
发表于 2010-03-21 22:34 |只看该作者
回复 1# jayli426


  今天下午又看了一下书,网上这个语法写得不准确
CREATE TABLE表名
( COL1 INTEGER NOT NULL,
  COL2 CHAR(2) CHECK ( COL2 IN (“??”,“??” )),  
  COL3 DATE DEFAULT TODAY,
  COL4 SMALLINT  UNIQUE,
---  字段名 类型 )
FRAGMENT BY ROUND ROBIN (BY EXPRESSION) IN DBSPACE1,DBSPACE2
EXTENT SIZE 1000 NEXT SIZE 600
WITH NO LOG (LOG;BUFFERED LOG;LOG MODE ANSI )
LOCK MODE ROW(PAGE);

一个表怎么能放在不同数据里面呢?实在是让人误解

论坛徽章:
0
3 [报告]
发表于 2010-03-22 00:09 |只看该作者
精灵王可以告诉我你看的官方文档叫什么名字么我也急着看但找不到
发个地址最好,谢谢

论坛徽章:
11
金牛座
日期:2015-03-19 16:56:22数据库技术版块每日发帖之星
日期:2016-08-02 06:20:00数据库技术版块每日发帖之星
日期:2016-04-24 06:20:00数据库技术版块每日发帖之星
日期:2016-04-13 06:20:00IT运维版块每日发帖之星
日期:2016-04-13 06:20:00数据库技术版块每日发帖之星
日期:2016-02-03 06:20:00数据库技术版块每日发帖之星
日期:2015-08-06 06:20:00季节之章:春
日期:2015-03-27 15:54:57羊年新春福章
日期:2015-03-27 15:54:37戌狗
日期:2015-03-19 16:56:41数据库技术版块每日发帖之星
日期:2016-08-18 06:20:00
4 [报告]
发表于 2010-03-22 00:12 |只看该作者
这几天再读informix的官方文档
实在还是不理解 Tblspace的作用所在

文档上是这样的写的
Database serv ...
jayli426 发表于 2010-03-21 12:45



    一般认为一个表的所有区段的逻辑集合就是这个表的tblspace.

   建库于某个dbspace上,这个有点类似于oracle的默认表空间..即默认的情况下,你在这个库里建的表都将在这个dbspace上..

论坛徽章:
11
金牛座
日期:2015-03-19 16:56:22数据库技术版块每日发帖之星
日期:2016-08-02 06:20:00数据库技术版块每日发帖之星
日期:2016-04-24 06:20:00数据库技术版块每日发帖之星
日期:2016-04-13 06:20:00IT运维版块每日发帖之星
日期:2016-04-13 06:20:00数据库技术版块每日发帖之星
日期:2016-02-03 06:20:00数据库技术版块每日发帖之星
日期:2015-08-06 06:20:00季节之章:春
日期:2015-03-27 15:54:57羊年新春福章
日期:2015-03-27 15:54:37戌狗
日期:2015-03-19 16:56:41数据库技术版块每日发帖之星
日期:2016-08-18 06:20:00
5 [报告]
发表于 2010-03-22 00:16 |只看该作者
回复  jayli426


  今天下午又看了一下书,网上这个语法写得不准确
CREATE TABLE表名
( COL1 IN ...
jayli426 发表于 2010-03-21 22:34



    这个叫 分片(段) 表~ 即把一个表按一定规则存放于多个dbspace上,它的优点在于提升读的能力(并行读,同时也可能平衡IO), 当然若是超大表(超出informix行限制),也可以使用分片表..如你这个指的是一个轮询分片表,你往这个表时插入记录时,它将依次存放在dbpsace1,dbspace2..再dbspace1...上..

论坛徽章:
0
6 [报告]
发表于 2010-03-22 11:12 |只看该作者
大虾,是这样的
因为你也说表是建立在dbspace之上
然而

一般认为一个表的所有区段的逻辑集合就是这个表的tblspace.


这就让人感觉 tblspace在这里纯粹是个概念,没有实际操作的目的,
例如create table的时候我们并不能选择是哪个标 tblspace
所以感觉这个概念提得有些多余了

论坛徽章:
11
金牛座
日期:2015-03-19 16:56:22数据库技术版块每日发帖之星
日期:2016-08-02 06:20:00数据库技术版块每日发帖之星
日期:2016-04-24 06:20:00数据库技术版块每日发帖之星
日期:2016-04-13 06:20:00IT运维版块每日发帖之星
日期:2016-04-13 06:20:00数据库技术版块每日发帖之星
日期:2016-02-03 06:20:00数据库技术版块每日发帖之星
日期:2015-08-06 06:20:00季节之章:春
日期:2015-03-27 15:54:57羊年新春福章
日期:2015-03-27 15:54:37戌狗
日期:2015-03-19 16:56:41数据库技术版块每日发帖之星
日期:2016-08-18 06:20:00
7 [报告]
发表于 2010-03-22 12:19 |只看该作者
大虾,是这样的
因为你也说表是建立在dbspace之上
然而

一般认为一个表的所有区段的逻辑集合就是这 ...
jayli426 发表于 2010-03-22 11:12



额...发个图来说吧~~一般来说可以忽视tblspace, informix对这个概念很淡~

01.png (13.97 KB, 下载次数: 38)

01.png

论坛徽章:
0
8 [报告]
发表于 2010-03-22 15:33 |只看该作者
Bingo! 恭喜楼主你答中了。在Informix里tablespace就是个逻辑概念,指一张表所有extend的逻辑集合,也就是这张表到底有多大。 实际操作中几乎用不到tablespace,只是有些系统表和Informix工具输出里能看到。

多不多余就要问问实验室开发的人了,再说老外有些思维也和咱不一样。

论坛徽章:
0
9 [报告]
发表于 2010-03-22 20:45 |只看该作者
Bingo! 恭喜楼主你答中了。在Informix里tablespace就是个逻辑概念,指一张表所有extend的逻辑集合,也就是这 ...
zzjijun 发表于 2010-03-22 15:33


That is Bingo!
大虾,
  you remind me of the <<Inglorious Bastards>>
  2010奥斯卡最佳男配角啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP