您必须通过针对现有表的列的alter table启用每个列的选项,或者如果它是针对该列的新表,则可以设置该选项:
alter table tablename modify mycol in row (500)
在这里,我已经说过任何长度小于500字节的列将被存储在行中,超过该大小的任何东西都将被存储在行外(旧的默认行为)。这可以大规模缩小表大小,其中您有很多非常小的文本/图像列和大页面大小,因为它避免了在文本链中每行浪费一整页。
一个启用它将显示sp_help输出中的列。要检查它是否是您需要考虑的好处:
您必须将数据重新加载到表中才能使更改生效,因此您可以通过select into(创建表和数据的新副本)或通过BCP out / in来完成此操作。
这里有一些Sybase文档中的更多信息:
http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc32300.1570/html/sqlug/CHECDADI.htm
就阻塞而言,在数据符合标准并且保持在行中的情况下,它将从表本身而不是从文本链中读取,而文本链实际上是表的末尾的大堆。您还可以获得对表大小节省大量空间的好处(数据大小),从而减少IO,从而有助于提高性能。