sql-server – 具有密钥/对表与XML字段和XPath的SQL Server性能

前端之家收集整理的这篇文章主要介绍了sql-server – 具有密钥/对表与XML字段和XPath的SQL Server性能前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经看过关于这个主题的一些问题,但我正在寻找对这两种技术之间性能差异的一些见解.

例如,假设我正在记录事件日志,这些事件将通过特定事件的键/值对字典集进入系统.我将在事件表中记录一个带有基本数据的条目,但我需要一种方法链接其他键/值数据.我永远不会知道会出现什么样的键或值,因此任何类型的预定义枚举表似乎都是不可能的.

此事件数据将持续流入,因此插入时间与查询时间一样重要.

当我查询特定事件时,我将使用事件上的一些字段以及键/值数据中的数据.对于XML方式,我只需使用Attributes.exists(‘xpath’)语句作为where子句的一部分来过滤记录.

规范化的方法是使用具有基本键和值字段的表,其中包含指向事件记录的外部链接.这看起来干净简单,但我担心涉及的数据量.

解决方法

问题我认为键/值表方法是关于数据类型 – 如果值可以是日期时间,或字符串或unicode字符串或整数,那么如何定义列?这种困境意味着值列必须是一个数据类型,它可以包含其中所有不同类型的数据,这就引出了查询效率/易用性的问题.或者,您有多列特定数据类型,但我认为这有点笨重.

对于一个真正灵活的模式,我想不出比XML更好的选择.您可以索引XML列.

This article off MSDN更详细地讨论了XML存储.

猜你在找的MsSQL相关文章