gpt4 book ai didi

sql-server - 哪个插入速度更快,XML 字段还是 Varchar(max) 字段?

转载 作者:数据小太阳 更新时间:2023-10-29 01:54:43 25 4
gpt4 key购买 nike

我们有一个历史表,用于存储 xml 网络服务请求和响应。目前它将它们存储到一个 XML 字段中,但是我们在插入时遇到了性能问题。我们只插入记录,不更新、选择或删除。我们截断了表并重建了索引,但无济于事。该表在标识字段上有一个主聚集索引,在日期时间字段上有一个默认值 GetDate()。我们正在运行 SQL 2005 Server,但数据库处于 SQL 2000 兼容模式。

如果我们将字段类型从 XML 更改为 VarChar(max) 或 VarChar(xxx),这会加快插入速度吗?还有什么我们应该看的吗?

谢谢。

最佳答案

这取决于性能问题是什么。

  • 如果受 CPU 限制,则 XML 验证可能是一个因素,而 varchar(max) 可能更快。
  • 如果是 IO 绑定(bind),那么 XML 压缩存储比 nvarchar(max) 松散格式更好,并且您会降低性能。
  • 另一方面,如果问题 XML 片段很小,则 varchar 存储提供了行内存储的机会,并且可能比 XML 更好
  • 另一方面,行内存储会降低叶页的行密度并导致读取性能问题。
  • 如果问题既不是 CPU 也不是 IO,而是锁争用,那么 XML 与 varchar 的问题与性能问题是正交的。插入热点页面闩锁争用问题也是如此。同样,日志刷新性能问题也是如此。所有这些都将表现为“慢速插入”(对于慢速的某些定义),并且不会通过将 XML 替换为 varchar 而有丝毫改变。

因此,与所有性能问题一样,建议是先测量再切割。推荐的方法是应用经过充分测试和验证的性能调查方法,例如 Waits and Queues .猜测会让你很快无处可去。

关于sql-server - 哪个插入速度更快,XML 字段还是 Varchar(max) 字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2782378/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com