首页 > 学技术 > 技术网文 > Sybase > 正文

[精华] 行可以跨页吗?


来源 chinaunix.net 酷勤网整理

ASE中, 每个PAGE是2K(2048BYTE), 除去头部信息后(APL和DOL不一样大), 就只有一千多字节了, 要是建的表行长度太大了, 一行就要跨PAGE了, 这样对性能会有影响吧?

建大表时, 系统提示行宽超过19XX字节, 有关系吗?



呵呵, 谢谢大家.



 chenfeng825 回复于:2003-08-21 13:59:53

当page size 是2K时,apl的最大行宽1962,dol 1964。
行不能跨页

如果有行宽大于上述值使用4K或更大的page size


 chenfeng825 回复于:2003-08-21 14:15:40

忘了说了。建大表超过限制可以建立,但实际insert or update时数据超过限制就会出错


 Kangoo 回复于:2003-08-21 14:20:15

page size也能改吗?

chenfeng825 兄弟,  怎么改啊? 

还有, 我刚才作了一个小实验, 如果建的表(APL), 长度超过1962, 但其中NOT NULL的不超过1962, 可以建立, 但会提示你超过了1962. 
以后要是所有的列都填入数据超过1962会怎样呢?

如果 NOT NULL的列长度超过1962, 则建表失败.

又想到一个问题, 象TEXT这种类型的超过一PAGE怎么办? 是不是列的值里是一个指针呢?


 chenfeng825 回复于:2003-08-21 14:30:14

page size除非重建server,否则不能改。
insert的实际数据超过1962插入失败。
blob好像只是一个指针,记不清楚了。


 Blackrose 回复于:2003-08-22 12:41:59

text image 这样的字段只是在 表中存放了一个 16位的指针,真实的数据是单独存放的,所以没有问题


 alex2003 回复于:2003-08-25 09:26:47

对,所以要注意不要建太多列的表,事实上,这样的表会很影响性能。
实在没办法,就把page size改成4k好了。


 li2002 回复于:2003-08-25 10:09:12

建server时page size在那里调整?


 chenfeng825 回复于:2003-08-25 10:15:32

srvbuildres 在resource file的server_page_size
srvbuild gui也可以看到




原文链接:http://bbs.chinaunix.net/viewthread.php?tid=144130
转载请注明作者名及原文出处



收藏本页到: