SQL Server:是否值得将 BLOB/CLOB 列放置在“末尾”附近?一张桌子的?
都市传说或者将 BLOB/CLOB 列放在表中的列列表的最后真的有利于性能和其他方面吗?
去“观想”。这两个表格布局之间在性能方面(以及其他方面)是否存在差异:
A B
--------------------- ---------------------
ID int ID int
Name nvarchar(200) Content nvarchar(max)
Content nvarchar(max) Name nvarchar(200)
Is is an urban legend or having BLOB/CLOB columns last in a list of columns in a table really benefits performance and other aspects?
To "visualise". Is there any difference performance-wise (and other- wise) between these two table layouts:
A B
--------------------- ---------------------
ID int ID int
Name nvarchar(200) Content nvarchar(max)
Content nvarchar(max) Name nvarchar(200)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
是的,这是一个都市传说
磁盘布局完全独立于 CREATE 表中列的顺序。请参阅此了解更多信息
对 SQL Server 列进行排序时对性能/空间的影响?
注意:无论 varchar 列位于“开始”还是“结束”,SQL Server 仍将其读取为 通过 NULL 位图的偏移量实现相同。 MAX 列可能位于记录中,如果太长,则可能位于另一页中。所以仍然不重要
几年前(点网之前)一些 SQL Server 客户端驱动程序在末尾更喜欢大文本参数。古代神话。
Yes, it's an urban legend
On-disk layout is completely independent of the ordering of columns in the CREATE table. See this for more
Performance / Space implications when ordering SQL Server columns?
Note: whether a varchar column is at the "start" or the "end", SQL Server still reads it the same via an offset from the NULL bitmap. The MAX column may be in the record or in another page if too long. SO still doesn't matter
There was an issue years ago (pre-dot net) with some SQL Server client drivers that preferred large text parameters at the end. Ancient myths.