一张表,有50列,其中至少有30列每列长度在1000字符左右

zhnzzy 2009-09-01 02:17:01
这样建出来的表很显然每行长度大大超过8000字节了,这样是不是效率有很大影响呀?
如果都搞成nvarchar(max)是不是以后检索会更慢?
...全文
181 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
Dream_1986 2010-01-02
  • 打赏
  • 举报
回复
关注。。。。
人鱼传说 2010-01-01
  • 打赏
  • 举报
回复
设计成XML试试
newdigitime 2009-12-31
  • 打赏
  • 举报
回复
那就垂直分表嘛.把一个表分成多表.然后联合查询.
虽然全列读取效率差不多,但如果只查询部分字段时显然高效很多.
haitao 2009-12-31
  • 打赏
  • 举报
回复
一条记录8000的限制,

对于varchar(1000)还是有效的:即10个varchar(1000)不能全部都满1000个
对于varchar(max)应该是无效的了吧:即10个varchar(max),每个有2M都不怕
guohao0826 2009-12-31
  • 打赏
  • 举报
回复
首先,如果这样的表肯定是可以建立的。

如果那些1000多长度的字段不是经常查询,那么性能影响不大。

如果只是插入,更新影响也不大。

如果是经常查询这些字段,并且数据大的话,你肯定完蛋。

、具体情况具体分析!特别是数据量有多大?还有你的那些1000多字符的字段平均长度是多少?如果平均长度是1000那么最好用指针代替吧,比如text max 之类的。
liyoubaidu 2009-12-31
  • 打赏
  • 举报
回复
happy new year
zhnzzy 2009-09-02
  • 打赏
  • 举报
回复
怎么没人的.自己顶
htl258_Tony 2009-09-02
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 dawugui 的回复:]
引用楼主 zhnzzy 的回复:
这样建出来的表很显然每行长度大大超过8000字节了,这样是不是效率有很大影响呀?
如果都搞成nvarchar(max)是不是以后检索会更慢?

不是影响效率,是根本设计不了.
一行长度不能超过8060.建议按照关键字段分表吧.
[/Quote]..
zhnzzy 2009-09-02
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 lihan6415151528 的回复:]
必须要设计成这样?
[/Quote]
原则上是这样,因为这是从文本里面截取的一段一段,但都是属于一条记录的
zhnzzy 2009-09-02
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 dawugui 的回复:]
引用楼主 zhnzzy 的回复:
这样建出来的表很显然每行长度大大超过8000字节了,这样是不是效率有很大影响呀?
如果都搞成nvarchar(max)是不是以后检索会更慢?

不是影响效率,是根本设计不了.
一行长度不能超过8060.建议按照关键字段分表吧.
[/Quote]
是存放不了吧?设计还是可以的,如果那些特长的字段都设成varchar(max)呢?效率怎样?
dawugui 2009-09-01
  • 打赏
  • 举报
回复
[Quote=引用楼主 zhnzzy 的回复:]
这样建出来的表很显然每行长度大大超过8000字节了,这样是不是效率有很大影响呀?
如果都搞成nvarchar(max)是不是以后检索会更慢?
[/Quote]
不是影响效率,是根本设计不了.
一行长度不能超过8060.建议按照关键字段分表吧.
lihan6415151528 2009-09-01
  • 打赏
  • 举报
回复
必须要设计成这样?
soft_wsx 2009-09-01
  • 打赏
  • 举报
回复
关注起!
黄_瓜 2009-09-01
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 fredrickhu 的回复:]
长度1000会影响效率 直接用nvarchar(4000)
[/Quote]
怎么个影响法?
--小F-- 2009-09-01
  • 打赏
  • 举报
回复
长度1000会影响效率 直接用nvarchar(4000)
黄_瓜 2009-09-01
  • 打赏
  • 举报
回复
影响效率 不会吧,只是占用空间问题吧
字段大小给的合理就行了,数据量大了才影响效率
t240034137 2009-09-01
  • 打赏
  • 举报
回复
关注!
zhnzzy 2009-09-01
  • 打赏
  • 举报
回复
不一定用varchar(max)的,只是说每列都很长影响效率
黄_瓜 2009-09-01
  • 打赏
  • 举报
回复
1000字符就用nvarchar(max)

22,206

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧