我们有一个大表,用于注册请求和响应,并捕获与该请求相关的其他数据。我们正在寻求提高性能。其中一项建议是将这些较大的列(请求和响应)移动到单独的表中,以便仅在实际需要读取时才访问它们,而不是每次查找记录时都访问它们。
将大列移动到单独的表是否可能会产生显着的性能改进?
我们有一个大表,用于注册请求和响应,并捕获与该请求相关的其他数据。我们正在寻求提高性能。其中一项建议是将这些较大的列(请求和响应)移动到单独的表中,以便仅在实际需要读取时才访问它们,而不是每次查找记录时都访问它们。
将大列移动到单独的表是否可能会产生显着的性能改进?
目前这些大字符串类型可能不在其他列旁边。看这里。转发指针被保留并根据需要取消引用。
拆分列可能仍然值得,但是,如果
select *
1 ; 大字段不会从磁盘中删除相反,如果值不是太长(比如几百字节)并且在大多数查询中访问,您可能会看到通过将它们存储在行中并避免指针查找和辅助 IO 来提高性能。这可以通过sp_tableoption来控制。
1当然,你不会那样做。