SQL Server:是否值得将 BLOB/CLOB 列放置在“末尾”附近?一张桌子的?

发布于 2024-12-10 10:11:36 字数 346 浏览 0 评论 0原文

都市传说或者将 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

东走西顾 2024-12-17 10:11:36

是的,这是一个都市传说

磁盘布局完全独立于 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文