我正在研究 SQL Server 2005/2008 中可用的一些较新的技术。我的大多数应用程序都是用 C# 编写的,并且通常具有数据库组件。我在 Google 上找到的大部分内容都是基本的,“这就是您设置 CLR UDT 的方式”。我对它们的实际应用和使用有一些一般性的问题。
- CLR 托管的 UDT 是否常用于应用程序?大或小规模
- 使用它们是否存在性能问题?
- DBA 通常只喜欢使用内置类型吗?
它们似乎是一种将物体塞进桌子的方法。我是否正确假设由于使用而简化解决方案的实际问题范围很小?
我正在研究 SQL Server 2005/2008 中可用的一些较新的技术。我的大多数应用程序都是用 C# 编写的,并且通常具有数据库组件。我在 Google 上找到的大部分内容都是基本的,“这就是您设置 CLR UDT 的方式”。我对它们的实际应用和使用有一些一般性的问题。
它们似乎是一种将物体塞进桌子的方法。我是否正确假设由于使用而简化解决方案的实际问题范围很小?
我调查了使用它们,但对版本控制感到不安。如果您将更新版本的程序集上传到服务器会发生什么情况?由于依赖关系,您必须删除 UDT 并重新创建它,但是数据会怎样呢?我们坚持使用内置类型。
只有当 UDT 真正代表您的应用程序的某些基本项目时,它们才有好处。几乎总是可以将它们分解为内置类型,但好处是您不必强制转换返回的对象。因此,您可能不应该使用表示复杂对象(例如 Employee)的 UDT,但是像 Size 或 Location 这样的基本对象可能是一个不错的选择,因为它很轻但在定义上非常严格。