小编spa*_*dba的帖子

PK 作为 ROWGUIDCOL 还是使用单独的 rowguid 列?

这里正在进行一场冗长的辩论,所以我想听听其他意见。

我有许多带有 uniqueidentifier 聚集 PK 的表。这是否是一个好主意超出了这里的范围(并且不会很快改变)。

现在,必须合并发布数据库,并且 DEV 提倡使用单独的 rowguid 列,而不是将现有的 PK 标记为 ROWGUIDCOL。

基本上,他们说应用程序永远不应该将仅由复制使用的东西带入其域(这对他们来说只是“DBA 的东西”)。

从性能的角度来看,我认为没有理由添加一个新列来做一些我可以用现有列做的事情。而且,既然只是“DBA 的东西”,为什么不让DBA 选择呢?

我有点理解 DEV 的观点,但我仍然不同意。

想法?

编辑:我只想补充一点,我在这场辩论中是少数,质疑我立场的开发者是我尊重和信任的人。这就是我求助于征求意见的原因。
我也可能遗漏了一些东西,并且可能误解了他们的观点。

database-design sql-server merge-replication

9
推荐指数
3
解决办法
3462
查看次数

文件流列的统计信息

当我尝试在文件流列上创建统计信息时,我收到以下错误消息:

表 'MyTable' 中的列 'MyColumn' 的类型不能用作索引或统计信息中的键列。

这记录在CREATE STATISTICS的 BOL 页面中,这不是问题。

但是,当我在列(IS NOT NULL, 为记录)上运行带有谓词的查询时,会自动创建统计信息。为什么手动创建不允许这样做,但自动创建仍然可以?

我想手动创建统计数据的原因是我想标记它NORECOMPUTE以避免扫描几GB的数据。我知道我可以让 SQL Server 自动创建它然后NORECOMPUTE稍后标记它,但是自动创建是使用默认示例触发的,我可以0 ROWS在手动创建中覆盖它。我也想知道这是否有原因。

sql-server statistics sql-server-2012 filestream

5
推荐指数
1
解决办法
180
查看次数