【发布时间】:2012-06-14 18:53:56
【问题描述】:
好的,我使用的是 SQL Server 2008,并且有一个 VARCHAR(MAX) 类型的表字段。问题是当使用Hibernate 保存信息时,VARCHAR(MAX) 字段的内容被截断。我在应用服务器或数据库服务器上都没有看到任何错误消息。
该字段的内容只是一个纯文本文件。此文本文件大小为 383KB。
这是我迄今为止为解决此问题所做的工作:
将数据库字段从
VARCHAR(MAX)更改为 TEXT 和相同 出现问题。使用 SQL Server Profiler,我注意到全文 内容正在
由数据库服务器接收,但由于某种原因,探查器在尝试时冻结 查看有截断问题的 SQL。就像我说的,就在它冻结之前,我
确实注意到正在接收全文文件内容(383KB),所以看起来 可能是数据库问题。
以前有人遇到过这个问题吗?有什么想法会导致这种截断吗?
注意:只想提一下,我只是进入 SQL Studio,只是复制 TEXT 字段内容并将其粘贴到 Textpad。这就是我注意到它被截断的原因。
提前致谢。
【问题讨论】:
-
一个与我的回答无关的建议:停止使用 Profiler。请改用服务器端跟踪。
-
@AaronBertrand 你能解释一下你为什么反对 Profiler 吗?
-
@Apostrofix 因为 Profiler 可以让您的服务器瘫痪。跟踪也可以,扩展事件也可以,但使用 Profiler 更容易。来自this article:
SQL Server Profiler is a tool to be avoided on busy production servers, as shown by the tenfold increase in duration and significant reduction in throughput for the replay. -
我明白了,很好的解释,谢谢!
标签: database sql-server-2008 hibernate varcharmax